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)
 
void(* scan_set_tidrange )(TableScanDesc scan, ItemPointer mintid, ItemPointer maxtid)
 
bool(* scan_getnextslot_tidrange )(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(* index_delete_tuples )(Relation rel, TM_IndexDeleteOp *delstate)
 
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, TU_UpdateIndexes *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_filelocator )(Relation rel, const RelFileLocator *newrlocator, char persistence, TransactionId *freezeXid, MultiXactId *minmulti)
 
void(* relation_nontransactional_truncate )(Relation rel)
 
void(* relation_copy_data )(Relation rel, const RelFileLocator *newrlocator)
 
void(* relation_copy_for_cluster )(Relation OldTable, Relation NewTable, 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 rel, struct VacuumParams *params, BufferAccessStrategy bstrategy)
 
bool(* scan_analyze_next_block )(TableScanDesc scan, ReadStream *stream)
 
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)
 
Oid(* relation_toast_am )(Relation rel)
 
void(* relation_fetch_toast_slice )(Relation toastrel, Oid valueid, int32 attrsize, int32 sliceoffset, int32 slicelength, struct varlena *result)
 
void(* relation_estimate_size )(Relation rel, int32 *attr_widths, BlockNumber *pages, double *tuples, double *allvisfrac)
 
bool(* scan_bitmap_next_block )(TableScanDesc scan, BlockNumber *blockno, bool *recheck, uint64 *lossy_pages, uint64 *exact_pages)
 
bool(* scan_bitmap_next_tuple )(TableScanDesc scan, 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 289 of file tableam.h.

Field Documentation

◆ finish_bulk_insert

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

Definition at line 577 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_delete_tuples

TransactionId(* TableAmRoutine::index_delete_tuples) (Relation rel, TM_IndexDeleteOp *delstate)

Definition at line 500 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_index_delete_tuples().

◆ index_fetch_begin

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

Definition at line 406 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 434 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 429 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 456 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 705 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 529 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_multi_insert().

◆ parallelscan_estimate

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

Definition at line 392 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_estimate().

◆ parallelscan_initialize

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

Definition at line 399 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_initialize().

◆ parallelscan_reinitialize

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

Definition at line 406 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_parallelscan_reinitialize().

◆ relation_copy_data

void(* TableAmRoutine::relation_copy_data) (Relation rel, const RelFileLocator *newrlocator)

Definition at line 623 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_copy_data().

◆ relation_copy_for_cluster

void(* TableAmRoutine::relation_copy_for_cluster) (Relation OldTable, Relation NewTable, 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 627 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 771 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_estimate_size().

◆ relation_fetch_toast_slice

void(* TableAmRoutine::relation_fetch_toast_slice) (Relation toastrel, Oid valueid, int32 attrsize, int32 sliceoffset, int32 slicelength, struct varlena *result)

Definition at line 749 of file tableam.h.

Referenced by table_relation_fetch_toast_slice().

◆ relation_needs_toast_table

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

Definition at line 735 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 615 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_nontransactional_truncate().

◆ relation_set_new_filelocator

void(* TableAmRoutine::relation_set_new_filelocator) (Relation rel, const RelFileLocator *newrlocator, char persistence, TransactionId *freezeXid, MultiXactId *minmulti)

Definition at line 601 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_set_new_filelocator().

◆ relation_size

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

Definition at line 725 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_size().

◆ relation_toast_am

Oid(* TableAmRoutine::relation_toast_am) (Relation rel)

Definition at line 742 of file tableam.h.

Referenced by table_relation_toast_am().

◆ relation_vacuum

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

Definition at line 653 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_relation_vacuum().

◆ scan_analyze_next_block

bool(* TableAmRoutine::scan_analyze_next_block) (TableScanDesc scan, ReadStream *stream)

Definition at line 674 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 685 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, BlockNumber *blockno, bool *recheck, uint64 *lossy_pages, uint64 *exact_pages)

Definition at line 819 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, TupleTableSlot *slot)

Definition at line 832 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_bitmap_next_tuple().

◆ scan_end

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

Definition at line 337 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 350 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_getnextslot().

◆ scan_getnextslot_tidrange

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

Definition at line 379 of file tableam.h.

Referenced by get_relation_info(), and table_scan_getnextslot_tidrange().

◆ scan_rescan

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

◆ scan_sample_next_block

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

Definition at line 860 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 876 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_scan_sample_next_tuple().

◆ scan_set_tidrange

void(* TableAmRoutine::scan_set_tidrange) (TableScanDesc scan, ItemPointer mintid, ItemPointer maxtid)

Definition at line 371 of file tableam.h.

Referenced by get_relation_info(), table_beginscan_tidrange(), and table_rescan_tidrange().

◆ slot_callbacks

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

Definition at line 303 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 523 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 533 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 473 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 488 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 510 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 515 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 555 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 495 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 481 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, TU_UpdateIndexes *update_indexes)

Definition at line 543 of file tableam.h.

Referenced by GetTableAmRoutine(), and table_tuple_update().

◆ type

NodeTag TableAmRoutine::type

Definition at line 292 of file tableam.h.


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