#[repr(C)]pub struct TableAmRoutine {Show 46 fields
pub type_: NodeTag,
pub slot_callbacks: Option<unsafe extern "C" fn(rel: Relation) -> *const TupleTableSlotOps>,
pub scan_begin: Option<unsafe extern "C" fn(rel: Relation, snapshot: Snapshot, nkeys: c_int, key: *mut ScanKeyData, pscan: ParallelTableScanDesc, flags: uint32) -> TableScanDesc>,
pub scan_end: Option<unsafe extern "C" fn(scan: TableScanDesc)>,
pub scan_rescan: Option<unsafe extern "C" fn(scan: TableScanDesc, key: *mut ScanKeyData, set_params: bool, allow_strat: bool, allow_sync: bool, allow_pagemode: bool)>,
pub scan_getnextslot: Option<unsafe extern "C" fn(scan: TableScanDesc, direction: Type, slot: *mut TupleTableSlot) -> bool>,
pub scan_set_tidrange: Option<unsafe extern "C" fn(scan: TableScanDesc, mintid: ItemPointer, maxtid: ItemPointer)>,
pub scan_getnextslot_tidrange: Option<unsafe extern "C" fn(scan: TableScanDesc, direction: Type, slot: *mut TupleTableSlot) -> bool>,
pub parallelscan_estimate: Option<unsafe extern "C" fn(rel: Relation) -> Size>,
pub parallelscan_initialize: Option<unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc) -> Size>,
pub parallelscan_reinitialize: Option<unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc)>,
pub index_fetch_begin: Option<unsafe extern "C" fn(rel: Relation) -> *mut IndexFetchTableData>,
pub index_fetch_reset: Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>,
pub index_fetch_end: Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>,
pub index_fetch_tuple: Option<unsafe extern "C" fn(scan: *mut IndexFetchTableData, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, call_again: *mut bool, all_dead: *mut bool) -> bool>,
pub tuple_fetch_row_version: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot) -> bool>,
pub tuple_tid_valid: Option<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer) -> bool>,
pub tuple_get_latest_tid: Option<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer)>,
pub tuple_satisfies_snapshot: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, snapshot: Snapshot) -> bool>,
pub index_delete_tuples: Option<unsafe extern "C" fn(rel: Relation, delstate: *mut TM_IndexDeleteOp) -> TransactionId>,
pub tuple_insert: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData)>,
pub tuple_insert_speculative: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData, specToken: uint32)>,
pub tuple_complete_speculative: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, specToken: uint32, succeeded: bool)>,
pub multi_insert: Option<unsafe extern "C" fn(rel: Relation, slots: *mut *mut TupleTableSlot, nslots: c_int, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData)>,
pub tuple_delete: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, cid: CommandId, snapshot: Snapshot, crosscheck: Snapshot, wait: bool, tmfd: *mut TM_FailureData, changingPart: bool) -> Type>,
pub tuple_update: Option<unsafe extern "C" fn(rel: Relation, otid: ItemPointer, slot: *mut TupleTableSlot, cid: CommandId, snapshot: Snapshot, crosscheck: Snapshot, wait: bool, tmfd: *mut TM_FailureData, lockmode: *mut Type, update_indexes: *mut bool) -> Type>,
pub tuple_lock: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, cid: CommandId, mode: Type, wait_policy: Type, flags: uint8, tmfd: *mut TM_FailureData) -> Type>,
pub finish_bulk_insert: Option<unsafe extern "C" fn(rel: Relation, options: c_int)>,
pub relation_set_new_filenode: Option<unsafe extern "C" fn(rel: Relation, newrnode: *const RelFileNode, persistence: c_char, freezeXid: *mut TransactionId, minmulti: *mut MultiXactId)>,
pub relation_nontransactional_truncate: Option<unsafe extern "C" fn(rel: Relation)>,
pub relation_copy_data: Option<unsafe extern "C" fn(rel: Relation, newrnode: *const RelFileNode)>,
pub relation_copy_for_cluster: Option<unsafe extern "C" fn(OldTable: Relation, NewTable: Relation, OldIndex: Relation, use_sort: bool, OldestXmin: TransactionId, xid_cutoff: *mut TransactionId, multi_cutoff: *mut MultiXactId, num_tuples: *mut f64, tups_vacuumed: *mut f64, tups_recently_dead: *mut f64)>,
pub relation_vacuum: Option<unsafe extern "C" fn(rel: Relation, params: *mut VacuumParams, bstrategy: BufferAccessStrategy)>,
pub scan_analyze_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, blockno: BlockNumber, bstrategy: BufferAccessStrategy) -> bool>,
pub scan_analyze_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, OldestXmin: TransactionId, liverows: *mut f64, deadrows: *mut f64, slot: *mut TupleTableSlot) -> bool>,
pub index_build_range_scan: Option<unsafe extern "C" fn(table_rel: Relation, index_rel: Relation, index_info: *mut IndexInfo, allow_sync: bool, anyvisible: bool, progress: bool, start_blockno: BlockNumber, numblocks: BlockNumber, callback: IndexBuildCallback, callback_state: *mut c_void, scan: TableScanDesc) -> f64>,
pub index_validate_scan: Option<unsafe extern "C" fn(table_rel: Relation, index_rel: Relation, index_info: *mut IndexInfo, snapshot: Snapshot, state: *mut ValidateIndexState)>,
pub relation_size: Option<unsafe extern "C" fn(rel: Relation, forkNumber: Type) -> uint64>,
pub relation_needs_toast_table: Option<unsafe extern "C" fn(rel: Relation) -> bool>,
pub relation_toast_am: Option<unsafe extern "C" fn(rel: Relation) -> Oid>,
pub relation_fetch_toast_slice: Option<unsafe extern "C" fn(toastrel: Relation, valueid: Oid, attrsize: int32, sliceoffset: int32, slicelength: int32, result: *mut varlena)>,
pub relation_estimate_size: Option<unsafe extern "C" fn(rel: Relation, attr_widths: *mut int32, pages: *mut BlockNumber, tuples: *mut f64, allvisfrac: *mut f64)>,
pub scan_bitmap_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, tbmres: *mut TBMIterateResult) -> bool>,
pub scan_bitmap_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, tbmres: *mut TBMIterateResult, slot: *mut TupleTableSlot) -> bool>,
pub scan_sample_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, scanstate: *mut SampleScanState) -> bool>,
pub scan_sample_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, scanstate: *mut SampleScanState, slot: *mut TupleTableSlot) -> bool>,
}
Fields§
§type_: NodeTag
§slot_callbacks: Option<unsafe extern "C" fn(rel: Relation) -> *const TupleTableSlotOps>
§scan_begin: Option<unsafe extern "C" fn(rel: Relation, snapshot: Snapshot, nkeys: c_int, key: *mut ScanKeyData, pscan: ParallelTableScanDesc, flags: uint32) -> TableScanDesc>
§scan_end: Option<unsafe extern "C" fn(scan: TableScanDesc)>
§scan_rescan: Option<unsafe extern "C" fn(scan: TableScanDesc, key: *mut ScanKeyData, set_params: bool, allow_strat: bool, allow_sync: bool, allow_pagemode: bool)>
§scan_getnextslot: Option<unsafe extern "C" fn(scan: TableScanDesc, direction: Type, slot: *mut TupleTableSlot) -> bool>
§scan_set_tidrange: Option<unsafe extern "C" fn(scan: TableScanDesc, mintid: ItemPointer, maxtid: ItemPointer)>
§scan_getnextslot_tidrange: Option<unsafe extern "C" fn(scan: TableScanDesc, direction: Type, slot: *mut TupleTableSlot) -> bool>
§parallelscan_estimate: Option<unsafe extern "C" fn(rel: Relation) -> Size>
§parallelscan_initialize: Option<unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc) -> Size>
§parallelscan_reinitialize: Option<unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc)>
§index_fetch_begin: Option<unsafe extern "C" fn(rel: Relation) -> *mut IndexFetchTableData>
§index_fetch_reset: Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>
§index_fetch_end: Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>
§index_fetch_tuple: Option<unsafe extern "C" fn(scan: *mut IndexFetchTableData, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, call_again: *mut bool, all_dead: *mut bool) -> bool>
§tuple_fetch_row_version: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot) -> bool>
§tuple_tid_valid: Option<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer) -> bool>
§tuple_get_latest_tid: Option<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer)>
§tuple_satisfies_snapshot: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, snapshot: Snapshot) -> bool>
§index_delete_tuples: Option<unsafe extern "C" fn(rel: Relation, delstate: *mut TM_IndexDeleteOp) -> TransactionId>
§tuple_insert: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData)>
§tuple_insert_speculative: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData, specToken: uint32)>
§tuple_complete_speculative: Option<unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, specToken: uint32, succeeded: bool)>
§multi_insert: Option<unsafe extern "C" fn(rel: Relation, slots: *mut *mut TupleTableSlot, nslots: c_int, cid: CommandId, options: c_int, bistate: *mut BulkInsertStateData)>
§tuple_delete: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, cid: CommandId, snapshot: Snapshot, crosscheck: Snapshot, wait: bool, tmfd: *mut TM_FailureData, changingPart: bool) -> Type>
§tuple_update: Option<unsafe extern "C" fn(rel: Relation, otid: ItemPointer, slot: *mut TupleTableSlot, cid: CommandId, snapshot: Snapshot, crosscheck: Snapshot, wait: bool, tmfd: *mut TM_FailureData, lockmode: *mut Type, update_indexes: *mut bool) -> Type>
§tuple_lock: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, cid: CommandId, mode: Type, wait_policy: Type, flags: uint8, tmfd: *mut TM_FailureData) -> Type>
§finish_bulk_insert: Option<unsafe extern "C" fn(rel: Relation, options: c_int)>
§relation_set_new_filenode: Option<unsafe extern "C" fn(rel: Relation, newrnode: *const RelFileNode, persistence: c_char, freezeXid: *mut TransactionId, minmulti: *mut MultiXactId)>
§relation_nontransactional_truncate: Option<unsafe extern "C" fn(rel: Relation)>
§relation_copy_data: Option<unsafe extern "C" fn(rel: Relation, newrnode: *const RelFileNode)>
§relation_copy_for_cluster: Option<unsafe extern "C" fn(OldTable: Relation, NewTable: Relation, OldIndex: Relation, use_sort: bool, OldestXmin: TransactionId, xid_cutoff: *mut TransactionId, multi_cutoff: *mut MultiXactId, num_tuples: *mut f64, tups_vacuumed: *mut f64, tups_recently_dead: *mut f64)>
§relation_vacuum: Option<unsafe extern "C" fn(rel: Relation, params: *mut VacuumParams, bstrategy: BufferAccessStrategy)>
§scan_analyze_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, blockno: BlockNumber, bstrategy: BufferAccessStrategy) -> bool>
§scan_analyze_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, OldestXmin: TransactionId, liverows: *mut f64, deadrows: *mut f64, slot: *mut TupleTableSlot) -> bool>
§index_build_range_scan: Option<unsafe extern "C" fn(table_rel: Relation, index_rel: Relation, index_info: *mut IndexInfo, allow_sync: bool, anyvisible: bool, progress: bool, start_blockno: BlockNumber, numblocks: BlockNumber, callback: IndexBuildCallback, callback_state: *mut c_void, scan: TableScanDesc) -> f64>
§index_validate_scan: Option<unsafe extern "C" fn(table_rel: Relation, index_rel: Relation, index_info: *mut IndexInfo, snapshot: Snapshot, state: *mut ValidateIndexState)>
§relation_size: Option<unsafe extern "C" fn(rel: Relation, forkNumber: Type) -> uint64>
§relation_needs_toast_table: Option<unsafe extern "C" fn(rel: Relation) -> bool>
§relation_toast_am: Option<unsafe extern "C" fn(rel: Relation) -> Oid>
§relation_fetch_toast_slice: Option<unsafe extern "C" fn(toastrel: Relation, valueid: Oid, attrsize: int32, sliceoffset: int32, slicelength: int32, result: *mut varlena)>
§relation_estimate_size: Option<unsafe extern "C" fn(rel: Relation, attr_widths: *mut int32, pages: *mut BlockNumber, tuples: *mut f64, allvisfrac: *mut f64)>
§scan_bitmap_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, tbmres: *mut TBMIterateResult) -> bool>
§scan_bitmap_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, tbmres: *mut TBMIterateResult, slot: *mut TupleTableSlot) -> bool>
§scan_sample_next_block: Option<unsafe extern "C" fn(scan: TableScanDesc, scanstate: *mut SampleScanState) -> bool>
§scan_sample_next_tuple: Option<unsafe extern "C" fn(scan: TableScanDesc, scanstate: *mut SampleScanState, slot: *mut TupleTableSlot) -> bool>
Trait Implementations§
Source§impl Clone for TableAmRoutine
impl Clone for TableAmRoutine
Source§fn clone(&self) -> TableAmRoutine
fn clone(&self) -> TableAmRoutine
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for TableAmRoutine
impl Debug for TableAmRoutine
Source§impl Default for TableAmRoutine
impl Default for TableAmRoutine
Source§impl Display for TableAmRoutine
impl Display for TableAmRoutine
Source§impl PgNode for TableAmRoutine
impl PgNode for TableAmRoutine
Source§fn display_node(&self) -> String
fn display_node(&self) -> String
Format this node Read more
impl Copy for TableAmRoutine
Auto Trait Implementations§
impl Freeze for TableAmRoutine
impl RefUnwindSafe for TableAmRoutine
impl Send for TableAmRoutine
impl Sync for TableAmRoutine
impl Unpin for TableAmRoutine
impl UnwindSafe for TableAmRoutine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more