37 elog(
ERROR,
"table access method handler %u did not return a TableAmRoutine struct",
110 "default_table_access_method");
138 (
errcode(ERRCODE_UNDEFINED_OBJECT),
139 errmsg(
"table access method \"%s\" does not exist",
Oid get_table_am_oid(const char *amname, bool missing_ok)
#define Assert(condition)
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define OidFunctionCall0(functionId)
#define GUC_check_errdetail
#define IsA(nodeptr, _type_)
static rewind_source * source
static Pointer DatumGetPointer(Datum X)
Size(* parallelscan_initialize)(Relation rel, ParallelTableScanDesc pscan)
void(* relation_copy_data)(Relation rel, const RelFileLocator *newrlocator)
bool(* scan_sample_next_tuple)(TableScanDesc scan, struct SampleScanState *scanstate, TupleTableSlot *slot)
void(* index_fetch_reset)(struct IndexFetchTableData *data)
void(* tuple_complete_speculative)(Relation rel, TupleTableSlot *slot, uint32 specToken, bool succeeded)
bool(* scan_bitmap_next_tuple)(TableScanDesc scan, struct TBMIterateResult *tbmres, TupleTableSlot *slot)
void(* parallelscan_reinitialize)(Relation rel, ParallelTableScanDesc pscan)
void(* tuple_get_latest_tid)(TableScanDesc scan, ItemPointer tid)
struct IndexFetchTableData *(* index_fetch_begin)(Relation rel)
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_estimate_size)(Relation rel, int32 *attr_widths, BlockNumber *pages, double *tuples, double *allvisfrac)
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)
TableScanDesc(* scan_begin)(Relation rel, Snapshot snapshot, int nkeys, struct ScanKeyData *key, ParallelTableScanDesc pscan, uint32 flags)
bool(* relation_needs_toast_table)(Relation rel)
bool(* tuple_tid_valid)(TableScanDesc scan, ItemPointer tid)
void(* multi_insert)(Relation rel, TupleTableSlot **slots, int nslots, CommandId cid, int options, struct BulkInsertStateData *bistate)
void(* scan_end)(TableScanDesc scan)
uint64(* relation_size)(Relation rel, ForkNumber forkNumber)
TM_Result(* tuple_lock)(Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy, uint8 flags, TM_FailureData *tmfd)
bool(* scan_sample_next_block)(TableScanDesc scan, struct SampleScanState *scanstate)
void(* relation_nontransactional_truncate)(Relation rel)
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)
void(* tuple_insert)(Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate)
void(* scan_rescan)(TableScanDesc scan, struct ScanKeyData *key, bool set_params, bool allow_strat, bool allow_sync, bool allow_pagemode)
bool(* tuple_fetch_row_version)(Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot)
void(* relation_vacuum)(Relation rel, struct VacuumParams *params, BufferAccessStrategy bstrategy)
bool(* scan_analyze_next_block)(TableScanDesc scan, ReadStream *stream)
Size(* parallelscan_estimate)(Relation rel)
void(* relation_set_new_filelocator)(Relation rel, const RelFileLocator *newrlocator, char persistence, TransactionId *freezeXid, MultiXactId *minmulti)
bool(* scan_analyze_next_tuple)(TableScanDesc scan, TransactionId OldestXmin, double *liverows, double *deadrows, TupleTableSlot *slot)
TransactionId(* index_delete_tuples)(Relation rel, TM_IndexDeleteOp *delstate)
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)
void(* tuple_insert_speculative)(Relation rel, TupleTableSlot *slot, CommandId cid, int options, struct BulkInsertStateData *bistate, uint32 specToken)
TM_Result(* tuple_delete)(Relation rel, ItemPointer tid, CommandId cid, Snapshot snapshot, Snapshot crosscheck, bool wait, TM_FailureData *tmfd, bool changingPart)
bool(* scan_bitmap_next_block)(TableScanDesc scan, struct TBMIterateResult *tbmres)
void(* index_validate_scan)(Relation table_rel, Relation index_rel, struct IndexInfo *index_info, Snapshot snapshot, struct ValidateIndexState *state)
bool(* scan_getnextslot)(TableScanDesc scan, ScanDirection direction, TupleTableSlot *slot)
bool(* tuple_satisfies_snapshot)(Relation rel, TupleTableSlot *slot, Snapshot snapshot)
bool check_default_table_access_method(char **newval, void **extra, GucSource source)
const TableAmRoutine * GetTableAmRoutine(Oid amhandler)
bool IsTransactionState(void)