diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 8cbce09d1bab619fef5eb93be0f9edc665b9a3a5..67a9d30d64e850a16b84cfc53a32fed4a5a2f4f6 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -1442,7 +1442,8 @@ init_dblink_results(MemoryContext fn_mcxt)
 
 	oldcontext = MemoryContextSwitchTo(fn_mcxt);
 
-	retval = (dblink_results *) palloc0(sizeof(dblink_results));
+	retval = (dblink_results *) palloc(sizeof(dblink_results));
+	MemSet(retval, 0, sizeof(dblink_results));
 
 	retval->tup_num = -1;
 	retval->res_id_index = -1;
diff --git a/contrib/intarray/_int.c b/contrib/intarray/_int.c
index 325d504d849a233f2cf04f6f8aa404096ff32ba9..dc674e09ff804fd3042cbdb0fd02fc34a197502d 100644
--- a/contrib/intarray/_int.c
+++ b/contrib/intarray/_int.c
@@ -916,8 +916,10 @@ new_intArrayType(int num)
 	ArrayType  *r;
 	int			nbytes = ARR_OVERHEAD(NDIM) + sizeof(int) * num;
 
-	r = (ArrayType *) palloc0(nbytes);
+	r = (ArrayType *) palloc(nbytes);
 
+	MemSet(r, 0, nbytes);
+	
 	ARR_SIZE(r) = nbytes;
 	ARR_NDIM(r) = NDIM;
 	ARR_ELEMTYPE(r) = INT4OID;
