31 #define InvalidTransactionId ((TransactionId) 0)
32 #define BootstrapTransactionId ((TransactionId) 1)
33 #define FrozenTransactionId ((TransactionId) 2)
34 #define FirstNormalTransactionId ((TransactionId) 3)
35 #define MaxTransactionId ((TransactionId) 0xFFFFFFFF)
41 #define TransactionIdIsValid(xid) ((xid) != InvalidTransactionId)
42 #define TransactionIdIsNormal(xid) ((xid) >= FirstNormalTransactionId)
43 #define TransactionIdEquals(id1, id2) ((id1) == (id2))
44 #define TransactionIdStore(xid, dest) (*(dest) = (xid))
45 #define StoreInvalidTransactionId(dest) (*(dest) = InvalidTransactionId)
48 #define TransactionIdAdvance(dest) \
51 if ((dest) < FirstNormalTransactionId) \
52 (dest) = FirstNormalTransactionId; \
56 #define TransactionIdRetreat(dest) \
59 } while ((dest) < FirstNormalTransactionId)
62 #define NormalTransactionIdPrecedes(id1, id2) \
63 (AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
64 (int32) ((id1) - (id2)) < 0)
67 #define NormalTransactionIdFollows(id1, id2) \
68 (AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
69 (int32) ((id1) - (id2)) > 0)
93 #define FirstBootstrapObjectId 10000
94 #define FirstNormalObjectId 16384
VariableCacheData * VariableCache
TransactionId TransactionIdLatest(TransactionId mainxid, int nxids, const TransactionId *xids)
void SetTransactionIdLimit(TransactionId oldest_datfrozenxid, Oid oldest_datoid)
void TransactionIdAbort(TransactionId transactionId)
void TransactionIdAbortTree(TransactionId xid, int nxids, TransactionId *xids)
TransactionId ReadNewTransactionId(void)
PGDLLIMPORT VariableCache ShmemVariableCache
bool TransactionIdFollows(TransactionId id1, TransactionId id2)
bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2)
bool TransactionIdPrecedesOrEquals(TransactionId id1, TransactionId id2)
struct VariableCacheData VariableCacheData
TransactionId xidVacLimit
bool ForceTransactionIdLimitUpdate(void)
bool TransactionIdDidAbort(TransactionId transactionId)
bool TransactionIdIsKnownCompleted(TransactionId transactionId)
TransactionId xidStopLimit
TransactionId GetNewTransactionId(bool isSubXact)
TransactionId oldestCommitTsXid
bool TransactionIdDidCommit(TransactionId transactionId)
void TransactionIdAsyncCommitTree(TransactionId xid, int nxids, TransactionId *xids, XLogRecPtr lsn)
TransactionId newestCommitTsXid
void TransactionIdCommitTree(TransactionId xid, int nxids, TransactionId *xids)
bool TransactionStartedDuringRecovery(void)
bool TransactionIdPrecedes(TransactionId id1, TransactionId id2)
TransactionId xidWarnLimit
XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid)
TransactionId xidWrapLimit
TransactionId latestCompletedXid