diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/transam.h | 40 | ||||
-rw-r--r-- | src/include/c.h | 6 | ||||
-rw-r--r-- | src/include/postgres.h | 30 | ||||
-rw-r--r-- | src/include/utils/tqual.h | 4 |
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 \ : \ ( \ |