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)
47#define EpochFromFullTransactionId(x) ((uint32) ((x).value >> 32))
48#define XidFromFullTransactionId(x) ((uint32) (x).value)
49#define U64FromFullTransactionId(x) ((x).value)
50#define FullTransactionIdEquals(a, b) ((a).value == (b).value)
51#define FullTransactionIdPrecedes(a, b) ((a).value < (b).value)
52#define FullTransactionIdPrecedesOrEquals(a, b) ((a).value <= (b).value)
53#define FullTransactionIdFollows(a, b) ((a).value > (b).value)
54#define FullTransactionIdFollowsOrEquals(a, b) ((a).value >= (b).value)
55#define FullTransactionIdIsValid(x) TransactionIdIsValid(XidFromFullTransactionId(x))
56#define InvalidFullTransactionId FullTransactionIdFromEpochAndXid(0, InvalidTransactionId)
57#define FirstNormalFullTransactionId FullTransactionIdFromEpochAndXid(0, FirstNormalTransactionId)
58#define FullTransactionIdIsNormal(x) FullTransactionIdFollowsOrEquals(x, FirstNormalFullTransactionId)
91#define TransactionIdAdvance(dest) \
94 if ((dest) < FirstNormalTransactionId) \
95 (dest) = FirstNormalTransactionId; \
141#define TransactionIdRetreat(dest) \
144 } while ((dest) < FirstNormalTransactionId)
147#define NormalTransactionIdPrecedes(id1, id2) \
148 (AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
149 (int32) ((id1) - (id2)) < 0)
152#define NormalTransactionIdFollows(id1, id2) \
153 (AssertMacro(TransactionIdIsNormal(id1) && TransactionIdIsNormal(id2)), \
154 (int32) ((id1) - (id2)) > 0)
195#define FirstGenbkiObjectId 10000
196#define FirstUnpinnedObjectId 12000
197#define FirstNormalObjectId 16384
274 diff = (
int32) (id1 - id2);
289 diff = (
int32) (id1 - id2);
304 diff = (
int32) (id1 - id2);
319 diff = (
int32) (id1 - id2);
360#ifdef USE_ASSERT_CHECKING
363#define AssertTransactionIdInAllowableRange(xid) ((void)true)
Assert(PointerIsAligned(start, uint64))
TransactionId xidStopLimit
TransactionId oldestCommitTsXid
TransactionId newestCommitTsXid
TransactionId xidWarnLimit
TransactionId xidWrapLimit
FullTransactionId latestCompletedXid
FullTransactionId nextXid
TransactionId xidVacLimit
uint64 xactCompletionCount
TransactionId oldestClogXid
void TransactionIdAsyncCommitTree(TransactionId xid, int nxids, TransactionId *xids, XLogRecPtr lsn)
static bool TransactionIdFollows(TransactionId id1, TransactionId id2)
PGDLLIMPORT TransamVariablesData * TransamVariables
FullTransactionId ReadNextFullTransactionId(void)
void AdvanceNextFullTransactionIdPastXid(TransactionId xid)
static TransactionId ReadNextTransactionId(void)
static TransactionId TransactionIdRetreatedBy(TransactionId xid, uint32 amount)
static FullTransactionId FullTransactionIdNewer(FullTransactionId a, FullTransactionId b)
TransactionId TransactionIdLatest(TransactionId mainxid, int nxids, const TransactionId *xids)
static FullTransactionId FullTransactionIdFromAllowableAt(FullTransactionId nextFullXid, TransactionId xid)
static void FullTransactionIdRetreat(FullTransactionId *dest)
#define EpochFromFullTransactionId(x)
static bool TransactionIdPrecedesOrEquals(TransactionId id1, TransactionId id2)
bool TransactionStartedDuringRecovery(void)
static FullTransactionId FullTransactionIdFromU64(uint64 value)
void SetTransactionIdLimit(TransactionId oldest_datfrozenxid, Oid oldest_datoid)
static bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2)
#define AssertTransactionIdInAllowableRange(xid)
bool TransactionIdDidCommit(TransactionId transactionId)
void TransactionIdCommitTree(TransactionId xid, int nxids, TransactionId *xids)
static TransactionId NormalTransactionIdOlder(TransactionId a, TransactionId b)
Size VarsupShmemSize(void)
FullTransactionId GetNewTransactionId(bool isSubXact)
#define NormalTransactionIdPrecedes(id1, id2)
void StopGeneratingPinnedObjectIds(void)
void TransactionIdAbortTree(TransactionId xid, int nxids, TransactionId *xids)
bool ForceTransactionIdLimitUpdate(void)
#define FullTransactionIdFollows(a, b)
#define XidFromFullTransactionId(x)
bool TransactionIdDidAbort(TransactionId transactionId)
XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid)
void AdvanceOldestClogXid(TransactionId oldest_datfrozenxid)
#define FirstNormalTransactionId
static void FullTransactionIdAdvance(FullTransactionId *dest)
struct TransamVariablesData TransamVariablesData
#define TransactionIdIsValid(xid)
static FullTransactionId FullTransactionIdFromEpochAndXid(uint32 epoch, TransactionId xid)
struct FullTransactionId FullTransactionId
#define TransactionIdIsNormal(xid)
#define FirstNormalFullTransactionId
#define FullTransactionIdPrecedes(a, b)
#define FullTransactionIdIsValid(x)
static TransactionId TransactionIdOlder(TransactionId a, TransactionId b)
void VarsupShmemInit(void)
static bool TransactionIdPrecedes(TransactionId id1, TransactionId id2)
static const unsigned __int64 epoch