Move xact.c's partial support for Lists of TransactionIds into pg_list.h.
authorTom Lane
Sun, 27 Aug 2006 19:11:46 +0000 (19:11 +0000)
committerTom Lane
Sun, 27 Aug 2006 19:11:46 +0000 (19:11 +0000)
Needed because lock.c is now going to use the same type of list.

src/backend/access/transam/xact.c
src/include/nodes/pg_list.h

index 81c2583571af8d3c14ca20697bded7a155a20bd4..6fda0ce1f970f6bd26369ab0598329f1bdb9f2f4 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.225 2006/07/30 02:07:18 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.226 2006/08/27 19:11:46 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -125,14 +125,6 @@ typedef struct TransactionStateData
 
 typedef TransactionStateData *TransactionState;
 
-/*
- * childXids is currently implemented as an Oid List, relying on the
- * assumption that TransactionIds are no wider than Oid.  We use these
- * macros to provide some isolation in case that changes in the future.
- */
-#define lfirst_xid(lc)             ((TransactionId) lfirst_oid(lc))
-#define lappend_xid(list, datum)   lappend_oid(list, (Oid) (datum))
-
 /*
  * CurrentTransactionState always points to the current transaction state
  * block.  It will point to TopTransactionStateData when not in a
index 945fdf963450864d23099ccb14126fa483f718c5..6175bc1e2ead597c0ff91d6b191d557a8eed1537 100644 (file)
  * (At the moment, ints and Oids are the same size, but they may not
  * always be so; try to be careful to maintain the distinction.)
  *
+ * There is also limited support for lists of TransactionIds; since these
+ * are used in only one or two places, we don't provide a full implementation,
+ * but map them onto Oid lists.  This effectively assumes that TransactionId
+ * is no wider than Oid and both are unsigned types.
+ *
  *
  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.54 2006/03/05 15:58:57 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.55 2006/08/27 19:11:46 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -154,6 +159,12 @@ extern int list_length(List *l);
 #define list_make3_oid(x1,x2,x3)   lcons_oid(x1, list_make2_oid(x2, x3))
 #define list_make4_oid(x1,x2,x3,x4) lcons_oid(x1, list_make3_oid(x2, x3, x4))
 
+/*
+ * Limited support for lists of TransactionIds, mapped onto lists of Oids
+ */
+#define lfirst_xid(lc)             ((TransactionId) lfirst_oid(lc))
+#define lappend_xid(list, datum)   lappend_oid(list, (Oid) (datum))
+
 /*
  * foreach -
  *   a convenience macro which loops through the list