34 #define HEAP_INSERT_SKIP_FSM TABLE_INSERT_SKIP_FSM 35 #define HEAP_INSERT_FROZEN TABLE_INSERT_FROZEN 36 #define HEAP_INSERT_NO_LOGICAL TABLE_INSERT_NO_LOGICAL 37 #define HEAP_INSERT_SPECULATIVE 0x0010 42 #define MaxLockTupleMode LockTupleExclusive 109 #define HeapScanIsValid(scan) PointerIsValid(scan) 119 bool allow_strat,
bool allow_sync,
bool allow_pagemode);
129 bool *all_dead,
bool first_call);
138 int options, BulkInsertState bistate);
141 BulkInsertState bistate);
bool heap_fetch(Relation relation, Snapshot snapshot, HeapTuple tuple, Buffer *userbuf)
static PgChecksumMode mode
bool HeapTupleHeaderIsOnlyLocked(HeapTupleHeader tuple)
TableScanDescData rs_base
void ReleaseBulkInsertStatePin(BulkInsertState bistate)
#define MaxHeapTuplesPerPage
bool heap_tuple_needs_eventual_freeze(HeapTupleHeader tuple)
void heapgetpage(TableScanDesc scan, BlockNumber page)
void HeapTupleSetHintBits(HeapTupleHeader tuple, Buffer buffer, uint16 infomask, TransactionId xid)
void parallel_vacuum_main(dsm_segment *seg, shm_toc *toc)
struct HeapScanDescData * HeapScanDesc
void heap_get_root_tuples(Page page, OffsetNumber *root_offsets)
void heap_multi_insert(Relation relation, struct TupleTableSlot **slots, int ntuples, CommandId cid, int options, BulkInsertState bistate)
TM_Result heap_lock_tuple(Relation relation, HeapTuple tuple, CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy, bool follow_update, Buffer *buffer, struct TM_FailureData *tmfd)
void simple_heap_delete(Relation relation, ItemPointer tid)
bool HeapTupleSatisfiesVisibility(HeapTuple stup, Snapshot snapshot, Buffer buffer)
bool heap_freeze_tuple(HeapTupleHeader tuple, TransactionId relfrozenxid, TransactionId relminmxid, TransactionId cutoff_xid, TransactionId cutoff_multi)
BulkInsertState GetBulkInsertState(void)
void heap_insert(Relation relation, HeapTuple tup, CommandId cid, int options, BulkInsertState bistate)
bool XidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
void heap_endscan(TableScanDesc scan)
struct HeapScanDescData HeapScanDescData
int heap_page_prune(Relation relation, Buffer buffer, struct GlobalVisState *vistest, TransactionId limited_oldest_xmin, TimestampTz limited_oldest_ts, bool report_stats, TransactionId *latestRemovedXid, OffsetNumber *off_loc)
static TransactionId OldestXmin
void simple_heap_insert(Relation relation, HeapTuple tup)
BlockNumber rs_startblock
TM_Result heap_update(Relation relation, ItemPointer otid, HeapTuple newtup, CommandId cid, Snapshot crosscheck, bool wait, struct TM_FailureData *tmfd, LockTupleMode *lockmode)
void heap_finish_speculative(Relation relation, ItemPointer tid)
static HTAB * tuplecid_data
bool heap_hot_search_buffer(ItemPointer tid, Relation relation, Buffer buffer, Snapshot snapshot, HeapTuple heapTuple, bool *all_dead, bool first_call)
TransactionId heap_index_delete_tuples(Relation rel, TM_IndexDeleteOp *delstate)
BufferAccessStrategy rs_strategy
struct IndexFetchHeapData IndexFetchHeapData
TransactionId MultiXactId
OffsetNumber rs_vistuples[MaxHeapTuplesPerPage]
void heap_setscanlimits(TableScanDesc scan, BlockNumber startBlk, BlockNumber numBlks)
TM_Result heap_delete(Relation relation, ItemPointer tid, CommandId cid, Snapshot crosscheck, bool wait, struct TM_FailureData *tmfd, bool changingPart)
struct BulkInsertStateData * BulkInsertState
bool heap_tuple_needs_freeze(HeapTupleHeader tuple, TransactionId cutoff_xid, MultiXactId cutoff_multi, Buffer buf)
void FreeBulkInsertState(BulkInsertState)
void heap_get_latest_tid(TableScanDesc scan, ItemPointer tid)
void heap_abort_speculative(Relation relation, ItemPointer tid)
HeapTuple heap_getnext(TableScanDesc scan, ScanDirection direction)
bool heap_getnextslot(TableScanDesc sscan, ScanDirection direction, struct TupleTableSlot *slot)
void heap_page_prune_execute(Buffer buffer, OffsetNumber *redirected, int nredirected, OffsetNumber *nowdead, int ndead, OffsetNumber *nowunused, int nunused)
HTSV_Result HeapTupleSatisfiesVacuum(HeapTuple stup, TransactionId OldestXmin, Buffer buffer)
void heap_inplace_update(Relation relation, HeapTuple tuple)
void heap_vacuum_rel(Relation onerel, struct VacuumParams *params, BufferAccessStrategy bstrategy)
HTSV_Result HeapTupleSatisfiesVacuumHorizon(HeapTuple stup, Buffer buffer, TransactionId *dead_after)
void simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
bool HeapTupleIsSurelyDead(HeapTuple htup, struct GlobalVisState *vistest)
void HeapCheckForSerializableConflictOut(bool valid, Relation relation, HeapTuple tuple, Buffer buffer, Snapshot snapshot)
TableScanDesc heap_beginscan(Relation relation, Snapshot snapshot, int nkeys, ScanKey key, ParallelTableScanDesc parallel_scan, uint32 flags)
void heap_rescan(TableScanDesc scan, ScanKey key, bool set_params, bool allow_strat, bool allow_sync, bool allow_pagemode)
IndexFetchTableData xs_base
bool ResolveCminCmaxDuringDecoding(struct HTAB *tuplecid_data, Snapshot snapshot, HeapTuple htup, Buffer buffer, CommandId *cmin, CommandId *cmax)
TM_Result HeapTupleSatisfiesUpdate(HeapTuple stup, CommandId curcid, Buffer buffer)
void heap_page_prune_opt(Relation relation, Buffer buffer)