diff --git a/src/backend/access/common/indextuple.c b/src/backend/access/common/indextuple.c
index e81dbf2e4eb5ac483f472a98d55d5c500c009b4a..03b4cd1440e84d29e488e848484707fff6f3dc63 100644
--- a/src/backend/access/common/indextuple.c
+++ b/src/backend/access/common/indextuple.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.61 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.62 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,8 +121,9 @@ index_formtuple(TupleDesc tupleDescriptor,
 #endif
 	size = MAXALIGN(size);		/* be conservative */
 
-	tp = (char *) palloc0(size);
+	tp = (char *) palloc(size);
 	tuple = (IndexTuple) tp;
+	MemSet(tp, 0, size);
 
 	DataFill((char *) tp + hoff,
 			 tupleDescriptor,
diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
index 8ad0d87b400dee7a3ff47b69129992f15f7be739..a2e777b002cbf3558ba30432d6190a9ec4488605 100644
--- a/src/backend/access/common/tupdesc.c
+++ b/src/backend/access/common/tupdesc.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.92 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.93 2002/11/11 03:02:18 momjian Exp $
  *
  * NOTES
  *	  some of the executor utility code such as "ExecTypeFromTL" should be
@@ -60,7 +60,8 @@ CreateTemplateTupleDesc(int natts, bool hasoid)
 	{
 		uint32		size = natts * sizeof(Form_pg_attribute);
 
-		desc->attrs = (Form_pg_attribute *) palloc0(size);
+		desc->attrs = (Form_pg_attribute *) palloc(size);
+		MemSet(desc->attrs, 0, size);
 	}
 	else
 		desc->attrs = NULL;
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index d41d6e41ab053d7eca939cd1b28756793d3c6798..6c76e025706600b77894183e5b49fabc8e60c6d2 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.97 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.98 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1316,8 +1316,10 @@ gistSplit(Relation r,
 	 */
 	if (r->rd_att->natts > 1)
 	{
-		v.spl_idgrp = (int *) palloc0(sizeof(int) * (*len + 1));
-		v.spl_grpflag = (char *) palloc0(sizeof(char) * (*len + 1));
+		v.spl_idgrp = (int *) palloc(sizeof(int) * (*len + 1));
+		MemSet((void *) v.spl_idgrp, 0, sizeof(int) * (*len + 1));
+		v.spl_grpflag = (char *) palloc(sizeof(char) * (*len + 1));
+		MemSet((void *) v.spl_grpflag, 0, sizeof(char) * (*len + 1));
 		v.spl_ngrp = (int *) palloc(sizeof(int) * (*len + 1));
 
 		MaxGrpId = gistfindgroup(giststate, (GISTENTRY *) VARDATA(entryvec), &v);
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index 2fb5782bf356c5094d395db55a57fbafb30d0dda..68ed6a98298769e31e3e832806789d9d4a354a3d 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -35,7 +35,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsort.c,v 1.67 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsort.c,v 1.68 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -111,7 +111,9 @@ static void _bt_load(Relation index, BTSpool *btspool, BTSpool *btspool2);
 BTSpool *
 _bt_spoolinit(Relation index, bool isunique)
 {
-	BTSpool    *btspool = (BTSpool *) palloc0(sizeof(BTSpool));
+	BTSpool    *btspool = (BTSpool *) palloc(sizeof(BTSpool));
+
+	MemSet((char *) btspool, 0, sizeof(BTSpool));
 
 	btspool->index = index;
 	btspool->isunique = isunique;
@@ -205,7 +207,9 @@ _bt_blnewpage(Relation index, Buffer *buf, Page *page, int flags)
 static BTPageState *
 _bt_pagestate(Relation index, int flags, int level)
 {
-	BTPageState *state = (BTPageState *) palloc0(sizeof(BTPageState));
+	BTPageState *state = (BTPageState *) palloc(sizeof(BTPageState));
+
+	MemSet((char *) state, 0, sizeof(BTPageState));
 
 	/* create initial page */
 	_bt_blnewpage(index, &(state->btps_buf), &(state->btps_page), flags);
diff --git a/src/backend/access/rtree/rtproc.c b/src/backend/access/rtree/rtproc.c
index 778720b3a7176379f10800e3d0de6c861b14f13f..4e52847da80b54b7f1dd494efc27ab51f51f30d0 100644
--- a/src/backend/access/rtree/rtproc.c
+++ b/src/backend/access/rtree/rtproc.c
@@ -15,7 +15,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.34 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.35 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -103,7 +103,9 @@ rt_poly_union(PG_FUNCTION_ARGS)
 	POLYGON    *b = PG_GETARG_POLYGON_P(1);
 	POLYGON    *p;
 
-	p = (POLYGON *) palloc0(sizeof(POLYGON));	/* zero any holes */
+	p = (POLYGON *) palloc(sizeof(POLYGON));
+
+	MemSet((char *) p, 0, sizeof(POLYGON));		/* zero any holes */
 	p->size = sizeof(POLYGON);
 	p->npts = 0;
 	p->boundbox.high.x = Max(a->boundbox.high.x, b->boundbox.high.x);
@@ -125,7 +127,9 @@ rt_poly_inter(PG_FUNCTION_ARGS)
 	POLYGON    *b = PG_GETARG_POLYGON_P(1);
 	POLYGON    *p;
 
-	p = (POLYGON *) palloc0(sizeof(POLYGON));	/* zero any holes */
+	p = (POLYGON *) palloc(sizeof(POLYGON));
+
+	MemSet((char *) p, 0, sizeof(POLYGON));		/* zero any holes */
 	p->size = sizeof(POLYGON);
 	p->npts = 0;
 	p->boundbox.high.x = Min(a->boundbox.high.x, b->boundbox.high.x);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 3fe362a90aa4201f803b3c8f0fa4c0315e2d83df..45463eca380036c55108c7542c218544c8792b57 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.203 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.204 2002/11/11 03:02:18 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -112,7 +112,8 @@ BuildFuncTupleDesc(Oid funcOid,
 	 * Allocate and zero a tuple descriptor for a one-column tuple.
 	 */
 	funcTupDesc = CreateTemplateTupleDesc(1, false);
-	funcTupDesc->attrs[0] = (Form_pg_attribute) palloc0(ATTRIBUTE_TUPLE_SIZE);
+	funcTupDesc->attrs[0] = (Form_pg_attribute) palloc(ATTRIBUTE_TUPLE_SIZE);
+	MemSet(funcTupDesc->attrs[0], 0, ATTRIBUTE_TUPLE_SIZE);
 
 	/*
 	 * Lookup the function to get its name and return type.
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index d6f667d3d649f271fc9b0ec1c4489572f8472fd2..a6fffc7cb41f6c33e032a386a5367aa63da4c8ea 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.48 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.49 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -423,7 +423,8 @@ examine_attribute(Relation onerel, int attnum)
 	 * If we have "=" then we're at least able to do the minimal
 	 * algorithm, so start filling in a VacAttrStats struct.
 	 */
-	stats = (VacAttrStats *) palloc0(sizeof(VacAttrStats));
+	stats = (VacAttrStats *) palloc(sizeof(VacAttrStats));
+	MemSet(stats, 0, sizeof(VacAttrStats));
 	stats->attnum = attnum;
 	stats->attr = (Form_pg_attribute) palloc(ATTRIBUTE_TUPLE_SIZE);
 	memcpy(stats->attr, attr, ATTRIBUTE_TUPLE_SIZE);
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 4f4625d466c97953b573d26d7349b84a4e6447a8..6143c92ec3c5b6469432c763efa6a1d288836efb 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.178 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.179 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -804,8 +804,9 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
 	elements = (Oid *) palloc(num_phys_attrs * sizeof(Oid));
 	defmap = (int *) palloc(num_phys_attrs * sizeof(int));
 	defexprs = (Node **) palloc(num_phys_attrs * sizeof(Node *));
-	constraintexprs = (Node **) palloc0(num_phys_attrs * sizeof(Node *));
+	constraintexprs = (Node **) palloc(num_phys_attrs * sizeof(Node *));
 	constraintconsts = (Const **) palloc(num_phys_attrs * sizeof(Const *));
+	MemSet(constraintexprs, 0, num_phys_attrs * sizeof(Node *));
 
 	for (i = 0; i < num_phys_attrs; i++)
 	{
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 84125280da02b8cd4122453a65a3ae0ddb5a6753..e6075dd28f7d18a6c423a4ea31cbb0e3a1421eb8 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.91 2002/11/10 07:25:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.92 2002/11/11 03:02:18 momjian Exp $
  *
  */
 
@@ -164,7 +164,8 @@ ExplainOneQuery(Query *query, ExplainStmt *stmt, TupOutputState *tstate)
 			(double) endtime.tv_usec / 1000000.0;
 	}
 
-	es = (ExplainState *) palloc0(sizeof(ExplainState));
+	es = (ExplainState *) palloc(sizeof(ExplainState));
+	MemSet(es, 0, sizeof(ExplainState));
 
 	es->printCost = true;		/* default */
 
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 6c61b33fcac34d3ffa12d1e52d53d712ddac314a..11e05c0b4ef2112f3e9b29f07b51f67922c691f0 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/opclasscmds.c,v 1.7 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/opclasscmds.c,v 1.8 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -124,9 +124,12 @@ DefineOpClass(CreateOpClassStmt *stmt)
 	 * do this mainly so that we can detect duplicate strategy numbers and
 	 * support-proc numbers.
 	 */
-	operators = (Oid *) palloc0(sizeof(Oid) * numOperators);
-	procedures = (Oid *) palloc0(sizeof(Oid) * numProcs);
-	recheck = (bool *) palloc0(sizeof(bool) * numOperators);
+	operators = (Oid *) palloc(sizeof(Oid) * numOperators);
+	MemSet(operators, 0, sizeof(Oid) * numOperators);
+	procedures = (Oid *) palloc(sizeof(Oid) * numProcs);
+	MemSet(procedures, 0, sizeof(Oid) * numProcs);
+	recheck = (bool *) palloc(sizeof(bool) * numOperators);
+	MemSet(recheck, 0, sizeof(bool) * numOperators);
 
 	/*
 	 * Scan the "items" list to obtain additional info.
diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c
index aaf7a1bac8f0366d5f8f2d9c9084c3aa37a840aa..7ce70299ce3f63e236560b5aa096c5511055716e 100644
--- a/src/backend/commands/prepare.c
+++ b/src/backend/commands/prepare.c
@@ -6,7 +6,7 @@
  * Copyright (c) 2002, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/prepare.c,v 1.5 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/prepare.c,v 1.6 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -116,7 +116,8 @@ ExecuteQuery(ExecuteStmt *stmt, CommandDest outputDest)
 		if (nargs != length(stmt->params))
 			elog(ERROR, "ExecuteQuery: wrong number of arguments");
 
-		paramLI = (ParamListInfo) palloc0((nargs + 1) * sizeof(ParamListInfoData));
+		paramLI = (ParamListInfo) palloc((nargs + 1) * sizeof(ParamListInfoData));
+		MemSet(paramLI, 0, (nargs + 1) * sizeof(ParamListInfoData));
 
 		foreach(l, stmt->params)
 		{
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index ef486998dde7c535b65b03f07693601c9d851be8..01bacc0447feee8c263bef69e02333f404307455 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.137 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.138 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -94,7 +94,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
 		constrrelid = RangeVarGetRelid(stmt->constrrel, false);
 	else if (stmt->isconstraint)
 	{
-		/*
+		/* 
 		 * If this trigger is a constraint (and a foreign key one)
 		 * then we really need a constrrelid.  Since we don't have one,
 		 * we'll try to generate one from the argument information.
@@ -779,7 +779,8 @@ RelationBuildTriggers(Relation relation)
 			 RelationGetRelationName(relation));
 
 	/* Build trigdesc */
-	trigdesc = (TriggerDesc *) palloc0(sizeof(TriggerDesc));
+	trigdesc = (TriggerDesc *) palloc(sizeof(TriggerDesc));
+	MemSet(trigdesc, 0, sizeof(TriggerDesc));
 	trigdesc->triggers = triggers;
 	trigdesc->numtriggers = ntrigs;
 	for (found = 0; found < ntrigs; found++)
@@ -1145,8 +1146,12 @@ ExecBRInsertTriggers(EState *estate, ResultRelInfo *relinfo,
 
 	/* Allocate cache space for fmgr lookup info, if not done yet */
 	if (relinfo->ri_TrigFunctions == NULL)
+	{
 		relinfo->ri_TrigFunctions = (FmgrInfo *)
-			palloc0(trigdesc->numtriggers * sizeof(FmgrInfo));
+			palloc(trigdesc->numtriggers * sizeof(FmgrInfo));
+		MemSet(relinfo->ri_TrigFunctions, 0,
+			   trigdesc->numtriggers * sizeof(FmgrInfo));
+	}
 
 	LocTriggerData.type = T_TriggerData;
 	LocTriggerData.tg_event = TRIGGER_EVENT_INSERT | TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE;
@@ -1201,8 +1206,12 @@ ExecBRDeleteTriggers(EState *estate, ResultRelInfo *relinfo,
 
 	/* Allocate cache space for fmgr lookup info, if not done yet */
 	if (relinfo->ri_TrigFunctions == NULL)
+	{
 		relinfo->ri_TrigFunctions = (FmgrInfo *)
-			palloc0(trigdesc->numtriggers * sizeof(FmgrInfo));
+			palloc(trigdesc->numtriggers * sizeof(FmgrInfo));
+		MemSet(relinfo->ri_TrigFunctions, 0,
+			   trigdesc->numtriggers * sizeof(FmgrInfo));
+	}
 
 	LocTriggerData.type = T_TriggerData;
 	LocTriggerData.tg_event = TRIGGER_EVENT_DELETE | TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE;
@@ -1273,8 +1282,12 @@ ExecBRUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
 
 	/* Allocate cache space for fmgr lookup info, if not done yet */
 	if (relinfo->ri_TrigFunctions == NULL)
+	{
 		relinfo->ri_TrigFunctions = (FmgrInfo *)
-			palloc0(trigdesc->numtriggers * sizeof(FmgrInfo));
+			palloc(trigdesc->numtriggers * sizeof(FmgrInfo));
+		MemSet(relinfo->ri_TrigFunctions, 0,
+			   trigdesc->numtriggers * sizeof(FmgrInfo));
+	}
 
 	LocTriggerData.type = T_TriggerData;
 	LocTriggerData.tg_event = TRIGGER_EVENT_UPDATE | TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE;
@@ -1756,7 +1769,9 @@ deferredTriggerInvokeEvents(bool immediate_only)
 					 * Allocate space to cache fmgr lookup info for triggers.
 					 */
 					finfo = (FmgrInfo *)
-						palloc0(trigdesc->numtriggers * sizeof(FmgrInfo));
+						palloc(trigdesc->numtriggers * sizeof(FmgrInfo));
+					MemSet(finfo, 0,
+						   trigdesc->numtriggers * sizeof(FmgrInfo));
 				}
 
 				DeferredTriggerExecute(event, i, rel, trigdesc, finfo,
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 32ec3d8504b01ea5108a66876b6d4063b62e529d..1591f74766d13030ba4f87408c49a711f27a3b8d 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -31,7 +31,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.21 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.22 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -147,7 +147,8 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt)
 	vacuum_set_xid_limits(vacstmt, onerel->rd_rel->relisshared,
 						  &OldestXmin, &FreezeLimit);
 
-	vacrelstats = (LVRelStats *) palloc0(sizeof(LVRelStats));
+	vacrelstats = (LVRelStats *) palloc(sizeof(LVRelStats));
+	MemSet(vacrelstats, 0, sizeof(LVRelStats));
 
 	/* Open all indexes of the relation */
 	vac_open_indexes(onerel, &nindexes, &Irel);
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index f6edc3283a12dfb9cdbe118d6879effb3d1fddd8..d85e59fb0090917b7ef120be2f9e0b31774ec6e9 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -27,7 +27,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.182 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.183 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -106,8 +106,12 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate)
 	Assert(queryDesc != NULL);
 
 	if (queryDesc->plantree->nParamExec > 0)
+	{
 		estate->es_param_exec_vals = (ParamExecData *)
-			palloc0(queryDesc->plantree->nParamExec * sizeof(ParamExecData));
+			palloc(queryDesc->plantree->nParamExec * sizeof(ParamExecData));
+		MemSet(estate->es_param_exec_vals, 0,
+			   queryDesc->plantree->nParamExec * sizeof(ParamExecData));
+	}
 
 	/*
 	 * Make our own private copy of the current query snapshot data.
@@ -1788,12 +1792,17 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
 			 */
 			epqstate->es_evTupleNull = (bool *) palloc(rtsize * sizeof(bool));
 			if (epq == NULL)
+			{
 				/* first PQ stack entry */
 				epqstate->es_evTuple = (HeapTuple *)
-					palloc0(rtsize * sizeof(HeapTuple));
+					palloc(rtsize * sizeof(HeapTuple));
+				memset(epqstate->es_evTuple, 0, rtsize * sizeof(HeapTuple));
+			}
 			else
+			{
 				/* later stack entries share the same storage */
 				epqstate->es_evTuple = epq->estate.es_evTuple;
+			}
 		}
 		else
 		{
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index eb9535f42189d5f2878cfc341f24620d458ab727..105784fda4f4dbe112c479f265df92eace62ba4c 100644
--- a/src/backend/executor/functions.c
+++ b/src/backend/executor/functions.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.58 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.59 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,7 +121,9 @@ init_execution_state(char *src, Oid *argOidVect, int nargs)
 			int			i;
 			ParamListInfo paramLI;
 
-			paramLI = (ParamListInfo) palloc0((nargs + 1) * sizeof(ParamListInfoData));
+			paramLI = (ParamListInfo) palloc((nargs + 1) * sizeof(ParamListInfoData));
+
+			MemSet(paramLI, 0, (nargs + 1) * sizeof(ParamListInfoData));
 
 			estate->es_param_list_info = paramLI;
 
@@ -183,7 +185,8 @@ init_sql_fcache(FmgrInfo *finfo)
 
 	typeStruct = (Form_pg_type) GETSTRUCT(typeTuple);
 
-	fcache = (SQLFunctionCachePtr) palloc0(sizeof(SQLFunctionCache));
+	fcache = (SQLFunctionCachePtr) palloc(sizeof(SQLFunctionCache));
+	MemSet(fcache, 0, sizeof(SQLFunctionCache));
 
 	/*
 	 * get the type length and by-value flag from the type tuple
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index a36d078964af3d02612043ad871d2eaefc0773cf..63c5bc20b47304ff9d4cbd9d682d941d66f4a0d3 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -45,7 +45,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.93 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.94 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -651,7 +651,8 @@ lookup_hash_entry(Agg *node, TupleTableSlot *slot)
 	MemoryContextSwitchTo(aggstate->aggcontext);
 	entrysize = sizeof(AggHashEntryData) +
 		(aggstate->numaggs - 1) * sizeof(AggStatePerGroupData);
-	entry = (AggHashEntry) palloc0(entrysize);
+	entry = (AggHashEntry) palloc(entrysize);
+	MemSet(entry, 0, entrysize);
 
 	entry->hashkey = hashkey;
 	entry->firstTuple = heap_copytuple(tuple);
@@ -887,8 +888,9 @@ agg_retrieve_direct(Agg *node)
 				Datum	   *dvalues;
 				char	   *dnulls;
 
-				dvalues = (Datum *) palloc0(sizeof(Datum) * tupType->natts);
+				dvalues = (Datum *) palloc(sizeof(Datum) * tupType->natts);
 				dnulls = (char *) palloc(sizeof(char) * tupType->natts);
+				MemSet(dvalues, 0, sizeof(Datum) * tupType->natts);
 				MemSet(dnulls, 'n', sizeof(char) * tupType->natts);
 				nullsTuple = heap_formtuple(tupType, dvalues, dnulls);
 				ExecStoreTuple(nullsTuple,
@@ -1168,10 +1170,13 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 	 * allocate my private per-agg working storage
 	 */
 	econtext = aggstate->csstate.cstate.cs_ExprContext;
-	econtext->ecxt_aggvalues = (Datum *) palloc0(sizeof(Datum) * numaggs);
-	econtext->ecxt_aggnulls = (bool *) palloc0(sizeof(bool) * numaggs);
+	econtext->ecxt_aggvalues = (Datum *) palloc(sizeof(Datum) * numaggs);
+	MemSet(econtext->ecxt_aggvalues, 0, sizeof(Datum) * numaggs);
+	econtext->ecxt_aggnulls = (bool *) palloc(sizeof(bool) * numaggs);
+	MemSet(econtext->ecxt_aggnulls, 0, sizeof(bool) * numaggs);
 
-	peragg = (AggStatePerAgg) palloc0(sizeof(AggStatePerAggData) * numaggs);
+	peragg = (AggStatePerAgg) palloc(sizeof(AggStatePerAggData) * numaggs);
+	MemSet(peragg, 0, sizeof(AggStatePerAggData) * numaggs);
 	aggstate->peragg = peragg;
 
 	if (node->aggstrategy == AGG_HASHED)
@@ -1183,7 +1188,8 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
 	{
 		AggStatePerGroup pergroup;
 
-		pergroup = (AggStatePerGroup) palloc0(sizeof(AggStatePerGroupData) * numaggs);
+		pergroup = (AggStatePerGroup) palloc(sizeof(AggStatePerGroupData) * numaggs);
+		MemSet(pergroup, 0, sizeof(AggStatePerGroupData) * numaggs);
 		aggstate->pergroup = pergroup;
 	}
 
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index 49bec1d010f55d50e6ea8b2e061009e052acd7b0..970da155f76568ea3d502fafc426fb78de20b0d0 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.48 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.49 2002/11/11 03:02:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -166,7 +166,8 @@ ExecInitAppend(Append *node, EState *estate, Plan *parent)
 	appendplans = node->appendplans;
 	nplans = length(appendplans);
 
-	initialized = (bool *) palloc0(nplans * sizeof(bool));
+	initialized = (bool *) palloc(nplans * sizeof(bool));
+	MemSet(initialized, 0, nplans * sizeof(bool));
 
 	/*
 	 * create new AppendState for our append node
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index 9032a12aa790d4417439c2a14cb192639af4e98e..bed63e036193ed0ca881050c34a65e20292dd149 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeSort.c,v 1.38 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeSort.c,v 1.39 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,9 +50,11 @@ ExtractSortKeys(Sort *sortnode,
 	 */
 	if (keycount <= 0)
 		elog(ERROR, "ExtractSortKeys: keycount <= 0");
-	sortOps = (Oid *) palloc0(keycount * sizeof(Oid));
+	sortOps = (Oid *) palloc(keycount * sizeof(Oid));
+	MemSet(sortOps, 0, keycount * sizeof(Oid));
 	*sortOperators = sortOps;
-	attNos = (AttrNumber *) palloc0(keycount * sizeof(AttrNumber));
+	attNos = (AttrNumber *) palloc(keycount * sizeof(AttrNumber));
+	MemSet(attNos, 0, keycount * sizeof(AttrNumber));
 	*attNums = attNos;
 
 	/*
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index a8c0a5d5f38de5e8168e3852fb4102ed89040bc1..eed5a5a09016547a8cfff81695d9f5cea6b39681 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/spi.c,v 1.76 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/spi.c,v 1.77 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -783,8 +783,9 @@ SPI_cursor_open(char *name, void *plan, Datum *Values, char *Nulls)
 	{
 		ParamListInfo paramLI;
 
-		paramLI = (ParamListInfo) palloc0((spiplan->nargs + 1) *
+		paramLI = (ParamListInfo) palloc((spiplan->nargs + 1) *
 										 sizeof(ParamListInfoData));
+		MemSet(paramLI, 0, (spiplan->nargs + 1) * sizeof(ParamListInfoData));
 
 		eState->es_param_list_info = paramLI;
 		for (k = 0; k < spiplan->nargs; paramLI++, k++)
@@ -1192,7 +1193,9 @@ _SPI_execute_plan(_SPI_plan *plan, Datum *Values, char *Nulls, int tcount)
 					int			k;
 
 					paramLI = (ParamListInfo)
-						palloc0((nargs + 1) * sizeof(ParamListInfoData));
+						palloc((nargs + 1) * sizeof(ParamListInfoData));
+					MemSet(paramLI, 0,
+						   (nargs + 1) * sizeof(ParamListInfoData));
 
 					state->es_param_list_info = paramLI;
 					for (k = 0; k < plan->nargs; paramLI++, k++)
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index 118d39507a0000db5be65d863df5459550211bf4..6ff95441348ca5c007d9b63f9719ea6ad4263c78 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.90 2002/11/10 07:25:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.91 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -460,7 +460,8 @@ make_one_rel_by_joins(Query *root, int levels_needed, List *initial_rels)
 	 * joinitems[j] is a list of all the j-item rels.  Initially we set
 	 * joinitems[1] to represent all the single-jointree-item relations.
 	 */
-	joinitems = (List **) palloc0((levels_needed + 1) * sizeof(List *));
+	joinitems = (List **) palloc((levels_needed + 1) * sizeof(List *));
+	MemSet(joinitems, 0, (levels_needed + 1) * sizeof(List *));
 
 	joinitems[1] = initial_rels;
 
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 9746c16cf58e59e439363ae44ce6bb17233f5336..94eb54156cb1715b7957cc547297de45418e7c51 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.140 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.141 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1070,7 +1070,8 @@ gen_cross_product(InhPaths *arginh, int nargs)
 	/* compute the cross product from right to left */
 	for (;;)
 	{
-		oneres = (Oid *) palloc0(FUNC_MAX_ARGS * sizeof(Oid));
+		oneres = (Oid *) palloc(FUNC_MAX_ARGS * sizeof(Oid));
+		MemSet(oneres, 0, FUNC_MAX_ARGS * sizeof(Oid));
 
 		for (i = nargs - 1; i >= 0 && cur[i] > arginh[i].nsupers; i--)
 			continue;
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index 85ff0650c1c0f1c70f9d4328f38d788903d9e2f6..31a7abbe2611dfd621be8cda0dc5ad2673a700ab 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.70 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.71 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,8 @@ make_parsestate(ParseState *parentParseState)
 {
 	ParseState *pstate;
 
-	pstate = palloc0(sizeof(ParseState));
+	pstate = palloc(sizeof(ParseState));
+	MemSet(pstate, 0, sizeof(ParseState));
 
 	pstate->parentParseState = parentParseState;
 	pstate->p_last_resno = 1;
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 7d043da0f987ae2587a3ac78460a192d5d4d13a8..7fa02fedd5c61538bea6044c41730fdb30dc3ff2 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.291 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.292 2002/11/11 03:02:19 momjian Exp $
  *
  * NOTES
  *
@@ -1092,8 +1092,10 @@ ProcessStartupPacket(Port *port, bool SSLdone)
 	if (len < sizeof(ProtocolVersion) || len > sizeof(StartupPacket))
 		elog(FATAL, "invalid length of startup packet");
 
+	buf = palloc(sizeof(StartupPacket));
+
 	/* Ensure we see zeroes for any bytes not sent */
-	buf = palloc0(sizeof(StartupPacket));
+	MemSet(buf, 0, sizeof(StartupPacket));
 
 	if (pq_getbytes(buf, len) == EOF)
 	{
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index 2275cc8cb245047bf9aafbb3cbc8f3e494492f64..120df241099b7a86c1589a9bdf184840efb5a88b 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.81 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.82 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -248,7 +248,8 @@ makeacl(int n)
 	if (n < 0)
 		elog(ERROR, "makeacl: invalid size: %d", n);
 	size = ACL_N_SIZE(n);
-	new_acl = (Acl *) palloc0(size);
+	new_acl = (Acl *) palloc(size);
+	MemSet((char *) new_acl, 0, size);
 	new_acl->size = size;
 	new_acl->ndim = 1;
 	new_acl->flags = 0;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index 3340449b1a2b49809aa67d0562da0c04b0d3cdcd..df75d660f56f2cf4414511814ccfab84d2a8ad29 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.83 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.84 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -235,7 +235,8 @@ array_in(PG_FUNCTION_ARGS)
 	if (nitems == 0)
 	{
 		/* Return empty array */
-		retval = (ArrayType *) palloc0(sizeof(ArrayType));
+		retval = (ArrayType *) palloc(sizeof(ArrayType));
+		MemSet(retval, 0, sizeof(ArrayType));
 		retval->size = sizeof(ArrayType);
 		retval->elemtype = element_type;
 		PG_RETURN_ARRAYTYPE_P(retval);
@@ -248,7 +249,8 @@ array_in(PG_FUNCTION_ARGS)
 						   typmod, typdelim, typlen, typbyval, typalign,
 						   &nbytes);
 	nbytes += ARR_OVERHEAD(ndim);
-	retval = (ArrayType *) palloc0(nbytes);
+	retval = (ArrayType *) palloc(nbytes);
+	MemSet(retval, 0, nbytes);
 	retval->size = nbytes;
 	retval->ndim = ndim;
 	retval->elemtype = element_type;
@@ -395,7 +397,8 @@ ReadArrayStr(char *arrayStr,
 				prod[MAXDIM];
 
 	mda_get_prod(ndim, dim, prod);
-	values = (Datum *) palloc0(nitems * sizeof(Datum));
+	values = (Datum *) palloc(nitems * sizeof(Datum));
+	MemSet(values, 0, nitems * sizeof(Datum));
 	MemSet(indx, 0, sizeof(indx));
 
 	/* read array enclosed within {} */
@@ -511,7 +514,10 @@ ReadArrayStr(char *arrayStr,
 		if (!typbyval)
 			for (i = 0; i < nitems; i++)
 				if (values[i] == (Datum) 0)
-					values[i] = PointerGetDatum(palloc0(typlen));
+				{
+					values[i] = PointerGetDatum(palloc(typlen));
+					MemSet(DatumGetPointer(values[i]), 0, typlen);
+				}
 	}
 	else
 	{
@@ -1587,7 +1593,8 @@ array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType)
 
 	/* Allocate and initialize the result array */
 	nbytes += ARR_OVERHEAD(ndim);
-	result = (ArrayType *) palloc0(nbytes);
+	result = (ArrayType *) palloc(nbytes);
+	MemSet(result, 0, nbytes);
 
 	result->size = nbytes;
 	result->ndim = ndim;
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index f39cfab1b112a5c01084e59ac04b9c59a66ec632..a0ddd37723894421f4ce2775d778e1451cb88924 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.69 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.70 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -3130,8 +3130,9 @@ poly_in(PG_FUNCTION_ARGS)
 		elog(ERROR, "Bad polygon external representation '%s'", str);
 
 	size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * npts;
-	poly = (POLYGON *) palloc0(size);	/* zero any holes */
+	poly = (POLYGON *) palloc(size);
 
+	MemSet((char *) poly, 0, size);		/* zero any holes */
 	poly->size = size;
 	poly->npts = npts;
 
@@ -4451,7 +4452,9 @@ circle_poly(PG_FUNCTION_ARGS)
 	if (base_size / npts != sizeof(poly->p[0]) || size <= base_size)
 		elog(ERROR, "too many points requested");
 
-	poly = (POLYGON *) palloc0(size);	/* zero any holes */
+	poly = (POLYGON *) palloc(size);
+
+	MemSet(poly, 0, size);		/* zero any holes */
 	poly->size = size;
 	poly->npts = npts;
 
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 429bac59e99329c52f167cc89c44177b2a4c0016..0985c6a459fe3eef102d5e22f68604f2f8246dda 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -3,7 +3,7 @@
  *	is for IP V4 CIDR notation, but prepared for V6: just
  *	add the necessary bits where the comments indicate.
  *
- *	$Header: /cvsroot/pgsql/src/backend/utils/adt/network.c,v 1.36 2002/11/10 07:25:14 momjian Exp $
+ *	$Header: /cvsroot/pgsql/src/backend/utils/adt/network.c,v 1.37 2002/11/11 03:02:19 momjian Exp $
  *
  *	Jon Postel RIP 16 Oct 1998
  */
@@ -51,8 +51,9 @@ network_in(char *src, int type)
 	int			bits;
 	inet	   *dst;
 
+	dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct));
 	/* make sure any unused bits in a CIDR value are zeroed */
-	dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
+	MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct));
 
 	/* First, try for an IP V4 address: */
 	ip_family(dst) = AF_INET;
@@ -493,8 +494,9 @@ network_broadcast(PG_FUNCTION_ARGS)
 	inet	   *ip = PG_GETARG_INET_P(0);
 	inet	   *dst;
 
+	dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct));
 	/* make sure any unused bits are zeroed */
-	dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
+	MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct));
 
 	if (ip_family(ip) == AF_INET)
 	{
@@ -532,8 +534,9 @@ network_network(PG_FUNCTION_ARGS)
 	inet	   *ip = PG_GETARG_INET_P(0);
 	inet	   *dst;
 
+	dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct));
 	/* make sure any unused bits are zeroed */
-	dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
+	MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct));
 
 	if (ip_family(ip) == AF_INET)
 	{
@@ -571,8 +574,9 @@ network_netmask(PG_FUNCTION_ARGS)
 	inet	   *ip = PG_GETARG_INET_P(0);
 	inet	   *dst;
 
+	dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct));
 	/* make sure any unused bits are zeroed */
