67 (
errmsg(
"new option value for string parameter %s",
81 "Integer option for dummy_index_am",
88 "Real option for dummy_index_am",
95 "Boolean option for dummy_index_am",
102 "Enum option for dummy_index_am",
105 "Valid values are \"one\" and \"two\".",
112 "String option for dummy_index_am with non-NULL default",
118 option_string_val_offset);
131 option_string_null_offset);
205 Cost *indexStartupCost,
Cost *indexTotalCost,
206 Selectivity *indexSelectivity,
double *indexCorrelation,
210 *indexStartupCost = 1.0e10;
211 *indexTotalCost = 1.0e10;
214 *indexSelectivity = 1;
215 *indexCorrelation = 0;
260 ScanKey orderbys,
int norderbys)
static Datum values[MAXATTR]
static bool divalidate(Oid opclassoid)
static void validate_string_option(const char *value)
static bytea * dioptions(Datum reloptions, bool validate)
static void diendscan(IndexScanDesc scan)
static IndexBuildResult * dibuild(Relation heap, Relation index, IndexInfo *indexInfo)
static void dibuildempty(Relation index)
static relopt_enum_elt_def dummyAmEnumValues[]
PG_FUNCTION_INFO_V1(dihandler)
static void create_reloptions_table(void)
static IndexScanDesc dibeginscan(Relation r, int nkeys, int norderbys)
static bool diinsert(Relation index, Datum *values, bool *isnull, ItemPointer ht_ctid, Relation heapRel, IndexUniqueCheck checkUnique, bool indexUnchanged, IndexInfo *indexInfo)
static void direscan(IndexScanDesc scan, ScanKey scankey, int nscankeys, ScanKey orderbys, int norderbys)
static IndexBulkDeleteResult * dibulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, IndexBulkDeleteCallback callback, void *callback_state)
struct DummyIndexOptions DummyIndexOptions
static IndexBulkDeleteResult * divacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
static void dicostestimate(PlannerInfo *root, IndexPath *path, double loop_count, Cost *indexStartupCost, Cost *indexTotalCost, Selectivity *indexSelectivity, double *indexCorrelation, double *indexPages)
static relopt_parse_elt di_relopt_tab[6]
Datum dihandler(PG_FUNCTION_ARGS)
static relopt_kind di_relopt_kind
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define PG_RETURN_POINTER(x)
IndexScanDesc RelationGetIndexScan(Relation indexRelation, int nkeys, int norderbys)
bool(* IndexBulkDeleteCallback)(ItemPointer itemptr, void *state)
#define AccessExclusiveLock
void add_int_reloption(bits32 kinds, const char *name, const char *desc, int default_val, int min_val, int max_val, LOCKMODE lockmode)
void * build_reloptions(Datum reloptions, bool validate, relopt_kind kind, Size relopt_struct_size, const relopt_parse_elt *relopt_elems, int num_relopt_elems)
void add_string_reloption(bits32 kinds, const char *name, const char *desc, const char *default_val, validate_string_relopt validator, LOCKMODE lockmode)
void add_enum_reloption(bits32 kinds, const char *name, const char *desc, relopt_enum_elt_def *members, int default_val, const char *detailmsg, LOCKMODE lockmode)
void add_real_reloption(bits32 kinds, const char *name, const char *desc, double default_val, double min_val, double max_val, LOCKMODE lockmode)
void add_bool_reloption(bits32 kinds, const char *name, const char *desc, bool default_val, LOCKMODE lockmode)
relopt_kind add_reloption_kind(void)
int option_string_val_offset
int option_string_null_offset
ambuildphasename_function ambuildphasename
ambuildempty_function ambuildempty
amvacuumcleanup_function amvacuumcleanup
amoptions_function amoptions
amestimateparallelscan_function amestimateparallelscan
amrestrpos_function amrestrpos
aminsert_function aminsert
amendscan_function amendscan
amparallelrescan_function amparallelrescan
amcostestimate_function amcostestimate
amgettuple_function amgettuple
amcanreturn_function amcanreturn
amgetbitmap_function amgetbitmap
amproperty_function amproperty
ambulkdelete_function ambulkdelete
amvalidate_function amvalidate
ammarkpos_function ammarkpos
bool amusemaintenanceworkmem
ambeginscan_function ambeginscan
amrescan_function amrescan
aminitparallelscan_function aminitparallelscan
uint8 amparallelvacuumoptions
amgettreeheight_function amgettreeheight
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
#define VACUUM_OPTION_NO_PARALLEL