PostgreSQL Source Code  git master
TableAmRoutine Struct Reference

#include <tableam.h>

Data Fields

NodeTag type
 
const TupleTableSlotOps *(* slot_callbacks )(Relation rel)
 
TableScanDesc(* scan_begin )(Relation rel, Snapshot snapshot, int nkeys, struct ScanKeyData *key, ParallelTableScanDesc pscan, uint32 flags)
 
void(* scan_end )(TableScanDesc scan)
 
void(* scan_rescan )(TableScanDesc scan, struct ScanKeyData *key, bool set_params, bool allow_strat, bool allow_sync, bool allow_pagemode)
 
bool(* scan_getnextslot )(TableScanDesc scan, ScanDirection direction, TupleTableSlot *slot)
 
Size(* parallelscan_estimate )(Relation rel)
 
Size(* parallelscan_initialize )(Relation rel, ParallelTableScanDesc pscan)
 
void(* parallelscan_reinitialize )(Relation rel, ParallelTableScanDesc pscan)
 
struct IndexFetchTableData *(* index_fetch_begin )(Relation rel)
 
void(* index_fetch_reset )(struct IndexFetchTableData *data)
 
void(* index_fetch_end )(struct IndexFetchTableData *data)
 
bool(* index_fetch_tuple )(struct IndexFetchTableData *scan, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, bool *call_again, bool *all_dead)
 
bool(* tuple_fetch_row_version )(Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot)
 
bool(* tuple_tid_valid )(TableScanDesc scan, ItemPointer tid)
 
void(* tuple_get_latest_tid )(TableScanDesc scan, ItemPointer tid)
 
bool(* tuple_satisfies_snapshot )(Relation rel, TupleTableSlot *slot, Snapshot snapshot)
 
TransactionId(* compute_xid_horizon_for_tuples )(Relation rel, ItemPointerData *items, int nitems)
 
void(* tuple_insert )(Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate)
 
void(* tuple_insert_speculative )(Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate, uint32 specToken)
 
void(* tuple_complete_speculative )(Relation rel, TupleTableSlot *slot, uint32 specToken, bool succeeded)
 
void(* multi_insert )(Relation rel, TupleTableSlot **slots, int nslots, CommandId cid, int options, struct BulkInsertStateData *bistate)
 
TM_Result(* tuple_delete )(Relation rel, ItemPointer tid, CommandId cid, Snapshot snapshot, Snapshot crosscheck, bool wait, TM_FailureData *tmfd, bool changingPart)
 
TM_Result(* tuple_update )(Relation rel, ItemPointer otid, TupleTableSlot *slot, CommandId cid, Snapshot snapshot, Snapshot crosscheck, bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode, bool *update_indexes)
 
TM_Result(* tuple_lock )(Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy, uint8 flags, TM_FailureData *tmfd)
 
void(* finish_bulk_insert )(Relation rel, int options)
 
void(* relation_set_new_filenode )(Relation rel, const RelFileNode *newrnode, char persistence, TransactionId *freezeXid, MultiXactId *minmulti)
 
void(* relation_nontransactional_truncate )(Relation rel)
 
void(* relation_copy_data )(Relation rel, const RelFileNode *newrnode)
 
void(* relation_copy_for_cluster )(Relation NewTable, Relation OldTable, Relation OldIndex, bool use_sort, TransactionId OldestXmin, TransactionId *xid_cutoff, MultiXactId *multi_cutoff, double *num_tuples, double *tups_vacuumed, double *tups_recently_dead)
 
void(* relation_vacuum )(Relation onerel, struct VacuumParams *params, BufferAccessStrategy bstrategy)
 
bool(* scan_analyze_next_block )(TableScanDesc scan, BlockNumber blockno, BufferAccessStrategy bstrategy)
 
bool(* scan_analyze_next_tuple )(TableScanDesc scan, TransactionId OldestXmin, double *liverows, double *deadrows, TupleTableSlot *slot)
 
double(* index_build_range_scan )(Relation table_rel, Relation index_rel, struct IndexInfo *index_info, bool allow_sync, bool anyvisible, bool progress, BlockNumber start_blockno, BlockNumber numblocks, IndexBuildCallback callback, void *callback_state, TableScanDesc scan)
 
void(* index_validate_scan )(Relation table_rel, Relation index_rel, struct IndexInfo *index_info, Snapshot snapshot, struct ValidateIndexState *state)
 
uint64(* relation_size )(Relation rel, ForkNumber forkNumber)
 
bool(* relation_needs_toast_table )(Relation rel)
 
void(* relation_estimate_size )(Relation rel, int32 *attr_widths, BlockNumber *pages, double *tuples, double *allvisfrac)
 
bool(* scan_bitmap_next_block )(TableScanDesc scan, struct TBMIterateResult *tbmres)
 