-	dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct));
+	MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct));
 
 	if (ip_family(ip) == AF_INET)
 	{
diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c
index 7d98491d779c0423c445ad6d64e308b4f5fb5066..69b8e226be4a165494e5e4a7e33df2a62f4190f2 100644
--- a/src/backend/utils/adt/varbit.c
+++ b/src/backend/utils/adt/varbit.c
@@ -9,7 +9,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.27 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.28 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -107,8 +107,9 @@ bit_in(PG_FUNCTION_ARGS)
 			 bitlen, atttypmod);
 
 	len = VARBITTOTALLEN(atttypmod);
+	result = (VarBit *) palloc(len);
 	/* set to 0 so that *r is always initialised and string is zero-padded */
-	result = (VarBit *) palloc0(len);
+	MemSet(result, 0, len);
 	VARATT_SIZEP(result) = len;
 	VARBITLEN(result) = atttypmod;
 
@@ -231,8 +232,9 @@ bit(PG_FUNCTION_ARGS)
 			 VARBITLEN(arg), len);
 
 	rlen = VARBITTOTALLEN(len);
+	result = (VarBit *) palloc(rlen);
 	/* set to 0 so that string is zero-padded */
-	result = (VarBit *) palloc0(rlen);
+	MemSet(result, 0, rlen);
 	VARATT_SIZEP(result) = rlen;
 	VARBITLEN(result) = len;
 
