[][src]Struct pgx_pg_sys::TableAmRoutine

#[repr(C)]pub struct TableAmRoutine {
    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: ScanDirection, 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 compute_xid_horizon_for_tuples: Option<unsafe extern "C" fn(rel: Relation, items: *mut ItemPointerData, nitems: c_int) -> 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) -> TM_Result>,
    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 LockTupleMode, update_indexes: *mut bool) -> TM_Result>,
    pub tuple_lock: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, cid: CommandId, mode: LockTupleMode, wait_policy: LockWaitPolicy, flags: uint8, tmfd: *mut TM_FailureData) -> TM_Result>,
    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(NewTable: Relation, OldTable: 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(onerel: 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: ForkNumber) -> 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_: NodeTagslot_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: ScanDirection, 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>compute_xid_horizon_for_tuples: Option<unsafe extern "C" fn(rel: Relation, items: *mut ItemPointerData, nitems: c_int) -> 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) -> TM_Result>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 LockTupleMode, update_indexes: *mut bool) -> TM_Result>tuple_lock: Option<unsafe extern "C" fn(rel: Relation, tid: ItemPointer, snapshot: Snapshot, slot: *mut TupleTableSlot, cid: CommandId, mode: LockTupleMode, wait_policy: LockWaitPolicy, flags: uint8, tmfd: *mut TM_FailureData) -> TM_Result>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(NewTable: Relation, OldTable: 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(onerel: 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: ForkNumber) -> 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

impl Clone for TableAmRoutine[src]

impl Copy for TableAmRoutine[src]

impl Debug for TableAmRoutine[src]

impl Default for TableAmRoutine[src]

impl Display for TableAmRoutine[src]

impl PgNode for TableAmRoutine[src]

type NodeType = TableAmRoutine

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.