diff --git a/src/backend/access/appendonly/aosegfiles.c b/src/backend/access/appendonly/aosegfiles.c
index 7a57d96..3021f3c 100644
--- a/src/backend/access/appendonly/aosegfiles.c
+++ b/src/backend/access/appendonly/aosegfiles.c
@@ -1091,7 +1091,7 @@
 gp_update_ao_master_stats_internal(Oid relid, Snapshot appendOnlyMetaDataSnapshot)
 {
 	Relation		parentrel;
-	Datum			returnDatum;
+	Datum			returnDatum = 0;
 
 	/* open the parent (main) relation */
 	parentrel = heap_open(relid, RowExclusiveLock);
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 1f61f5e..a70cf01 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -852,6 +852,7 @@
 	 * because it's already reserved for HCatalog integration feature.
 	 */
 	if (OidIsValid(get_database_oid(dbname)))
+	{
 			if (strcmp(dbname, HcatalogDbName) == 0)
 				ereport(ERROR,
 						(errcode(ERRCODE_RESERVED_NAME),
@@ -860,6 +861,7 @@
 				ereport(ERROR,
 						(errcode(ERRCODE_DUPLICATE_DATABASE),
 						errmsg("database \"%s\" already exists", dbname)));
+	}
 
 	/*
 	 * Select an OID for the new database, checking that it doesn't have
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 9c4d3fd..bda1616 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -800,7 +800,7 @@
  * Add Default page size and rowgroup size to relation options
  */
 static Datum AddDefaultPageRowGroupSize(Datum relOptions, List *defList){
-	Datum result;
+	Datum result = 0;
 	ListCell   *cell = NULL;
 	bool pageSizeSet = false;
 	bool rowgroupSizeSet = false;
@@ -4718,7 +4718,7 @@
 				pc->arg1 = (Node *)NIL;
 				foreach(l, todo)
 				{
-					List *l1;
+					List *l1 = NIL;
 					ListCell *lc;
 					Node *t = lfirst(l);
 
@@ -10742,10 +10742,10 @@
 
 	HeapTuple tuple;
 
-	int32 segmentFileNum;
+	int32 segmentFileNum = 0;
 
 	ItemPointerData oldPersistentTid;
-	int64 oldPersistentSerialNum;
+	int64 oldPersistentSerialNum = 0;
 
 	ItemPointerData newPersistentTid;
 	int64 newPersistentSerialNum;
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 6059a66..dc9f527 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -1562,7 +1562,7 @@
 	{
 		fcinfo.resultinfo = (Node *) &rsinfo;
 	}
-	rsinfo.type = T_ReturnSetInfo;
+	rsinfo.type = (fmNodeTag) T_ReturnSetInfo;
 	rsinfo.econtext = econtext;
 	rsinfo.expectedDesc = fcache->funcResultDesc;
 	rsinfo.allowedModes = (int) (SFRM_ValuePerCall | SFRM_Materialize);
@@ -1878,7 +1878,7 @@
 	 * our own state variables.
 	 */
 	InitFunctionCallInfoData(fcinfo, NULL, 0, NULL, (Node *) &rsinfo);
-	rsinfo.type = T_ReturnSetInfo;
+	rsinfo.type = (fmNodeTag) T_ReturnSetInfo;
 	rsinfo.econtext = econtext;
 	rsinfo.expectedDesc = expectedDesc;
 	rsinfo.allowedModes = (int) (SFRM_ValuePerCall | SFRM_Materialize);
diff --git a/src/backend/executor/nodeTableFunction.c b/src/backend/executor/nodeTableFunction.c
index dcd8a8c..a53dba2 100644
--- a/src/backend/executor/nodeTableFunction.c
+++ b/src/backend/executor/nodeTableFunction.c
@@ -416,7 +416,7 @@
 		ExecInitExpr((Expr *) rte->funcexpr, (PlanState *) scanstate);
 	Assert(scanstate->fcache && IsA(scanstate->fcache, FuncExprState));
 
-	scanstate->rsinfo.type		   = T_ReturnSetInfo;
+	scanstate->rsinfo.type		   = (fmNodeTag) T_ReturnSetInfo;
 	scanstate->rsinfo.econtext	   = econtext;
 	scanstate->rsinfo.expectedDesc = resultdesc;
 	scanstate->rsinfo.allowedModes = (int) (SFRM_ValuePerCall);
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index e3b2096..e79fb30 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -1461,7 +1461,7 @@
 		 * if they are duplicated in qpqual, so must test these independently.
 		 */
 		Index innerrel;
-		List **bitmapqualorig_p;
+		List **bitmapqualorig_p = NIL;
 		if (IsA(inner_plan, BitmapHeapScan))
 		{
 			BitmapHeapScan *innerscan = (BitmapHeapScan *) inner_plan;
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 1937471..6ae62b3 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -9322,7 +9322,7 @@
 	{
 		GroupingClause *gc = (GroupingClause*)node;
 		GroupingClause *new_gc = makeNode(GroupingClause);
-		memcpy(new_gc, gc, sizeof(gc));
+		memcpy(new_gc, gc, sizeof(GroupingClause));
 		new_gc->groupsets = (List*)map_sgr_mutator((Node*)gc->groupsets, ctx);
 		return (Node*)new_gc;
 	}
diff --git a/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c b/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
index 9ea8510..73d4c0b 100644
--- a/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
+++ b/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
@@ -1624,6 +1624,9 @@
     	activeContainerIds[i]  = allocatedResourcesArray[i].containerId;
     }
 
+    /* Return the containers fail to activate. */
+    int64_t *activeFailIds = NULL;
+    int  activeFailSize = 0;
     yarnres = activeResources(LIBYARNClient,
     						  YARNJobID,
 							  activeContainerIds,
@@ -1637,9 +1640,6 @@
     elog(LOG, "YARN mode resource broker submitted to activate %d containers.",
     		  allocatedResourcesArraySize);
 
-    /* Return the containers fail to activate. */
-    int64_t *activeFailIds = NULL;
-    int  activeFailSize = 0;
     yarnres = getActiveFailContainerIds(LIBYARNClient,
     									&activeFailIds,
 										&activeFailSize);
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 66509e2..3056f16 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -60,7 +60,7 @@
 	struct pg_tm tt,
 			   *tm = &tt;
 	int			tzp;
-	int			dtype;
+	int			dtype = 0;
 	int			nf;
 	int			dterr;
 	char	   *field[MAXDATEFIELDS];
@@ -907,7 +907,7 @@
 #endif
 	int32		typmod = PG_GETARG_INT32(2);
 	TimeADT		result;
-	fsec_t		fsec;
+	fsec_t		fsec = 0;
 	struct pg_tm tt,
 			   *tm = &tt;
 	int			tz;
@@ -915,7 +915,7 @@
 	int			dterr;
 	char		workbuf[MAXDATELEN + 1];
 	char	   *field[MAXDATEFIELDS];
-	int			dtype;
+	int			dtype = 0;
 	int			ftype[MAXDATEFIELDS];
 
 	dterr = ParseDateTime(str, workbuf, sizeof(workbuf),
@@ -1773,15 +1773,15 @@
 #endif
 	int32		typmod = PG_GETARG_INT32(2);
 	TimeTzADT  *result;
-	fsec_t		fsec;
+	fsec_t		fsec = 0;
 	struct pg_tm tt,
 			   *tm = &tt;
-	int			tz;
+	int			tz = 0;
 	int			nf;
 	int			dterr;
 	char		workbuf[MAXDATELEN + 1];
 	char	   *field[MAXDATEFIELDS];
-	int			dtype;
+	int			dtype = 0;
 	int			ftype[MAXDATEFIELDS];
 
 	dterr = ParseDateTime(str, workbuf, sizeof(workbuf),
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index 65aacfd..ca00b13 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -229,7 +229,7 @@
 	int			dterr;
 	char	   *field[MAXDATEFIELDS];
 	char		workbuf[MAXDATELEN + 1];
-	int			dtype;
+	int			dtype = 0;
 	int			nf,
 				ftype[MAXDATEFIELDS];
 
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index 6549880..dbb523e 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -155,7 +155,7 @@
 	struct pg_tm tt,
 			   *tm = &tt;
 	int			tz;
-	int			dtype;
+	int			dtype = 0;
 	int			nf;
 	int			dterr;
 	char	   *field[MAXDATEFIELDS];
@@ -419,7 +419,7 @@
 	struct pg_tm tt,
 			   *tm = &tt;
 	int			tz;
-	int			dtype;
+	int			dtype = 0;
 	int			nf;
 	int			dterr;
 	char	   *field[MAXDATEFIELDS];
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
index 1f8149b..9640bd6 100644
--- a/src/bin/pg_dump/dumputils.c
+++ b/src/bin/pg_dump/dumputils.c
@@ -1062,7 +1062,7 @@
 custom_fmtopts_string(const char *src)
 {
 		int			len = src ? strlen(src) : 0;
-		char	   *result = malloc(len * 2 + 1);
+		char	   *result = calloc(len * 2 + 1, sizeof(char));
 		char	   *srcdup = src ? strdup(src) : NULL;
 		char	   *srcdup_start = srcdup;
 		char       *find_res = NULL;
@@ -1071,8 +1071,6 @@
 		if(!src || !srcdup || !result)
 			return NULL;
 
-		memset(result,0,sizeof(result));
-
 		while (srcdup)
 		{
 			/* find first word (a) */
diff --git a/src/include/executor/execHHashagg.h b/src/include/executor/execHHashagg.h
index 34fd562..22fc1a1 100644
--- a/src/include/executor/execHHashagg.h
+++ b/src/include/executor/execHHashagg.h
@@ -32,7 +32,7 @@
  *-------------------------------------------------------------------------
  */
 #ifndef EXECHYBRIDHASHAGG_H
-#define EXECBYBRIDHASHAGG_H
+#define EXECHYBRIDHASHAGG_H
 
 #include "executor/nodeAgg.h" /* Must see AggStatePerGroupData. */
 #include "cdb/cdbpublic.h"    /* CdbExplain_Agg / CdbCellBuf */