@@ -314,8 +316,9 @@ varbit_in(PG_FUNCTION_ARGS)
 			 atttypmod);
 
 	len = VARBITTOTALLEN(bitlen);
+	result = (VarBit *) palloc(len);
 	/* set to 0 so that *r is always initialised and string is zero-padded */
-	result = (VarBit *) palloc0(len);
+	MemSet(result, 0, len);
 	VARATT_SIZEP(result) = len;
 	VARBITLEN(result) = Min(bitlen, atttypmod);
 
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 1d10a103bdcf873f083d7327cb1aa96a3498cf97..ffae38015b6f8059c99f0b04b795f009b0313cf0 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.100 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.101 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -808,7 +808,8 @@ InitCatCache(int id,
 	 *
 	 * Note: we assume zeroing initializes the Dllist headers correctly
 	 */
-	cp = (CatCache *) palloc0(sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist));
+	cp = (CatCache *) palloc(sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist));
+	MemSet((char *) cp, 0, sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist));
 
 	/*
 	 * initialize the cache's relation information for the relation
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 28431b5c5cc383cd51cd62844b425b3007f60018..11bb211c808f956b6a81d84440697a8a682e42d0 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.178 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.179 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1348,9 +1348,13 @@ formrdesc(const char *relationName,
 
 	/*
 	 * allocate new relation desc
+	 */
+	relation = (Relation) palloc(sizeof(RelationData));
+
+	/*
 	 * clear all fields of reldesc
 	 */
