1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

Revert: Custom reloptions for table AM

This commit reverts 9bd99f4c26 and 422041542f per review by Andres Freund.

Discussion: https://postgr.es/m/20240410165236.rwyrny7ihi4ddxw4%40awork3.anarazel.de
This commit is contained in:
Alexander Korotkov
2024-04-11 15:46:35 +03:00
parent 87840b9741
commit bc1e2092eb
29 changed files with 161 additions and 650 deletions

View File

@ -21,7 +21,6 @@
#include "access/amapi.h"
#include "access/htup.h"
#include "access/tableam.h"
#include "access/tupdesc.h"
#include "nodes/pg_list.h"
#include "storage/lock.h"
@ -225,9 +224,7 @@ extern Datum transformRelOptions(Datum oldOptions, List *defList,
bool acceptOidsOff, bool isReset);
extern List *untransformRelOptions(Datum options);
extern bytea *extractRelOptions(HeapTuple tuple, TupleDesc tupdesc,
const TableAmRoutine *tableam,
amoptions_function amoptions,
CommonRdOptions *common);
amoptions_function amoptions);
extern void *build_reloptions(Datum reloptions, bool validate,
relopt_kind kind,
Size relopt_struct_size,
@ -236,9 +233,9 @@ extern void *build_reloptions(Datum reloptions, bool validate,
extern void *build_local_reloptions(local_relopts *relopts, Datum options,
bool validate);
extern void fill_default_common_reloptions(CommonRdOptions *common);
extern bytea *heap_reloptions(char relkind, Datum reloptions,
CommonRdOptions *common, bool validate);
extern bytea *default_reloptions(Datum reloptions, bool validate,
relopt_kind kind);
extern bytea *heap_reloptions(char relkind, Datum reloptions, bool validate);
extern bytea *view_reloptions(Datum reloptions, bool validate);
extern bytea *partitioned_table_reloptions(Datum reloptions, bool validate);
extern bytea *index_reloptions(amoptions_function amoptions, Datum reloptions,

View File

@ -746,34 +746,6 @@ typedef struct TableAmRoutine
int32 slicelength,
struct varlena *result);
/*
* This callback parses and validates the reloptions array for a table.
*
* This is called only when a non-null reloptions array exists for the
* table. 'reloptions' is a text array containing entries of the form
* "name=value". The function should construct a bytea value, which will
* be copied into the rd_options field of the table's relcache entry. The
* data contents of the bytea value are open for the access method to
* define.
*
* The '*common' represents the common values, which the table access
* method exposes for autovacuum, query planner, and others. The caller
* should fill them with default values. The table access method may
* modify them on the base of options specified by a user.
*
* When 'validate' is true, the function should report a suitable error
* message if any of the options are unrecognized or have invalid values;
* when 'validate' is false, invalid entries should be silently ignored.
* ('validate' is false when loading options already stored in pg_catalog;
* an invalid entry could only be found if the access method has changed
* its rules for options, and in that case ignoring obsolete entries is
* appropriate.)
*
* It is OK to return NULL if default behavior is wanted.
*/
bytea *(*reloptions) (char relkind, Datum reloptions,
CommonRdOptions *common, bool validate);
/* ------------------------------------------------------------------------
* Planner related functions.
@ -1986,27 +1958,6 @@ table_relation_fetch_toast_slice(Relation toastrel, Oid valueid,
result);
}
/*
* Parse table options without knowledge of particular table.
*/
static inline bytea *
tableam_reloptions(const TableAmRoutine *tableam, char relkind,
Datum reloptions, CommonRdOptions *common, bool validate)
{
return tableam->reloptions(relkind, reloptions, common, validate);
}
/*
* Parse options for given table.
*/
static inline bytea *
table_reloptions(Relation rel, char relkind,
Datum reloptions, CommonRdOptions *common, bool validate)
{
return tableam_reloptions(rel->rd_tableam, relkind, reloptions,
common, validate);
}
/* ----------------------------------------------------------------------------
* Planner related functionality
@ -2185,7 +2136,6 @@ extern void table_block_relation_estimate_size(Relation rel,
*/
extern const TableAmRoutine *GetTableAmRoutine(Oid amhandler);
extern const TableAmRoutine *GetTableAmRoutineByAmOid(Oid amoid);
/* ----------------------------------------------------------------------------
* Functions in heapam_handler.c