892 snapshot->
xmax = xmax;
1202 Assert(dead_after != NULL);
1641 if (cmin >= snapshot->
curcid)
1727 if (cmax >= snapshot->
curcid)
bool BufferIsPermanent(Buffer buffer)
XLogRecPtr BufferGetLSNAtomic(Buffer buffer)
void MarkBufferDirtyHint(Buffer buffer, bool buffer_std)
#define Assert(condition)
CommandId HeapTupleHeaderGetCmin(HeapTupleHeader tup)
CommandId HeapTupleHeaderGetCmax(HeapTupleHeader tup)
static void PGresult * res
TransactionId HeapTupleGetUpdateXid(HeapTupleHeader tuple)
@ HEAPTUPLE_RECENTLY_DEAD
@ HEAPTUPLE_INSERT_IN_PROGRESS
@ HEAPTUPLE_DELETE_IN_PROGRESS
static void SetHintBits(HeapTupleHeader tuple, Buffer buffer, uint16 infomask, TransactionId xid)
void HeapTupleSetHintBits(HeapTupleHeader tuple, Buffer buffer, uint16 infomask, TransactionId xid)
bool HeapTupleSatisfiesVisibility(HeapTuple htup, Snapshot snapshot, Buffer buffer)
HTSV_Result HeapTupleSatisfiesVacuumHorizon(HeapTuple htup, Buffer buffer, TransactionId *dead_after)
static bool HeapTupleSatisfiesAny(HeapTuple htup, Snapshot snapshot, Buffer buffer)
static bool HeapTupleSatisfiesNonVacuumable(HeapTuple htup, Snapshot snapshot, Buffer buffer)
static bool HeapTupleSatisfiesToast(HeapTuple htup, Snapshot snapshot, Buffer buffer)
bool HeapTupleIsSurelyDead(HeapTuple htup, GlobalVisState *vistest)
static bool HeapTupleSatisfiesDirty(HeapTuple htup, Snapshot snapshot, Buffer buffer)
HTSV_Result HeapTupleSatisfiesVacuum(HeapTuple htup, TransactionId OldestXmin, Buffer buffer)
static bool HeapTupleSatisfiesMVCC(HeapTuple htup, Snapshot snapshot, Buffer buffer)
static bool TransactionIdInArray(TransactionId xid, TransactionId *xip, Size num)
bool HeapTupleHeaderIsOnlyLocked(HeapTupleHeader tuple)
TM_Result HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, Buffer buffer)
static bool HeapTupleSatisfiesSelf(HeapTuple htup, Snapshot snapshot, Buffer buffer)
static bool HeapTupleSatisfiesHistoricMVCC(HeapTuple htup, Snapshot snapshot, Buffer buffer)
#define HEAP_XMAX_IS_LOCKED_ONLY(infomask)
#define HEAP_XMIN_COMMITTED
#define HeapTupleHeaderGetXvac(tup)
#define HEAP_XMAX_LOCK_ONLY
#define HeapTupleHeaderGetXmin(tup)
#define HEAP_XMAX_IS_MULTI
#define HEAP_XMAX_COMMITTED
#define HeapTupleHeaderGetSpeculativeToken(tup)
#define HEAP_XMIN_INVALID
#define HeapTupleHeaderGetRawXmin(tup)
#define HeapTupleHeaderXminFrozen(tup)
#define HEAP_XMAX_INVALID
#define HeapTupleHeaderXminCommitted(tup)
#define HeapTupleHeaderGetRawXmax(tup)
#define HeapTupleHeaderGetUpdateXid(tup)
#define HeapTupleHeaderGetRawCommandId(tup)
#define HEAP_LOCKED_UPGRADED(infomask)
#define HeapTupleHeaderIsSpeculative(tup)
#define HeapTupleHeaderXminInvalid(tup)
bool ItemPointerEquals(ItemPointer pointer1, ItemPointer pointer2)
static bool ItemPointerIsValid(const ItemPointerData *pointer)
bool MultiXactIdIsRunning(MultiXactId multi, bool isLockOnly)
bool GlobalVisTestIsRemovableXid(GlobalVisState *state, TransactionId xid)
bool TransactionIdIsInProgress(TransactionId xid)
bool ResolveCminCmaxDuringDecoding(HTAB *tuplecid_data, Snapshot snapshot, HeapTuple htup, Buffer buffer, CommandId *cmin, CommandId *cmax)
bool XidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
HTAB * HistoricSnapshotGetTupleCids(void)
@ SNAPSHOT_NON_VACUUMABLE
struct GlobalVisState * vistest
SnapshotType snapshot_type
bool TransactionIdDidCommit(TransactionId transactionId)
bool TransactionIdPrecedes(TransactionId id1, TransactionId id2)
XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid)
bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2)
#define InvalidTransactionId
#define TransactionIdIsValid(xid)
bool TransactionIdIsCurrentTransactionId(TransactionId xid)
int xidComparator(const void *arg1, const void *arg2)
bool XLogNeedsFlush(XLogRecPtr record)