bool(* scan_bitmap_next_tuple )(TableScanDesc scan, struct TBMIterateResult *tbmres, TupleTableSlot *slot)
 
bool(* scan_sample_next_block )(TableScanDesc scan, struct SampleScanState *scanstate)
 
bool(* scan_sample_next_tuple )(TableScanDesc scan, struct SampleScanState *scanstate, TupleTableSlot *slot)
 

Detailed Description

Definition at line 161 of file tableam.h.

Field Documentation

◆ compute_xid_horizon_for_tuples

TransactionId(* TableAmRoutine::compute_xid_horizon_for_tuples) (Relation rel, ItemPointerData *items, int nitems)

Definition at line 344 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_compute_xid_horizon_for_tuples().

◆ finish_bulk_insert

void(* TableAmRoutine::finish_bulk_insert) (Relation rel, int options)

Definition at line 423 of file tableam.h.

Referenced by table_finish_bulk_insert().

◆ index_build_range_scan

double(* TableAmRoutine::index_build_range_scan) (Relation table_rel, Relation index_rel, struct IndexInfo *index_info, bool allow_sync, bool anyvisible, bool progress, BlockNumber start_blockno, BlockNumber numblocks, IndexBuildCallback callback, void *callback_state, TableScanDesc scan)

◆ index_fetch_begin

struct IndexFetchTableData*(* TableAmRoutine::index_fetch_begin) (Relation rel)

Definition at line 267 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_fetch_begin().

◆ index_fetch_end

void(* TableAmRoutine::index_fetch_end) (struct IndexFetchTableData *data)

Definition at line 278 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_fetch_end().

◆ index_fetch_reset

void(* TableAmRoutine::index_fetch_reset) (struct IndexFetchTableData *data)

Definition at line 273 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_fetch_reset().

◆ index_fetch_tuple

bool(* TableAmRoutine::index_fetch_tuple) (struct IndexFetchTableData *scan, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, bool *call_again, bool *all_dead)

Definition at line 300 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_fetch_tuple().

◆ index_validate_scan

void(* TableAmRoutine::index_validate_scan) (Relation table_rel, Relation index_rel, struct IndexInfo *index_info, Snapshot snapshot, struct ValidateIndexState *state)

Definition at line 552 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_validate_scan().

◆ multi_insert

void(* TableAmRoutine::multi_insert) (Relation rel, TupleTableSlot **slots, int nslots, CommandId cid, int options, struct BulkInsertStateData *bistate)

Definition at line 374 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_multi_insert().

◆ parallelscan_estimate

Size(* TableAmRoutine::parallelscan_estimate) (Relation rel)

Definition at line 236 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_estimate().

◆ parallelscan_initialize

Size(* TableAmRoutine::parallelscan_initialize) (Relation rel, ParallelTableScanDesc pscan)

Definition at line 243 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_initialize().

◆ parallelscan_reinitialize

void(* TableAmRoutine::parallelscan_reinitialize) (Relation rel, ParallelTableScanDesc pscan)

Definition at line 250 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_reinitialize().

◆ relation_copy_data

void(* TableAmRoutine::relation_copy_data) (Relation rel, const RelFileNode *newrnode)

Definition at line 469 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_copy_data().

◆ relation_copy_for_cluster

void(* TableAmRoutine::relation_copy_for_cluster) (Relation NewTable, Relation OldTable, Relation OldIndex, bool use_sort, TransactionId OldestXmin, TransactionId *xid_cutoff, MultiXactId *multi_cutoff, double *num_tuples, double *tups_vacuumed, double *tups_recently_dead)

Definition at line 473 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_copy_for_cluster().

◆ relation_estimate_size

void(* TableAmRoutine::relation_estimate_size) (Relation rel, int32 *attr_widths, BlockNumber *pages, double *tuples, double *allvisfrac)

Definition at line 600 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_estimate_size().

◆ relation_needs_toast_table

bool(* TableAmRoutine::relation_needs_toast_table) (Relation rel)

Definition at line 582 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_needs_toast_table().

◆ relation_nontransactional_truncate

void(* TableAmRoutine::relation_nontransactional_truncate) (Relation rel)

Definition at line 461 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_nontransactional_truncate().

◆ relation_set_new_filenode

void(* TableAmRoutine::relation_set_new_filenode) (Relation rel, const RelFileNode *newrnode, char persistence, TransactionId *freezeXid, MultiXactId *minmulti)

Definition at line 447 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_set_new_filenode().

◆ relation_size

uint64(* TableAmRoutine::relation_size) (Relation rel, ForkNumber forkNumber)

Definition at line 572 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_size().

◆ relation_vacuum

void(* TableAmRoutine::relation_vacuum) (Relation onerel, struct VacuumParams *params, BufferAccessStrategy bstrategy)

Definition at line 499 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_vacuum().

◆ scan_analyze_next_block