-	relation = (Relation) palloc0(sizeof(RelationData));
+	MemSet((char *) relation, 0, sizeof(RelationData));
 	relation->rd_targblock = InvalidBlockNumber;
 
 	/* make sure relation is marked as having no open file yet */
@@ -1376,7 +1380,8 @@ formrdesc(const char *relationName,
 	 * get us launched.  RelationCacheInitializePhase2() will read the
 	 * real data from pg_class and replace what we've done here.
 	 */
-	relation->rd_rel = (Form_pg_class) palloc0(CLASS_TUPLE_SIZE);
+	relation->rd_rel = (Form_pg_class) palloc(CLASS_TUPLE_SIZE);
+	MemSet(relation->rd_rel, 0, CLASS_TUPLE_SIZE);
 
 	namestrcpy(&relation->rd_rel->relname, relationName);
 	relation->rd_rel->relnamespace = PG_CATALOG_NAMESPACE;
@@ -2049,7 +2054,8 @@ RelationBuildLocalRelation(const char *relname,
 	/*
 	 * allocate a new relation descriptor and fill in basic state fields.
 	 */
-	rel = (Relation) palloc0(sizeof(RelationData));
+	rel = (Relation) palloc(sizeof(RelationData));
+	MemSet((char *) rel, 0, sizeof(RelationData));
 
 	rel->rd_targblock = InvalidBlockNumber;
 
@@ -2087,7 +2093,8 @@ RelationBuildLocalRelation(const char *relname,
 	/*
 	 * initialize relation tuple form (caller may add/override data later)
 	 */
-	rel->rd_rel = (Form_pg_class) palloc0(CLASS_TUPLE_SIZE);
+	rel->rd_rel = (Form_pg_class) palloc(CLASS_TUPLE_SIZE);
+	MemSet((char *) rel->rd_rel, 0, CLASS_TUPLE_SIZE);
 
 	namestrcpy(&rel->rd_rel->relname, relname);
 	rel->rd_rel->relnamespace = relnamespace;
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 30c83038609110a7383a9262bd5a1dd5c4e139b4..d27f74915189e2964aa83cd03bcd33de82595183 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.64 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.65 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1550,8 +1550,9 @@ Int64GetDatum(int64 X)
 	 * with zeroes in the unused bits.	This is needed so that, for
 	 * example, hash join of int8 will behave properly.
 	 */
-	int64	   *retval = (int64 *) palloc0(Max(sizeof(int64), 8));
+	int64	   *retval = (int64 *) palloc(Max(sizeof(int64), 8));
 
+	MemSet(retval, 0, Max(sizeof(int64), 8));
 	*retval = X;
 	return PointerGetDatum(retval);
 #endif   /* INT64_IS_BUSTED */
diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c
index 53b505fa8f0ac20de0e2f14aec8101b97d38a574..971a74768ba5869380dd978d8e3adff090bf0847 100644
--- a/src/backend/utils/sort/tuplesort.c
+++ b/src/backend/utils/sort/tuplesort.c
@@ -78,7 +78,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.30 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.31 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -414,7 +414,9 @@ tuplesort_begin_common(bool randomAccess)
 {
 	Tuplesortstate *state;
 
-	state = (Tuplesortstate *) palloc0(sizeof(Tuplesortstate));
+	state = (Tuplesortstate *) palloc(sizeof(Tuplesortstate));
+
+	MemSet((char *) state, 0, sizeof(Tuplesortstate));
 
 	state->status = TSS_INITIAL;
 	state->randomAccess = randomAccess;
@@ -457,9 +459,11 @@ tuplesort_begin_heap(TupleDesc tupDesc,
 
 	state->tupDesc = tupDesc;
 	state->nKeys = nkeys;
-	state->scanKeys = (ScanKey) palloc0(nkeys * sizeof(ScanKeyData));
+	state->scanKeys = (ScanKey) palloc(nkeys * sizeof(ScanKeyData));
+	MemSet(state->scanKeys, 0, nkeys * sizeof(ScanKeyData));
 	state->sortFnKinds = (SortFunctionKind *)
-		palloc0(nkeys * sizeof(SortFunctionKind));
+		palloc(nkeys * sizeof(SortFunctionKind));
+	MemSet(state->sortFnKinds, 0, nkeys * sizeof(SortFunctionKind));
 
 	for (i = 0; i < nkeys; i++)
 	{
diff --git a/src/backend/utils/sort/tuplestore.c b/src/backend/utils/sort/tuplestore.c
index 172ba62202a709e141ed5bf0745e2510a074bfe0..80181a681831e6c220b65468eb6c8432b9e524f9 100644
--- a/src/backend/utils/sort/tuplestore.c
+++ b/src/backend/utils/sort/tuplestore.c
@@ -26,7 +26,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplestore.c,v 1.8 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplestore.c,v 1.9 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -197,7 +197,9 @@ tuplestore_begin_common(bool randomAccess, int maxKBytes)
 {
 	Tuplestorestate *state;
 
-	state = (Tuplestorestate *) palloc0(sizeof(Tuplestorestate));
+	state = (Tuplestorestate *) palloc(sizeof(Tuplestorestate));
+
+	MemSet((char *) state, 0, sizeof(Tuplestorestate));
 
 	state->status = TSS_INITIAL;
 	state->randomAccess = randomAccess;
diff --git a/src/include/c.h b/src/include/c.h
index 0bdc2ab32c557d75c3f06a462c6e0a571a9bab98..2dfdca4c0136e71f33723490ae56a9a4fcbbc96b 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: c.h,v 1.130 2002/10/24 03:11:05 momjian Exp $
+ * $Id: c.h,v 1.131 2002/11/11 03:02:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -586,8 +586,7 @@ typedef NameData *Name;
 		int		_val = (val); \
 		Size	_len = (len); \
 \
-		if ((((long) _start) & INT_ALIGN_MASK) == 0 && \
-			(_len & INT_ALIGN_MASK) == 0 && \
+		if ((( ((long) _start) | _len) & INT_ALIGN_MASK) == 0 && \
 			_val == 0 && \
 			_len <= MEMSET_LOOP_LIMIT) \
 		{ \
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index 2d90d60903c2d9e752dc45e1f5bb7404faf1c4cf..1ebf494f97d9956c4133ae88ffbd9c494903c85c 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -3,7 +3,7 @@
  *			  procedural language
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.67 2002/11/10 07:25:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.68 2002/11/11 03:02:19 momjian Exp $
  *
  *	  This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -1008,7 +1008,7 @@ exec_stmt_perform(PLpgSQL_execstate * estate, PLpgSQL_stmt_perform * stmt)
 	 */
 	if (expr->plan == NULL)
 		exec_prepare_plan(estate, expr);
-
+	
 	rc = exec_run_select(estate, expr, 0, NULL);
 	if (rc != SPI_OK_SELECT)
 		elog(ERROR, "query \"%s\" didn't return data", expr->query);
@@ -1627,8 +1627,9 @@ exec_stmt_return_next(PLpgSQL_execstate * estate,
 		if (natts != stmt->row->nfields)
 			elog(ERROR, "Wrong record type supplied in RETURN NEXT");
 
-		dvalues = (Datum *) palloc0(natts * sizeof(Datum));
+		dvalues = (Datum *) palloc(natts * sizeof(Datum));
 		nulls = (char *) palloc(natts * sizeof(char));
+		MemSet(dvalues, 0, natts * sizeof(Datum));
 		MemSet(nulls, 'n', natts);
 
 		for (i = 0; i < natts; i++)
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index 02012886072433d0a1bb3ae8525243f97838290d..99e6085bf231ed1be798cc97632756c032ea90ae 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -1,5 +1,5 @@
 /*
- * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.52 2002/11/10 07:25:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.53 2002/11/11 03:02:20 momjian Exp $
  */
 
 #include "postgres.h"
@@ -300,11 +300,12 @@ reverse_name(char *string)
 	int			len;
 	char	   *new_string;
 
-	if (!(new_string = palloc0(NAMEDATALEN)))
+	if (!(new_string = palloc(NAMEDATALEN)))
 	{
 		fprintf(stderr, "reverse_name: palloc failed\n");
 		return NULL;
 	}
+	MemSet(new_string, 0, NAMEDATALEN);
 	for (i = 0; i < NAMEDATALEN && string[i]; ++i)
 		;
 	if (i == NAMEDATALEN || !string[i])