mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
Custom reloptions for table AM
Let table AM define custom reloptions for its tables. This allows to specify AM-specific parameters by WITH clause when creating a table. The code may use some parts from prior work by Hao Wu. Discussion: https://postgr.es/m/CAPpHfdurb9ycV8udYqM%3Do0sPS66PJ4RCBM1g-bBpvzUfogY0EA%40mail.gmail.com Discussion: https://postgr.es/m/AMUA1wBBBxfc3tKRLLdU64rb.1.1683276279979.Hmail.wuhao%40hashdata.cn Reviewed-by: Reviewed-by: Pavel Borisov, Matthias van de Meent
This commit is contained in:
6
src/backend/utils/cache/relcache.c
vendored
6
src/backend/utils/cache/relcache.c
vendored
@@ -33,6 +33,7 @@
|
||||
#include "access/htup_details.h"
|
||||
#include "access/multixact.h"
|
||||
#include "access/parallel.h"
|
||||
#include "access/relation.h"
|
||||
#include "access/reloptions.h"
|
||||
#include "access/sysattr.h"
|
||||
#include "access/table.h"
|
||||
@@ -464,6 +465,7 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
|
||||
{
|
||||
bytea *options;
|
||||
amoptions_function amoptsfn;
|
||||
const TableAmRoutine *tableam = NULL;
|
||||
|
||||
relation->rd_options = NULL;
|
||||
|
||||
@@ -478,6 +480,7 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
|
||||
case RELKIND_VIEW:
|
||||
case RELKIND_MATVIEW:
|
||||
case RELKIND_PARTITIONED_TABLE:
|
||||
tableam = relation->rd_tableam;
|
||||
amoptsfn = NULL;
|
||||
break;
|
||||
case RELKIND_INDEX:
|
||||
@@ -493,7 +496,8 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
|
||||
* we might not have any other for pg_class yet (consider executing this
|
||||
* code for pg_class itself)
|
||||
*/
|
||||
options = extractRelOptions(tuple, GetPgClassDescriptor(), amoptsfn);
|
||||
options = extractRelOptions(tuple, GetPgClassDescriptor(),
|
||||
tableam, amoptsfn);
|
||||
|
||||
/*
|
||||
* Copy parsed data into CacheMemoryContext. To guard against the
|
||||
|
||||
Reference in New Issue
Block a user