summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/access/transam.h40
-rw-r--r--src/include/c.h6
-rw-r--r--src/include/postgres.h30
-rw-r--r--src/include/utils/tqual.h4
4 files changed, 57 insertions, 23 deletions
diff --git a/src/include/access/transam.h b/src/include/access/transam.h
index 9a872278ad7..3833d97821a 100644
--- a/src/include/access/transam.h
+++ b/src/include/access/transam.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: transam.h,v 1.37 2001/08/10 18:57:39 tgl Exp $
+ * $Id: transam.h,v 1.38 2001/08/23 23:06:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,29 +24,37 @@
* 128 bytes of pg_log available for special purposes such as version number
* storage. (Currently, we do not actually use them for anything.)
*
- * AmiTransactionId is the XID for "bootstrap" operations. It should always
- * be considered valid.
+ * BootstrapTransactionId is the XID for "bootstrap" operations. It should
+ * always be considered valid.
*
- * FirstTransactionId is the first "normal" transaction id.
+ * FirstNormalTransactionId is the first "normal" transaction id.
* ----------------
*/
-#define NullTransactionId ((TransactionId) 0)
-#define DisabledTransactionId ((TransactionId) 1)
-#define AmiTransactionId ((TransactionId) 512)
-#define FirstTransactionId ((TransactionId) 514)
+#define InvalidTransactionId ((TransactionId) 0)
+#define DisabledTransactionId ((TransactionId) 1)
+#define BootstrapTransactionId ((TransactionId) 512)
+#define FirstNormalTransactionId ((TransactionId) 514)
/* ----------------
* transaction ID manipulation macros
* ----------------
*/
-#define TransactionIdIsValid(xid) ((bool) ((xid) != NullTransactionId))
-#define TransactionIdIsSpecial(xid) ((bool) ((xid) < FirstTransactionId))
-#define TransactionIdEquals(id1, id2) ((bool) ((id1) == (id2)))
-#define TransactionIdPrecedes(id1, id2) ((bool) ((id1) < (id2)))
-#define TransactionIdStore(xid, dest) \
- (*((TransactionId*) (dest)) = (TransactionId) (xid))
-#define StoreInvalidTransactionId(dest) \
- (*((TransactionId*) (dest)) = NullTransactionId)
+#define TransactionIdIsValid(xid) ((xid) != InvalidTransactionId)
+#define TransactionIdIsNormal(xid) ((xid) >= FirstNormalTransactionId)
+#define TransactionIdEquals(id1, id2) ((id1) == (id2))
+#define TransactionIdPrecedes(id1, id2) ((id1) < (id2))
+#define TransactionIdPrecedesOrEquals(id1, id2) ((id1) <= (id2))
+#define TransactionIdFollows(id1, id2) ((id1) > (id2))
+#define TransactionIdFollowsOrEquals(id1, id2) ((id1) >= (id2))
+#define TransactionIdStore(xid, dest) (*(dest) = (xid))
+#define StoreInvalidTransactionId(dest) (*(dest) = InvalidTransactionId)
+/* advance a transaction ID variable, handling wraparound correctly */
+#define TransactionIdAdvance(dest) \
+ do { \
+ (dest)++; \
+ if ((dest) < FirstNormalTransactionId) \
+ (dest) = FirstNormalTransactionId; \
+ } while(0)
/* ----------------
* transaction status values
diff --git a/src/include/c.h b/src/include/c.h
index 0457a4af5b7..d67dee12ac6 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.97 2001/07/11 22:12:43 momjian Exp $
+ * $Id: c.h,v 1.98 2001/08/23 23:06:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -330,11 +330,9 @@ typedef Oid RegProcedure;
typedef uint32 TransactionId;
-#define InvalidTransactionId 0
-
typedef uint32 CommandId;
-#define FirstCommandId 0
+#define FirstCommandId ((CommandId) 0)
/*
* Array indexing support
diff --git a/src/include/postgres.h b/src/include/postgres.h
index 1502c84a4c6..c40db19dab2 100644
--- a/src/include/postgres.h
+++ b/src/include/postgres.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California
*
- * $Id: postgres.h,v 1.50 2001/08/10 18:57:41 tgl Exp $
+ * $Id: postgres.h,v 1.51 2001/08/23 23:06:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -262,6 +262,34 @@ typedef Datum *DatumPtr;
#define ObjectIdGetDatum(X) ((Datum) SET_4_BYTES(X))
/*
+ * DatumGetTransactionId
+ * Returns transaction identifier value of a datum.
+ */
+
+#define DatumGetTransactionId(X) ((TransactionId) GET_4_BYTES(X))
+
+/*
+ * TransactionIdGetDatum
+ * Returns datum representation for a transaction identifier.
+ */
+
+#define TransactionIdGetDatum(X) ((Datum) SET_4_BYTES((X)))
+
+/*
+ * DatumGetCommandId
+ * Returns command identifier value of a datum.
+ */
+
+#define DatumGetCommandId(X) ((CommandId) GET_4_BYTES(X))
+
+/*
+ * CommandIdGetDatum
+ * Returns datum representation for a command identifier.
+ */
+
+#define CommandIdGetDatum(X) ((Datum) SET_4_BYTES(X))
+
+/*
* DatumGetPointer
* Returns pointer value of a datum.
*/
diff --git a/src/include/utils/tqual.h b/src/include/utils/tqual.h
index 86c88892adf..bff437f540b 100644
--- a/src/include/utils/tqual.h
+++ b/src/include/utils/tqual.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: tqual.h,v 1.32 2001/07/12 04:11:13 tgl Exp $
+ * $Id: tqual.h,v 1.33 2001/08/23 23:06:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -57,7 +57,7 @@ extern bool ReferentialIntegritySnapshotOverride;
*/
#define HeapTupleSatisfiesVisibility(tuple, snapshot) \
( \
- TransactionIdEquals((tuple)->t_data->t_xmax, AmiTransactionId) ? \
+ TransactionIdEquals((tuple)->t_data->t_xmax, BootstrapTransactionId) ? \
false \
: \
( \