From fe7015f5e821d70428995f04726215fc79294f10 Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Sun, 20 Mar 2005 23:40:34 +0000
Subject: [PATCH] Change the return value of HeapTupleSatisfiesUpdate() to be
 an enum, rather than an integer, and fix the associated fallout. From Alvaro
 Herrera.

---
 src/backend/access/heap/heapam.c | 18 +++++++++---------
 src/backend/commands/async.c     |  4 ++--
 src/backend/commands/trigger.c   |  4 ++--
 src/backend/executor/execMain.c  |  8 ++++----
 src/backend/utils/time/tqual.c   |  4 ++--
 src/include/access/heapam.h      |  8 ++++----
 src/include/utils/tqual.h        | 17 ++++++++++-------
 7 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index a0cb93924ea..4b540c857b7 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.183 2005/02/20 21:46:47 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.184 2005/03/20 23:40:23 neilc Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1265,7 +1265,7 @@ simple_heap_insert(Relation relation, HeapTuple tup)
  * *ctid is set to the ctid link of the target tuple (possibly a later
  * version of the row).
  */
-int
+HTSU_Result
 heap_delete(Relation relation, ItemPointer tid,
 			ItemPointer ctid, CommandId cid,
 			Snapshot crosscheck, bool wait)
@@ -1275,7 +1275,7 @@ heap_delete(Relation relation, ItemPointer tid,
 	HeapTupleData tp;
 	PageHeader	dp;
 	Buffer		buffer;
-	int			result;
+	HTSU_Result	result;
 
 	Assert(ItemPointerIsValid(tid));
 
@@ -1430,7 +1430,7 @@ void
 simple_heap_delete(Relation relation, ItemPointer tid)
 {
 	ItemPointerData ctid;
-	int			result;
+	HTSU_Result		result;
 
 	result = heap_delete(relation, tid,
 						 &ctid,
@@ -1480,7 +1480,7 @@ simple_heap_delete(Relation relation, ItemPointer tid)
  * On success, newtup->t_self is set to the TID where the new tuple
  * was inserted.
  */
-int
+HTSU_Result
 heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 			ItemPointer ctid, CommandId cid,
 			Snapshot crosscheck, bool wait)
@@ -1495,7 +1495,7 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
 				already_marked;
 	Size		newtupsize,
 				pagefree;
-	int			result;
+	HTSU_Result	result;
 
 	Assert(ItemPointerIsValid(otid));
 
@@ -1792,7 +1792,7 @@ void
 simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 {
 	ItemPointerData ctid;
-	int			result;
+	HTSU_Result		result;
 
 	result = heap_update(relation, otid, tup,
 						 &ctid,
@@ -1822,7 +1822,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
 /*
  *	heap_mark4update		- mark a tuple for update
  */
-int
+HTSU_Result
 heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer,
 				 CommandId cid)
 {
@@ -1830,7 +1830,7 @@ heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer,
 	ItemPointer tid = &(tuple->t_self);
 	ItemId		lp;
 	PageHeader	dp;
-	int			result;
+	HTSU_Result	result;
 
 	*buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 	LockBuffer(*buffer, BUFFER_LOCK_EXCLUSIVE);
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index 06f453df6df..11ad8c69bce 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.119 2005/01/27 23:23:54 neilc Exp $
+ *	  $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.120 2005/03/20 23:40:24 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -521,7 +521,7 @@ AtCommit_Notify(void)
 			else if (listener->notification == 0)
 			{
 				ItemPointerData ctid;
-				int			result;
+				HTSU_Result		result;
 
 				rTuple = heap_modifytuple(lTuple, tdesc,
 										  value, nulls, repl);
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 3f0bdbc2a8f..fd7d9afb836 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
- *	  $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.177 2004/12/31 21:59:41 pgsql Exp $
+ *	  $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.178 2005/03/20 23:40:24 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1566,7 +1566,7 @@ GetTupleForTrigger(EState *estate, ResultRelInfo *relinfo,
 
 	if (newSlot != NULL)
 	{
-		int			test;
+		HTSU_Result	test;
 
 		/*
 		 * mark tuple for update
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 0294063d3f5..ad3ff3e5b90 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.242 2005/03/16 21:38:06 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.243 2005/03/20 23:40:25 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1116,7 +1116,7 @@ lnext:	;
 					Buffer		buffer;
 					HeapTupleData tuple;
 					TupleTableSlot *newSlot;
-					int			test;
+					HTSU_Result		test;
 
 					if (!ExecGetJunkAttribute(junkfilter,
 											  slot,
@@ -1396,7 +1396,7 @@ ExecDelete(TupleTableSlot *slot,
 	ResultRelInfo *resultRelInfo;
 	Relation	resultRelationDesc;
 	ItemPointerData ctid;
-	int			result;
+	HTSU_Result	result;
 
 	/*
 	 * get information on the (current) result relation
@@ -1500,7 +1500,7 @@ ExecUpdate(TupleTableSlot *slot,
 	ResultRelInfo *resultRelInfo;
 	Relation	resultRelationDesc;
 	ItemPointerData ctid;
-	int			result;
+	HTSU_Result	result;
 	int			numIndices;
 
 	/*
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 124ac1cbec0..43909008863 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -16,7 +16,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.85 2005/02/20 15:01:42 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.86 2005/03/20 23:40:27 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -455,7 +455,7 @@ HeapTupleSatisfiesToast(HeapTupleHeader tuple, Buffer buffer)
  *	tuples of my own xact are tested against the passed CommandId not
  *	CurrentCommandId.
  */
-int
+HTSU_Result
 HeapTupleSatisfiesUpdate(HeapTupleHeader tuple, CommandId curcid,
 						 Buffer buffer)
 {
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 5c58f32c43e..6de107b76fc 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.96 2005/03/16 21:38:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.97 2005/03/20 23:40:29 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -153,11 +153,11 @@ extern ItemPointer heap_get_latest_tid(Relation relation, Snapshot snapshot,
 extern void setLastTid(const ItemPointer tid);
 
 extern Oid	heap_insert(Relation relation, HeapTuple tup, CommandId cid);
-extern int heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid,
+extern HTSU_Result heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid,
 			CommandId cid, Snapshot crosscheck, bool wait);
-extern int heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
+extern HTSU_Result heap_update(Relation relation, ItemPointer otid, HeapTuple tup,
 		ItemPointer ctid, CommandId cid, Snapshot crosscheck, bool wait);
-extern int heap_mark4update(Relation relation, HeapTuple tup,
+extern HTSU_Result heap_mark4update(Relation relation, HeapTuple tup,
 				 Buffer *userbuf, CommandId cid);
 
 extern Oid	simple_heap_insert(Relation relation, HeapTuple tup);
diff --git a/src/include/utils/tqual.h b/src/include/utils/tqual.h
index c72e40db7e2..e553cfedf81 100644
--- a/src/include/utils/tqual.h
+++ b/src/include/utils/tqual.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.55 2004/12/31 22:03:46 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/utils/tqual.h,v 1.56 2005/03/20 23:40:34 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -97,11 +97,14 @@ extern TransactionId RecentGlobalXmin;
 )
 
 /* Result codes for HeapTupleSatisfiesUpdate */
-#define HeapTupleMayBeUpdated		0
-#define HeapTupleInvisible			1
-#define HeapTupleSelfUpdated		2
-#define HeapTupleUpdated			3
-#define HeapTupleBeingUpdated		4
+typedef enum
+{
+	HeapTupleMayBeUpdated,
+	HeapTupleInvisible,
+	HeapTupleSelfUpdated,
+	HeapTupleUpdated,
+	HeapTupleBeingUpdated
+} HTSU_Result;
 
 /* Result codes for HeapTupleSatisfiesVacuum */
 typedef enum
@@ -119,7 +122,7 @@ extern bool HeapTupleSatisfiesDirty(HeapTupleHeader tuple, Buffer buffer);
 extern bool HeapTupleSatisfiesToast(HeapTupleHeader tuple, Buffer buffer);
 extern bool HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple,
 						   Snapshot snapshot, Buffer buffer);
-extern int HeapTupleSatisfiesUpdate(HeapTupleHeader tuple,
+extern HTSU_Result HeapTupleSatisfiesUpdate(HeapTupleHeader tuple,
 						 CommandId curcid, Buffer buffer);
 extern HTSV_Result HeapTupleSatisfiesVacuum(HeapTupleHeader tuple,
 						 TransactionId OldestXmin, Buffer buffer);
-- 
GitLab