bool(* TableAmRoutine::scan_analyze_next_block) (TableScanDesc scan, BlockNumber blockno, BufferAccessStrategy bstrategy)

Definition at line 520 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_analyze_next_block().

◆ scan_analyze_next_tuple

bool(* TableAmRoutine::scan_analyze_next_tuple) (TableScanDesc scan, TransactionId OldestXmin, double *liverows, double *deadrows, TupleTableSlot *slot)

Definition at line 532 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_analyze_next_tuple().

◆ scan_begin

◆ scan_bitmap_next_block

bool(* TableAmRoutine::scan_bitmap_next_block) (TableScanDesc scan, struct TBMIterateResult *tbmres)

Definition at line 641 of file tableam.h.

Referenced by get_relation_info(), GetTableAmRoutine(), and table_scan_bitmap_next_block().

◆ scan_bitmap_next_tuple

bool(* TableAmRoutine::scan_bitmap_next_tuple) (TableScanDesc scan, struct TBMIterateResult *tbmres, TupleTableSlot *slot)

Definition at line 655 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_bitmap_next_tuple().

◆ scan_end

void(* TableAmRoutine::scan_end) (TableScanDesc scan)

Definition at line 209 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_endscan().

◆ scan_getnextslot

bool(* TableAmRoutine::scan_getnextslot) (TableScanDesc scan, ScanDirection direction, TupleTableSlot *slot)

Definition at line 222 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_getnextslot().

◆ scan_rescan

void(* TableAmRoutine::scan_rescan) (TableScanDesc scan, struct ScanKeyData *key, bool set_params, bool allow_strat, bool allow_sync, bool allow_pagemode)

Definition at line 215 of file tableam.h.

Referenced by GetTableAmRoutine(), table_rescan(), and table_rescan_set_params().

◆ scan_sample_next_block

bool(* TableAmRoutine::scan_sample_next_block) (TableScanDesc scan, struct SampleScanState *scanstate)

Definition at line 684 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_sample_next_block().

◆ scan_sample_next_tuple

bool(* TableAmRoutine::scan_sample_next_tuple) (TableScanDesc scan, struct SampleScanState *scanstate, TupleTableSlot *slot)

Definition at line 700 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_sample_next_tuple().

◆ slot_callbacks

const TupleTableSlotOps*(* TableAmRoutine::slot_callbacks) (Relation rel)

Definition at line 175 of file tableam.h.

Referenced by table_slot_callbacks().

◆ tuple_complete_speculative

void(* TableAmRoutine::tuple_complete_speculative) (Relation rel, TupleTableSlot *slot, uint32 specToken, bool succeeded)

Definition at line 368 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_complete_speculative().

◆ tuple_delete

TM_Result(* TableAmRoutine::tuple_delete) (Relation rel, ItemPointer tid, CommandId cid, Snapshot snapshot, Snapshot crosscheck, bool wait, TM_FailureData *tmfd, bool changingPart)

Definition at line 378 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_delete().

◆ tuple_fetch_row_version

bool(* TableAmRoutine::tuple_fetch_row_version) (Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot)

Definition at line 317 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_fetch_row_version().

◆ tuple_get_latest_tid

void(* TableAmRoutine::tuple_get_latest_tid) (TableScanDesc scan, ItemPointer tid)

Definition at line 332 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_get_latest_tid().

◆ tuple_insert

void(* TableAmRoutine::tuple_insert) (Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate)

Definition at line 355 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_insert().

◆ tuple_insert_speculative

void(* TableAmRoutine::tuple_insert_speculative) (Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate, uint32 specToken)

Definition at line 360 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_insert_speculative().

◆ tuple_lock

TM_Result(* TableAmRoutine::tuple_lock) (Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy, uint8 flags, TM_FailureData *tmfd)

Definition at line 400 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_lock().

◆ tuple_satisfies_snapshot

bool(* TableAmRoutine::tuple_satisfies_snapshot) (Relation rel, TupleTableSlot *slot, Snapshot snapshot)

Definition at line 339 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_satisfies_snapshot().

◆ tuple_tid_valid

bool(* TableAmRoutine::tuple_tid_valid) (TableScanDesc scan, ItemPointer tid)

Definition at line 325 of file tableam.h.

Referenced by GetTableAmRoutine(), table_tuple_get_latest_tid(), and table_tuple_tid_valid().

◆ tuple_update

TM_Result(* TableAmRoutine::tuple_update) (Relation rel, ItemPointer otid, TupleTableSlot *slot, CommandId cid, Snapshot snapshot, Snapshot crosscheck, bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode, bool *update_indexes)

Definition at line 388 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_update().

◆ type

NodeTag TableAmRoutine::type

Definition at line 164 of file tableam.h.

Referenced by SampleHeapTupleVisible().


The documentation for this struct was generated from the following file: