diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index ee3c3e9e351297c16b281ab67ee176017c7f999d..a06b7ed31ef1fa0ae1f2c6ce58b5250943ad99ef 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.24 1997/09/08 21:40:18 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.25 1997/09/12 04:07:06 momjian Exp $
  *
  * NOTES
  *	  The old interface functions have been converted to macros
@@ -372,25 +372,25 @@ heap_sysattrbyval(AttrNumber attno)
  *		heap_getsysattr
  * ----------------
  */
-char	   *
+Datum
 heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
 {
 	switch (attnum)
 	{
 			case SelfItemPointerAttributeNumber:
-			return ((char *) &tup->t_ctid);
+			return ((Datum) &tup->t_ctid);
 		case ObjectIdAttributeNumber:
-			return ((char *) (long) tup->t_oid);
+			return ((Datum) (long) tup->t_oid);
 		case MinTransactionIdAttributeNumber:
-			return ((char *) (long) tup->t_xmin);
+			return ((Datum) (long) tup->t_xmin);
 		case MinCommandIdAttributeNumber:
-			return ((char *) (long) tup->t_cmin);
+			return ((Datum) (long) tup->t_cmin);
 		case MaxTransactionIdAttributeNumber:
-			return ((char *) (long) tup->t_xmax);
+			return ((Datum) (long) tup->t_xmax);
 		case MaxCommandIdAttributeNumber:
-			return ((char *) (long) tup->t_cmax);
+			return ((Datum) (long) tup->t_cmax);
 		case ChainItemPointerAttributeNumber:
-			return ((char *) &tup->t_chain);
+			return ((Datum) &tup->t_chain);
 		case AnchorItemPointerAttributeNumber:
 			elog(WARN, "heap_getsysattr: t_anchor does not exist!");
 			break;
@@ -409,7 +409,7 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
 			if (!AbsoluteTimeIsBackwardCompatiblyValid(tup->t_tmin) &&
 				TransactionIdDidCommit(tup->t_xmin))
 				tup->t_tmin = TransactionIdGetCommitTime(tup->t_xmin);
-			return ((char *) (long) tup->t_tmin);
+			return ((Datum) (long) tup->t_tmin);
 		case MaxAbsoluteTimeAttributeNumber:
 			if (!AbsoluteTimeIsBackwardCompatiblyReal(tup->t_tmax))
 			{
@@ -418,9 +418,9 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
 				else
 					tup->t_tmax = CURRENT_ABSTIME;
 			}
-			return ((char *) (long) tup->t_tmax);
+			return ((Datum) (long) tup->t_tmax);
 		case VersionTypeAttributeNumber:
-			return ((char *) (long) tup->t_vtype);
+			return ((Datum) (long) tup->t_vtype);
 		default:
 			elog(WARN, "heap_getsysattr: undefined attnum %d", attnum);
 	}
@@ -444,7 +444,7 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
  *		the same attribute descriptor will go much quicker. -cim 5/4/91
  * ----------------
  */
-char	   *
+Datum
 fastgetattr(HeapTuple tup,
 			int attnum,
 			TupleDesc tupleDesc,
@@ -479,7 +479,7 @@ fastgetattr(HeapTuple tup,
 		attnum--;
 		if (att[attnum]->attcacheoff > 0)
 		{
-			return (char *)
+			return (Datum)
 				fetchatt(&(att[attnum]),
 				  (char *) tup + tup->t_hoff + att[attnum]->attcacheoff);
 		}
@@ -489,7 +489,7 @@ fastgetattr(HeapTuple tup,
 			/*
 			 * first attribute is always at position zero
 			 */
-			return ((char *) fetchatt(&(att[0]), (char *) tup + tup->t_hoff));
+			return ((Datum) fetchatt(&(att[0]), (char *) tup + tup->t_hoff));
 		}
 
 		tp = (char *) tup + tup->t_hoff;
@@ -543,13 +543,13 @@ fastgetattr(HeapTuple tup,
 	{
 		if (att[attnum]->attcacheoff > 0)
 		{
-			return (char *)
+			return (Datum)
 				fetchatt(&(att[attnum]),
 						 tp + att[attnum]->attcacheoff);
 		}
 		else if (attnum == 0)
 		{
-			return (char *)
+			return (Datum)
 				fetchatt(&(att[0]), (char *) tup + tup->t_hoff);
 		}
 		else if (!HeapTupleAllFixed(tup))
@@ -618,7 +618,7 @@ fastgetattr(HeapTuple tup,
 		}
 
 		return
-			(char *) fetchatt(&(att[attnum]), tp + att[attnum]->attcacheoff);
+			(Datum) fetchatt(&(att[attnum]), tp + att[attnum]->attcacheoff);
 	}
 	else
 	{
@@ -729,7 +729,7 @@ fastgetattr(HeapTuple tup,
 					off = LONGALIGN(off);
 				break;
 		}
-		return ((char *) fetchatt(&(att[attnum]), tp + off));
+		return ((Datum) fetchatt(&(att[attnum]), tp + off));
 	}
 }
 
@@ -782,11 +782,11 @@ heap_deformtuple(HeapTuple tuple,
 	{
 		bool		isnull;
 
-		values[i] = (Datum) heap_getattr(tuple,
-										 InvalidBuffer,
-										 i + 1,
-										 tdesc,
-										 &isnull);
+		values[i] = heap_getattr(tuple,
+								 InvalidBuffer,
+								 i + 1,
+								 tdesc,
+								 &isnull);
 		if (isnull)
 			nulls[i] = 'n';
 		else
@@ -936,15 +936,12 @@ heap_modifytuple(HeapTuple tuple,
 
 		if (repl[attoff] == ' ')
 		{
-			char	   *attr;
-
-			attr =
+			value[attoff] =
 				heap_getattr(tuple,
 							 InvalidBuffer,
 							 AttrOffsetGetAttrNumber(attoff),
 							 RelationGetTupleDescriptor(relation),
 							 &isNull);
-			value[attoff] = PointerGetDatum(attr);
 			nulls[attoff] = (isNull) ? 'n' : ' ';
 
 		}
diff --git a/src/backend/access/common/heapvalid.c b/src/backend/access/common/heapvalid.c
index ce0cb58d7dcb6edb788142f42cf0211c6addcf68..da2e93a30bc68dbc778e142d186c5e93f8ae5bc1 100644
--- a/src/backend/access/common/heapvalid.c
+++ b/src/backend/access/common/heapvalid.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/Attic/heapvalid.c,v 1.18 1997/09/08 02:19:51 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/Attic/heapvalid.c,v 1.19 1997/09/12 04:07:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,10 +42,10 @@ heap_keytest(HeapTuple t,
 
 	for (; nkeys--; keys++)
 	{
-		atp = (Datum) heap_getattr(t, InvalidBuffer,
-								   keys->sk_attno,
-								   tupdesc,
-								   &isnull);
+		atp = heap_getattr(t, InvalidBuffer,
+						   keys->sk_attno,
+						   tupdesc,
+						   &isnull);
 
 		if (isnull)
 			/* XXX eventually should check if SK_ISNULL */
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index f8ff685e3879ac0280e13cc83b340e914ead0c4b..38d254af87e4c674097e98fdc0a3d6ee563268e7 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.17 1997/09/08 02:19:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.18 1997/09/12 04:07:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -76,8 +76,8 @@ printtup(HeapTuple tuple, TupleDesc typeinfo)
 	int			i,
 				j,
 				k;
-	char	   *outputstr,
-			   *attr;
+	char	   *outputstr;
+	Datum		attr;
 	bool		isnull;
 	Oid			typoutput;
 
@@ -176,8 +176,8 @@ void
 debugtup(HeapTuple tuple, TupleDesc typeinfo)
 {
 	register int i;
-	char	   *attr,
-			   *value;
+	Datum	    attr;
+	char	   *value;
 	bool		isnull;
 	Oid			typoutput;
 
@@ -212,7 +212,7 @@ printtup_internal(HeapTuple tuple, TupleDesc typeinfo)
 	int			i,
 				j,
 				k;
-	char	   *attr;
+	Datum		attr;
 	bool		isnull;
 
 	/* ----------------
@@ -308,9 +308,10 @@ printtup_internal(HeapTuple tuple, TupleDesc typeinfo)
 				else
 				{
 					pq_putint(len, sizeof(int32));
-					pq_putnchar(attr, len);
+					pq_putnchar(DatumGetPointer(attr), len);
 #ifdef IPORTAL_DEBUG
-					fprintf(stderr, "byref length %d data %x\n", len, attr);
+					fprintf(stderr, "byref length %d data %x\n", len,
+												DatumGetPointer(attr));
 #endif
 				}
 			}
diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c
index c2b1642cafa55e8ffb5c2befc4479e86c76fca27..d28b79e202b37c371575f803d38ef4b2610d814e 100644
--- a/src/backend/access/index/indexam.c
+++ b/src/backend/access/index/indexam.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.16 1997/09/08 21:41:06 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.17 1997/09/12 04:07:15 momjian Exp $
  *
  * INTERFACE ROUTINES
  *		index_open		- open an index relation by relationId
@@ -385,11 +385,11 @@ GetIndexValue(HeapTuple tuple,
 
 		for (i = 0; i < FIgetnArgs(fInfo); i++)
 		{
-			attData[i] = (Datum) heap_getattr(tuple,
-											  buffer,
-											  attrNums[i],
-											  hTupDesc,
-											  attNull);
+			attData[i] = heap_getattr(tuple,
+									  buffer,
+									  attrNums[i],
+									  hTupDesc,
+									  attNull);
 		}
 		returnVal = (Datum) fmgr_array_args(FIgetProcOid(fInfo),
 											FIgetnArgs(fInfo),
@@ -400,8 +400,8 @@ GetIndexValue(HeapTuple tuple,
 	}
 	else
 	{
-		returnVal = (Datum) heap_getattr(tuple, buffer, attrNums[attOff],
-										 hTupDesc, attNull);
+		returnVal = heap_getattr(tuple, buffer, attrNums[attOff],
+								 hTupDesc, attNull);
 	}
 	return returnVal;
 }
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index ee5b9baf553e954eb1d5d51860d73ff152fd4231..aa86d9982dcf1d4d18fec74ef21d7ab6604ddea4 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.19 1997/09/08 02:21:54 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.20 1997/09/12 04:07:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -216,8 +216,8 @@ Async_Notify(char *relname)
 
 	while (HeapTupleIsValid(lTuple = heap_getnext(sRel, 0, &b)))
 	{
-		d = (Datum) heap_getattr(lTuple, b, Anum_pg_listener_notify,
-								 tdesc, &isnull);
+		d = heap_getattr(lTuple, b, Anum_pg_listener_notify,
+						 tdesc, &isnull);
 		if (!DatumGetInt32(d))
 		{
 			rTuple = heap_modifytuple(lTuple, b, lRel, value, nulls, repl);
@@ -293,13 +293,13 @@ Async_NotifyAtCommit()
 
 			while (HeapTupleIsValid(lTuple = heap_getnext(sRel, 0, &b)))
 			{
-				d = (Datum) heap_getattr(lTuple, b, Anum_pg_listener_relname,
-										 tdesc, &isnull);
+				d = heap_getattr(lTuple, b, Anum_pg_listener_relname,
+								 tdesc, &isnull);
 
 				if (AsyncExistsPendingNotify((char *) DatumGetPointer(d)))
 				{
-					d = (Datum) heap_getattr(lTuple, b, Anum_pg_listener_pid,
-											 tdesc, &isnull);
+					d = heap_getattr(lTuple, b, Anum_pg_listener_pid,
+									 tdesc, &isnull);
 
 					if (ourpid == DatumGetInt32(d))
 					{
@@ -444,12 +444,12 @@ Async_Listen(char *relname, int pid)
 	s = heap_beginscan(lDesc, 0, NowTimeQual, 0, (ScanKey) NULL);
 	while (HeapTupleIsValid(htup = heap_getnext(s, 0, &b)))
 	{
-		d = (Datum) heap_getattr(htup, b, Anum_pg_listener_relname, tdesc,
-								 &isnull);
+		d = heap_getattr(htup, b, Anum_pg_listener_relname, tdesc,
+						 &isnull);
 		relnamei = DatumGetPointer(d);
 		if (!strncmp(relnamei, relname, NAMEDATALEN))
 		{
-			d = (Datum) heap_getattr(htup, b, Anum_pg_listener_pid, tdesc, &isnull);
+			d = heap_getattr(htup, b, Anum_pg_listener_pid, tdesc, &isnull);
 			pid = DatumGetInt32(d);
 			if (pid == ourPid)
 			{
@@ -609,8 +609,8 @@ Async_NotifyFrontEnd()
 
 	while (HeapTupleIsValid(lTuple = heap_getnext(sRel, 0, &b)))
 	{
-		d = (Datum) heap_getattr(lTuple, b, Anum_pg_listener_relname,
-								 tdesc, &isnull);
+		d = heap_getattr(lTuple, b, Anum_pg_listener_relname,
+						 tdesc, &isnull);
 		rTuple = heap_modifytuple(lTuple, b, lRel, value, nulls, repl);
 		heap_replace(lRel, &lTuple->t_ctid, rTuple);
 
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index ba8df5ff8d4da5cea3585abcfce327e67ee69cef..8593aa3f25a287e7ef677e547ce86b7b9409c689 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.33 1997/09/08 21:42:30 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.34 1997/09/12 04:07:25 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -270,8 +270,7 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 
 		for (i = 0; i < attr_count; i++)
 		{
-			value = (Datum)
-				heap_getattr(tuple, InvalidBuffer, i + 1, tupDesc, &isnull);
+			value = heap_getattr(tuple, InvalidBuffer, i + 1, tupDesc, &isnull);
 			if (!binary)
 			{
 				if (!isnull)
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 7f93d0243307bc800b1975abb633bd5a5160f984..af88b26ea1c7f104c624029365acd76aad8c05da 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.46 1997/09/08 21:42:48 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.47 1997/09/12 04:07:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -308,8 +308,7 @@ vc_getrels(NameData *VacRelP)
 		 * Berkeley.
 		 */
 
-		d = (Datum) heap_getattr(pgctup, buf, Anum_pg_class_relname,
-								 pgcdesc, &n);
+		d = heap_getattr(pgctup, buf, Anum_pg_class_relname, pgcdesc, &n);
 		rname = (char *) d;
 
 		/* skip archive relations */
@@ -334,8 +333,7 @@ vc_getrels(NameData *VacRelP)
 			continue;
 		}
 
-		d = (Datum) heap_getattr(pgctup, buf, Anum_pg_class_relsmgr,
-								 pgcdesc, &n);
+		d = heap_getattr(pgctup, buf, Anum_pg_class_relsmgr, pgcdesc, &n);
 		smgrno = DatumGetInt16(d);
 
 		/* skip write-once storage managers */
@@ -345,8 +343,7 @@ vc_getrels(NameData *VacRelP)
 			continue;
 		}
 
-		d = (Datum) heap_getattr(pgctup, buf, Anum_pg_class_relkind,
-								 pgcdesc, &n);
+		d = heap_getattr(pgctup, buf, Anum_pg_class_relkind, pgcdesc, &n);
 
 		rkind = DatumGetChar(d);
 
@@ -1714,8 +1711,8 @@ vc_attrstats(Relation onerel, VRelStats *vacrelstats, HeapTuple htup)
 		VacAttrStats *stats = &vacattrstats[i];
 		bool		value_hit = true;
 
-		value = (Datum) heap_getattr(htup, InvalidBuffer,
-								  stats->attr->attnum, tupDesc, &isnull);
+		value = heap_getattr(htup, InvalidBuffer,
+							 stats->attr->attnum, tupDesc, &isnull);
 
 		if (!VacAttrStatsEqValid(stats))
 			continue;
@@ -2289,8 +2286,8 @@ vc_getindices(Oid relid, int *nindices, Relation **Irel)
 
 	while (HeapTupleIsValid(pgitup = heap_getnext(pgiscan, 0, NULL)))
 	{
-		d = (Datum) heap_getattr(pgitup, InvalidBuffer, Anum_pg_index_indexrelid,
-								 pgidesc, &n);
+		d = heap_getattr(pgitup, InvalidBuffer, Anum_pg_index_indexrelid,
+						 pgidesc, &n);
 		i++;
 		if (i % 10 == 0)
 			ioid = (Oid *) repalloc(ioid, (i + 10) * sizeof(Oid));
diff --git a/src/backend/executor/execJunk.c b/src/backend/executor/execJunk.c
index cd07b2fa1dc888282757b4f9dcb27114fbec4b22..e3e0623b9577e99c8d599c02978bbf8a3ec6840f 100644
--- a/src/backend/executor/execJunk.c
+++ b/src/backend/executor/execJunk.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.8 1997/09/08 21:42:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.9 1997/09/12 04:07:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -315,8 +315,7 @@ ExecGetJunkAttribute(JunkFilter *junkfilter,
 	tuple = slot->val;
 	tupType = (TupleDesc) junkfilter->jf_tupType;
 
-	*value = (Datum)
-		heap_getattr(tuple, InvalidBuffer, resno, tupType, isNull);
+	*value = heap_getattr(tuple, InvalidBuffer, resno, tupType, isNull);
 
 	return true;
 }
@@ -391,10 +390,8 @@ ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot)
 	 */
 	for (i = 0; i < cleanLength; i++)
 	{
-		Datum		d = (Datum)
-		heap_getattr(tuple, InvalidBuffer, cleanMap[i], tupType, &isNull);
-
-		values[i] = d;
+		values[i] =
+			heap_getattr(tuple, InvalidBuffer, cleanMap[i], tupType, &isNull);
 
 		if (isNull)
 			nulls[i] = 'n';
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 05d0721e31ccaf9c3e8a40457d60a7cc43ec9069..2f351276d4bf2ea99bc0bda7a6961390e8698595 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.16 1997/09/08 21:43:00 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.17 1997/09/12 04:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -305,12 +305,11 @@ ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull)
 		return (Datum) tempSlot;
 	}
 
-	result = (Datum)
-		heap_getattr(heapTuple, /* tuple containing attribute */
-					 buffer,	/* buffer associated with tuple */
-					 attnum,	/* attribute number of desired attribute */
-					 tuple_type,/* tuple descriptor of tuple */
-					 isNull);	/* return: is attribute null? */
+	result = heap_getattr(heapTuple, /* tuple containing attribute */
+						  buffer,	/* buffer associated with tuple */
+						  attnum,	/* attribute number of desired attribute */
+					 	  tuple_type,/* tuple descriptor of tuple */
+						  isNull);	/* return: is attribute null? */
 
 	/* ----------------
 	 *	return null if att is null
@@ -530,12 +529,11 @@ GetAttributeByNum(TupleTableSlot *slot,
 		return (char *) NULL;
 	}
 
-	retval = (Datum)
-		heap_getattr(slot->val,
-					 slot->ttc_buffer,
-					 attrno,
-					 slot->ttc_tupleDescriptor,
-					 isNull);
+	retval = heap_getattr(slot->val,
+						  slot->ttc_buffer,
+						  attrno,
+						  slot->ttc_tupleDescriptor,
+						  isNull);
 	if (*isNull)
 		return (char *) NULL;
 	return (char *) retval;
@@ -595,12 +593,11 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
 	if (attrno == InvalidAttrNumber)
 		elog(WARN, "GetAttributeByName: attribute %s not found", attname);
 
-	retval = (Datum)
-		heap_getattr(slot->val,
-					 slot->ttc_buffer,
-					 attrno,
-					 tupdesc,
-					 isNull);
+	retval = heap_getattr(slot->val,
+						  slot->ttc_buffer,
+						  attrno,
+						  tupdesc,
+						  isNull);
 	if (*isNull)
 		return (char *) NULL;
 	return (char *) retval;
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index 500a6eaa99aee0396c6000d6c05ed9db6eea6a47..54aa08f53eacd4f9541adae924e9f5f9236a05ac 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.10 1997/09/08 21:43:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.11 1997/09/12 04:07:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -83,11 +83,7 @@ ProjectAttribute(TupleDesc TD,
 	AttrNumber	attrno = attrVar->varattno;
 
 
-	val = PointerGetDatum(heap_getattr(tup,
-									   InvalidBuffer,
-									   attrno,
-									   TD,
-									   isnullP));
+	val = heap_getattr(tup, InvalidBuffer, attrno, TD, isnullP);
 	if (*isnullP)
 		return (Datum) NULL;
 
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index 7d7550ab433e2ee1489209cdf6febbf8ce76ab24..0acb1c58b134c6aae772ab65e6cee21a6051a695 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -638,7 +638,7 @@ aggGetAttr(TupleTableSlot *slot,
 		return (Datum) tempSlot;
 	}
 
-	result = (Datum)
+	result = 
 		heap_getattr(heapTuple, /* tuple containing attribute */
 					 buffer,	/* buffer associated with tuple */
 					 attnum,	/* attribute number of desired attribute */
diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c
index 3a86ef089dc60e730f83a625a805d22f312db08f..4fb42e429f97ac94b0ef82d0a74b06bde89f6467 100644
--- a/src/backend/executor/nodeGroup.c
+++ b/src/backend/executor/nodeGroup.c
@@ -13,7 +13,7 @@
  *	  columns. (ie. tuples from the same group are consecutive)
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.9 1997/09/08 21:43:10 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.10 1997/09/12 04:07:43 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -388,8 +388,8 @@ sameGroup(TupleTableSlot *oldslot,
 {
 	bool		isNull1,
 				isNull2;
-	char	   *attr1,
-			   *attr2;
+	Datum		attr1,
+			    attr2;
 	char	   *val1,
 			   *val2;
 	int			i;
diff --git a/src/backend/executor/nodeUnique.c b/src/backend/executor/nodeUnique.c
index 84879aa09143aeeebd41cec0fa86f48d284c096a..74ed561d41148ec4936160105c6dea74ef193184 100644
--- a/src/backend/executor/nodeUnique.c
+++ b/src/backend/executor/nodeUnique.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.10 1997/09/08 21:43:21 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.11 1997/09/12 04:07:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -182,8 +182,8 @@ ExecUnique(Unique *node)
 			 */
 			bool		isNull1,
 						isNull2;
-			char	   *attr1,
-					   *attr2;
+			Datum		attr1,
+						attr2;
 			char	   *val1,
 					   *val2;
 
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index 790b60ee85d505348aafaadf5a0458e7596c2bea..cf71b3a5fda88c416672bdb267335095888429f8 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -319,7 +319,7 @@ SPI_fname(TupleDesc tupdesc, int fnumber)
 char	   *
 SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber)
 {
-	char	   *val;
+	Datum		val;
 	bool		isnull;
 	Oid			foutoid;
 
@@ -346,10 +346,10 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber)
 	return (fmgr(foutoid, val, gettypelem(tupdesc->attrs[fnumber - 1]->atttypid)));
 }
 
-char	   *
+Datum
 SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull)
 {
-	char	   *val;
+	Datum	val;
 
 	*isnull = true;
 	SPI_result = 0;
diff --git a/src/backend/libpq/be-dumpdata.c b/src/backend/libpq/be-dumpdata.c
index 97413e82f482d365545e9c960983510e2335d6d7..f34be7cdab0a8a3be34423216352fbc2771336d7 100644
--- a/src/backend/libpq/be-dumpdata.c
+++ b/src/backend/libpq/be-dumpdata.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-dumpdata.c,v 1.8 1997/09/08 21:43:39 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-dumpdata.c,v 1.9 1997/09/12 04:07:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -213,7 +213,7 @@ void
 be_printtup(HeapTuple tuple, TupleDesc typeinfo)
 {
 	int			i;
-	char	   *attr;
+	Datum		attr;
 	bool		isnull;
 	Oid			typoutput;
 
diff --git a/src/backend/parser/catalog_utils.c b/src/backend/parser/catalog_utils.c
index db92e155221b60d65b7d6b3ff75d6a7f04ff2917..ee69f4afa297215fe2f189d76460db2f7bea788b 100644
--- a/src/backend/parser/catalog_utils.c
+++ b/src/backend/parser/catalog_utils.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.25 1997/09/08 21:46:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.26 1997/09/12 04:07:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1378,8 +1378,8 @@ findsupers(Oid relid, Oid **supervec)
 		{
 			qentry = (SuperQE *) palloc(sizeof(SuperQE));
 
-			d = (Datum) fastgetattr(inhtup, Anum_pg_inherits_inhparent,
-									inhtupdesc, &isNull);
+			d = fastgetattr(inhtup, Anum_pg_inherits_inhparent,
+							inhtupdesc, &isNull);
 			qentry->sqe_relid = DatumGetObjectId(d);
 
 			/* put this one on the queue */
diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c
index 598b59506487892eeeac7f5ec82470179417c392..18adb9713192185210f9acdbfa468fed1832816a 100644
--- a/src/backend/parser/parser.c
+++ b/src/backend/parser/parser.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.25 1997/09/08 21:46:12 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.26 1997/09/12 04:08:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -230,7 +230,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
 		case T_Integer:
 			const_string = (char *) palloc(256);
 			string_palloced = true;
-			sprintf(const_string, "%d", expr->val.ival);
+			sprintf(const_string, "%ld", expr->val.ival);
 			break;
 		default:
 			elog(WARN,
@@ -405,7 +405,7 @@ parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
 		case CASHOID:			/* money */
 			const_string = (char *) palloc(256);
 			string_palloced = true;
-			sprintf(const_string, "%d",
+			sprintf(const_string, "%ld",
 					(long) ((Const *) expr)->constvalue);
 			break;
 		case TEXTOID:			/* text */
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c
index 0955acf6fd63cf2aaa634247064e1267dc619038..d14fd8b5ae64f5ed4eba961ce3de5cd5e055561b 100644
--- a/src/backend/rewrite/rewriteRemove.c
+++ b/src/backend/rewrite/rewriteRemove.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.4 1997/09/08 02:28:20 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.5 1997/09/12 04:08:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -109,11 +109,11 @@ RemoveRewriteRule(char *ruleName)
 	 */
 	ruleId = tuple->t_oid;
 	eventRelationOidDatum =
-		PointerGetDatum(heap_getattr(tuple,
-									 buffer,
-									 Anum_pg_rewrite_ev_class,
-							 RelationGetTupleDescriptor(RewriteRelation),
-									 &isNull));
+		heap_getattr(tuple,
+					 buffer,
+					 Anum_pg_rewrite_ev_class,
+					 RelationGetTupleDescriptor(RewriteRelation),
+					 &isNull);
 	if (isNull)
 	{
 		/* XXX strange!!! */
diff --git a/src/backend/rewrite/rewriteSupport.c b/src/backend/rewrite/rewriteSupport.c
index 19423dc99825fb3e9e944e76cf50ecee1c4e73ae..ab5d00712bfba4440841f861e601a6df049a960e 100644
--- a/src/backend/rewrite/rewriteSupport.c
+++ b/src/backend/rewrite/rewriteSupport.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.9 1997/09/08 21:46:44 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.10 1997/09/12 04:08:10 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,14 +58,14 @@ RuleIdGetActionInfo(Oid ruleoid, bool *instead_flag, Query **parseTrees)
 	if (ruletuple == NULL)
 		elog(WARN, "rule %u isn't in rewrite system relation", ruleoid);
 
-	ruleaction = heap_getattr(ruletuple,
-							  InvalidBuffer,
-							  Anum_pg_rewrite_action,
-							  ruleTupdesc,
-							  &action_is_null);
-	rule_evqual_string = heap_getattr(ruletuple, InvalidBuffer,
-									  Anum_pg_rewrite_ev_qual,
-									  ruleTupdesc, &action_is_null);
+	ruleaction = (char *)heap_getattr(ruletuple,
+									  InvalidBuffer,
+									  Anum_pg_rewrite_action,
+									  ruleTupdesc,
+									  &action_is_null);
+	rule_evqual_string = (char *)heap_getattr(ruletuple, InvalidBuffer,
+											  Anum_pg_rewrite_ev_qual,
+											  ruleTupdesc, &action_is_null);
 	*instead_flag = !!heap_getattr(ruletuple, InvalidBuffer,
 								   Anum_pg_rewrite_is_instead,
 								   ruleTupdesc, &instead_is_null);
diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c
index f31f7e208f0e9cf5e98176e36dfad3ee9f8554d0..337cf44e3d38f4ecdd026cf0b98ac40589ca9700 100644
--- a/src/backend/storage/large_object/inv_api.c
+++ b/src/backend/storage/large_object/inv_api.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.17 1997/09/08 21:47:17 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.18 1997/09/12 04:08:15 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -472,7 +472,7 @@ inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes)
 		}
 
 		/* copy the data from this block into the buffer */
-		d = (Datum) heap_getattr(htup, b, 2, obj_desc->hdesc, &isNull);
+		d = heap_getattr(htup, b, 2, obj_desc->hdesc, &isNull);
 		fsblock = (struct varlena *) DatumGetPointer(d);
 
 		off = obj_desc->offset - obj_desc->lowbyte;
@@ -648,9 +648,9 @@ inv_fetchtup(LargeObjectDesc *obj_desc, Buffer *bufP)
 	 * return the tuple.
 	 */
 
-	d = (Datum) heap_getattr(htup, *bufP, 1, obj_desc->hdesc, &isNull);
+	d = heap_getattr(htup, *bufP, 1, obj_desc->hdesc, &isNull);
 	lastbyte = (int32) DatumGetInt32(d);
-	d = (Datum) heap_getattr(htup, *bufP, 2, obj_desc->hdesc, &isNull);
+	d = heap_getattr(htup, *bufP, 2, obj_desc->hdesc, &isNull);
 	fsblock = (struct varlena *) DatumGetPointer(d);
 
 	/*
@@ -817,7 +817,7 @@ inv_wrold(LargeObjectDesc *obj_desc,
 	newpage = BufferGetPage(newbuf);
 	hr = obj_desc->heap_r;
 	freespc = IFREESPC(page);
-	d = (Datum) heap_getattr(htup, buffer, 2, obj_desc->hdesc, &isNull);
+	d = heap_getattr(htup, buffer, 2, obj_desc->hdesc, &isNull);
 	fsblock = (struct varlena *) DatumGetPointer(d);
 	tupbytes = fsblock->vl_len - sizeof(fsblock->vl_len);
 
@@ -1218,7 +1218,7 @@ _inv_getsize(Relation hreln, TupleDesc hdesc, Relation ireln)
 	index_endscan(iscan);
 
 	/* get olastbyte attribute */
-	d = (Datum) heap_getattr(htup, buf, 1, hdesc, &isNull);
+	d = heap_getattr(htup, buf, 1, hdesc, &isNull);
 	size = DatumGetInt32(d) + 1;
 
 	/* wei hates it if you forget to do this */
diff --git a/src/backend/utils/adt/not_in.c b/src/backend/utils/adt/not_in.c
index eb8f6533277e37ad20cee13971d41cd80aad135b..dd11e8389b01dfaebd1153f2fe1d7ea8ee79ecbe 100644
--- a/src/backend/utils/adt/not_in.c
+++ b/src/backend/utils/adt/not_in.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.5 1997/09/08 02:30:52 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.6 1997/09/12 04:08:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -82,11 +82,11 @@ int4notin(int16 not_in_arg, char *relation_and_attr)
 		 current_tuple != NULL && retval;
 		 current_tuple = heap_getnext(scan_descriptor, 0, NULL))
 	{
-		value = PointerGetDatum(heap_getattr(current_tuple,
-											 InvalidBuffer,
-											 (AttrNumber) attrid,
-							RelationGetTupleDescriptor(relation_to_scan),
-											 &dummy));
+		value = heap_getattr(current_tuple,
+							 InvalidBuffer,
+							 (AttrNumber) attrid,
+							 RelationGetTupleDescriptor(relation_to_scan),
+							 &dummy);
 
 		integer_value = DatumGetInt16(value);
 		if (left_side_argument == integer_value)
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 960385d88ebaadf286c9b8ae1c601718316c8ac7..c74565ddfab916d031e0ebbb682b6133273ed71a 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.13 1997/09/08 21:48:45 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.14 1997/09/12 04:08:28 momjian Exp $
  *
  * Notes:
  *		XXX This needs to use exception.h to handle recovery when
@@ -387,40 +387,40 @@ CatalogCacheComputeTupleHashIndex(struct catcache * cacheInOutP,
 			cacheInOutP->cc_skey[3].sk_argument =
 				(cacheInOutP->cc_key[3] == ObjectIdAttributeNumber)
 				? (Datum) tuple->t_oid
-				: (Datum) fastgetattr(tuple,
-									  cacheInOutP->cc_key[3],
-									RelationGetTupleDescriptor(relation),
-									  &isNull);
+				: fastgetattr(tuple,
+							  cacheInOutP->cc_key[3],
+							  RelationGetTupleDescriptor(relation),
+							  &isNull);
 			Assert(!isNull);
 			/* FALLTHROUGH */
 		case 3:
 			cacheInOutP->cc_skey[2].sk_argument =
 				(cacheInOutP->cc_key[2] == ObjectIdAttributeNumber)
 				? (Datum) tuple->t_oid
-				: (Datum) fastgetattr(tuple,
-									  cacheInOutP->cc_key[2],
-									RelationGetTupleDescriptor(relation),
-									  &isNull);
+				: fastgetattr(tuple,
+							  cacheInOutP->cc_key[2],
+							  RelationGetTupleDescriptor(relation),
+							  &isNull);
 			Assert(!isNull);
 			/* FALLTHROUGH */
 		case 2:
 			cacheInOutP->cc_skey[1].sk_argument =
 				(cacheInOutP->cc_key[1] == ObjectIdAttributeNumber)
 				? (Datum) tuple->t_oid
-				: (Datum) fastgetattr(tuple,
-									  cacheInOutP->cc_key[1],
-									RelationGetTupleDescriptor(relation),
-									  &isNull);
+				: fastgetattr(tuple,
+							  cacheInOutP->cc_key[1],
+							  RelationGetTupleDescriptor(relation),
+							  &isNull);
 			Assert(!isNull);
 			/* FALLTHROUGH */
 		case 1:
 			cacheInOutP->cc_skey[0].sk_argument =
 				(cacheInOutP->cc_key[0] == ObjectIdAttributeNumber)
 				? (Datum) tuple->t_oid
-				: (Datum) fastgetattr(tuple,
-									  cacheInOutP->cc_key[0],
-									RelationGetTupleDescriptor(relation),
-									  &isNull);
+				: fastgetattr(tuple,
+							  cacheInOutP->cc_key[0],
+							  RelationGetTupleDescriptor(relation),
+							  &isNull);
 			Assert(!isNull);
 			break;
 		default:
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 8a07d88c32fd335744fdfcf050b9fd359b98d231..2a2fc2544ef225581e22611a85dc200358f54721 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.7 1997/09/08 21:48:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.8 1997/09/12 04:08:35 momjian Exp $
  *
  * NOTES
  *	  These routines allow the parser/planner/executor to perform
@@ -494,7 +494,7 @@ SearchSysCacheGetAttribute(int cacheId,
 	int32		attributeLength,
 				attributeByValue;
 	bool		isNull;
-	char	   *attributeValue;
+	Datum		attributeValue;
 	void	   *returnValue;
 
 	tp = SearchSysCacheTuple(cacheId, key1, key2, key3, key4);
@@ -562,7 +562,7 @@ SearchSysCacheGetAttribute(int cacheId,
 		: attributeLength;		/* fixed length */
 
 		tmp = (char *) palloc(size);
-		memmove(tmp, attributeValue, size);
+		memmove(tmp, (void *)attributeValue, size);
 		returnValue = (void *) tmp;
 	}
 
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 2fc776945f3e8ed6cf56b89fa8a89360df67db5b..3c2e9a70863956491de94c99a4e2d26d439d3162 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.11 1997/09/08 02:31:34 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.12 1997/09/12 04:08:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,9 +53,9 @@ fmgr_dynamic(Oid procedureId, int *pronargs)
 {
 	HeapTuple	procedureTuple;
 	Form_pg_proc procedureStruct;
-	char	   *proname;
-	char	   *probinattr,
+	char	   *proname,
 			   *probinstring;
+	Datum		probinattr;
 	func_ptr	user_fn;
 	Relation	rdesc;
 	bool		isnull;
diff --git a/src/backend/utils/sort/lselect.c b/src/backend/utils/sort/lselect.c
index e4dab6583aa485f308bd0d724cbbc85178af2489..1805bd3fd95248eb370d1ab3d40509bd453f7afd 100644
--- a/src/backend/utils/sort/lselect.c
+++ b/src/backend/utils/sort/lselect.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/lselect.c,v 1.7 1997/09/08 02:32:25 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/lselect.c,v 1.8 1997/09/12 04:08:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -197,8 +197,8 @@ puttuple(struct leftist ** treep,
 int
 tuplecmp(HeapTuple ltup, HeapTuple rtup, LeftistContext context)
 {
-	register char *lattr,
-			   *rattr;
+	register Datum lattr,
+				rattr;
 	int			nkey = 0;
 	int			result = 0;
 	bool		isnull;
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 366bcf0431e176bf38929ddde65b09c4acf7432a..aa2cd6398ba0af0c5222b9e22f0edd478996ba3b 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.7 1997/09/08 21:49:37 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.8 1997/09/12 04:08:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,9 +32,11 @@ static AbsoluteTime TimeQualGetStartTime(TimeQual qual);
 static bool TimeQualIncludesNow(TimeQual qual);
 static bool TimeQualIndicatesDisableValidityChecking(TimeQual qual);
 static bool TimeQualIsLegal(TimeQual qual);
+#ifndef NO_ASSERT_CHECKING
 static bool TimeQualIsRanged(TimeQual qual);
-static bool TimeQualIsSnapshot(TimeQual qual);
 static bool TimeQualIsValid(TimeQual qual);
+#endif
+static bool TimeQualIsSnapshot(TimeQual qual);
 
 /*
  * TimeQualMode --
@@ -133,6 +135,7 @@ HeapTupleSatisfiesUpperUnboundedInternalTimeQual(HeapTuple tuple,
  * TimeQualIsValid --
  *		True iff time qualification is valid.
  */
+#ifndef NO_ASSERT_CHECKING
 static bool
 TimeQualIsValid(TimeQual qual)
 {
@@ -179,6 +182,7 @@ TimeQualIsValid(TimeQual qual)
 	}
 	return (true);
 }
+#endif
 
 /*
  * TimeQualIsLegal --
@@ -332,6 +336,7 @@ TimeQualIsSnapshot(TimeQual qual)
  * Note:
  *		Assumes time qualification is valid.
  */
+#ifndef NO_ASSERT_CHECKING
 static bool
 TimeQualIsRanged(TimeQual qual)
 {
@@ -344,6 +349,7 @@ TimeQualIsRanged(TimeQual qual)
 
 	return ((bool) !(((InternalTimeQual) qual)->mode & TimeQualAt));
 }
+#endif
 
 /*
  * TimeQualIndicatesDisableValidityChecking --
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index c30e4405bfa9dd68b407c5f6ab075d9a412371f0..07b27039e0d6db4bcdeab009664b6250250021f9 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: heapam.h,v 1.15 1997/09/08 21:50:45 momjian Exp $
+ * $Id: heapam.h,v 1.16 1997/09/12 04:09:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -97,11 +97,11 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
 #define heap_getattr(tup, b, attnum, tupleDesc, isnull) \
 	(AssertMacro((tup) != NULL) ? \
 		((attnum) > (int) (tup)->t_natts) ? \
-			(((isnull) ? (*(isnull) = true) : (char)NULL), (char *)NULL) : \
+			(((isnull) ? (*(isnull) = true) : (char)NULL), (Datum)NULL) : \
 		((attnum) > 0) ? \
 			fastgetattr((tup), (attnum), (tupleDesc), (isnull)) : \
 		(((isnull) ? (*(isnull) = false) : (char)NULL), heap_getsysattr((tup), (b), (attnum))) : \
-	(char *)NULL)
+	(Datum)NULL)
 
 extern HeapAccessStatistics heap_access_stats;	/* in stats.c */
 
@@ -143,10 +143,9 @@ DataFill(char *data, TupleDesc tupleDesc,
 extern int	heap_attisnull(HeapTuple tup, int attnum);
 extern int	heap_sysattrlen(AttrNumber attno);
 extern bool heap_sysattrbyval(AttrNumber attno);
-extern char *heap_getsysattr(HeapTuple tup, Buffer b, int attnum);
-extern char *
-fastgetattr(HeapTuple tup, int attnum,
-			TupleDesc att, bool *isnull);
+extern Datum heap_getsysattr(HeapTuple tup, Buffer b, int attnum);
+extern Datum fastgetattr(HeapTuple tup, int attnum,
+						 TupleDesc att, bool *isnull);
 extern HeapTuple heap_copytuple(HeapTuple tuple);
 extern HeapTuple
 heap_formtuple(TupleDesc tupleDescriptor,
diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h
index 5ce12b1d16d57e9cfac46bfb9cc4d1ae49f9e5be..6f4fd519f39588467c974eda7ca3dbf9d8f21b22 100644
--- a/src/include/executor/spi.h
+++ b/src/include/executor/spi.h
@@ -80,7 +80,7 @@ extern void *SPI_saveplan(void *plan);
 extern int	SPI_fnumber(TupleDesc tupdesc, char *fname);
 extern char *SPI_fname(TupleDesc tupdesc, int fnumber);
 extern char *SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber);
-extern char *SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull);
+extern Datum SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull);
 extern char *SPI_gettype(TupleDesc tupdesc, int fnumber);
 extern Oid	SPI_gettypeid(TupleDesc tupdesc, int fnumber);
 extern char *SPI_getrelname(Relation rel);