172 elog(
ERROR,
"encountered tuple with HEAP_MOVED considered current");
175 elog(
ERROR,
"encountered tuple with HEAP_MOVED considered in-progress");
800 snapshot->
xmax = xmax;
1486 if (cmin >= snapshot->
curcid)
1572 if (cmax >= snapshot->
curcid)
1626 for (
int i = 0;
i < ntups;
i++)
bool BufferIsLockedByMeInMode(Buffer buffer, BufferLockMode mode)
bool BufferIsPermanent(Buffer buffer)
XLogRecPtr BufferGetLSNAtomic(Buffer buffer)
void MarkBufferDirtyHint(Buffer buffer, bool buffer_std)
#define Assert(condition)
CommandId HeapTupleHeaderGetCmin(const HeapTupleHeaderData *tup)
CommandId HeapTupleHeaderGetCmax(const HeapTupleHeaderData *tup)
TransactionId HeapTupleGetUpdateXid(const HeapTupleHeaderData *tup)
@ 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 HeapTupleCleanMoved(HeapTupleHeader tuple, 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)
int HeapTupleSatisfiesMVCCBatch(Snapshot snapshot, Buffer buffer, int ntups, BatchMVCCState *batchmvcc, OffsetNumber *vistuples_dense)
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)
static bool HeapTupleHeaderXminFrozen(const HeapTupleHeaderData *tup)
#define HEAP_XMIN_COMMITTED
static bool HEAP_XMAX_IS_LOCKED_ONLY(uint16 infomask)
static bool HeapTupleHeaderXminInvalid(const HeapTupleHeaderData *tup)
static TransactionId HeapTupleHeaderGetXvac(const HeapTupleHeaderData *tup)
#define HEAP_XMAX_LOCK_ONLY
static CommandId HeapTupleHeaderGetRawCommandId(const HeapTupleHeaderData *tup)
static TransactionId HeapTupleHeaderGetRawXmax(const HeapTupleHeaderData *tup)
#define HEAP_XMAX_IS_MULTI
#define HEAP_XMAX_COMMITTED
static TransactionId HeapTupleHeaderGetXmin(const HeapTupleHeaderData *tup)
#define HEAP_XMIN_INVALID
static BlockNumber HeapTupleHeaderGetSpeculativeToken(const HeapTupleHeaderData *tup)
#define HEAP_XMAX_INVALID
static TransactionId HeapTupleHeaderGetRawXmin(const HeapTupleHeaderData *tup)
static bool HeapTupleHeaderIsSpeculative(const HeapTupleHeaderData *tup)
static TransactionId HeapTupleHeaderGetUpdateXid(const HeapTupleHeaderData *tup)
static bool HEAP_LOCKED_UPGRADED(uint16 infomask)
static bool HeapTupleHeaderXminCommitted(const HeapTupleHeaderData *tup)
bool ItemPointerEquals(const ItemPointerData *pointer1, const ItemPointerData *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)
#define IsMVCCSnapshot(snapshot)
@ SNAPSHOT_NON_VACUUMABLE
struct GlobalVisState * vistest
SnapshotType snapshot_type
bool TransactionIdDidCommit(TransactionId transactionId)
XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid)
#define InvalidTransactionId
static bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2)
#define TransactionIdIsValid(xid)
static bool TransactionIdPrecedes(TransactionId id1, TransactionId id2)
bool TransactionIdIsCurrentTransactionId(TransactionId xid)
int xidComparator(const void *arg1, const void *arg2)
bool XLogNeedsFlush(XLogRecPtr record)