Fill CommonRdOptions with default values in extract_autovac_opts()
Reported-by: Thomas Munro Reported-by: Pavel Borisov Discussion: https://postgr.es/m/CA%2BhUKGLZzLR50RBvuqOO3MZ%3DF54ETz-rTp1PDX9uDGP_GqyYqA%40mail.gmail.com
This commit is contained in:
parent
3dbd2ff786
commit
422041542f
@ -2056,6 +2056,34 @@ view_reloptions(Datum reloptions, bool validate)
|
||||
tab, lengthof(tab));
|
||||
}
|
||||
|
||||
/*
|
||||
* Fill CommonRdOptions with the default values.
|
||||
*/
|
||||
void
|
||||
fill_default_common_reloptions(CommonRdOptions *common)
|
||||
{
|
||||
common->autovacuum.enabled = true;
|
||||
common->autovacuum.vacuum_threshold = -1;
|
||||
common->autovacuum.vacuum_ins_threshold = -2;
|
||||
common->autovacuum.analyze_threshold = -1;
|
||||
common->autovacuum.vacuum_cost_limit = -1;
|
||||
common->autovacuum.freeze_min_age = -1;
|
||||
common->autovacuum.freeze_max_age = -1;
|
||||
common->autovacuum.freeze_table_age = -1;
|
||||
common->autovacuum.multixact_freeze_min_age = -1;
|
||||
common->autovacuum.multixact_freeze_max_age = -1;
|
||||
common->autovacuum.multixact_freeze_table_age = -1;
|
||||
common->autovacuum.log_min_duration = -1;
|
||||
common->autovacuum.vacuum_cost_delay = -1;
|
||||
common->autovacuum.vacuum_scale_factor = -1;
|
||||
common->autovacuum.vacuum_ins_scale_factor = -1;
|
||||
common->autovacuum.analyze_scale_factor = -1;
|
||||
common->parallel_workers = -1;
|
||||
common->user_catalog_table = false;
|
||||
common->vacuum_index_cleanup = STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO;
|
||||
common->vacuum_truncate = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse options for heaps, views and toast tables.
|
||||
*/
|
||||
|
@ -2681,6 +2681,7 @@ extract_autovac_opts(HeapTuple tup, TupleDesc pg_class_desc)
|
||||
((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_MATVIEW ||
|
||||
((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_TOASTVALUE);
|
||||
|
||||
fill_default_common_reloptions(&common);
|
||||
relopts = extractRelOptions(tup, pg_class_desc,
|
||||
GetTableAmRoutineByAmOid(((Form_pg_class) GETSTRUCT(tup))->relam),
|
||||
NULL, &common);
|
||||
|
21
src/backend/utils/cache/relcache.c
vendored
21
src/backend/utils/cache/relcache.c
vendored
@ -480,26 +480,7 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
|
||||
{
|
||||
common = MemoryContextAlloc(CacheMemoryContext,
|
||||
sizeof(CommonRdOptions));
|
||||
common->autovacuum.enabled = true;
|
||||
common->autovacuum.vacuum_threshold = -1;
|
||||
common->autovacuum.vacuum_ins_threshold = -2;
|
||||
common->autovacuum.analyze_threshold = -1;
|
||||
common->autovacuum.vacuum_cost_limit = -1;
|
||||
common->autovacuum.freeze_min_age = -1;
|
||||
common->autovacuum.freeze_max_age = -1;
|
||||
common->autovacuum.freeze_table_age = -1;
|
||||
common->autovacuum.multixact_freeze_min_age = -1;
|
||||
common->autovacuum.multixact_freeze_max_age = -1;
|
||||
common->autovacuum.multixact_freeze_table_age = -1;
|
||||
common->autovacuum.log_min_duration = -1;
|
||||
common->autovacuum.vacuum_cost_delay = -1;
|
||||
common->autovacuum.vacuum_scale_factor = -1;
|
||||
common->autovacuum.vacuum_ins_scale_factor = -1;
|
||||
common->autovacuum.analyze_scale_factor = -1;
|
||||
common->parallel_workers = -1;
|
||||
common->user_catalog_table = false;
|
||||
common->vacuum_index_cleanup = STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO;
|
||||
common->vacuum_truncate = true;
|
||||
fill_default_common_reloptions(common);
|
||||
relation->rd_common_options = common;
|
||||
}
|
||||
else
|
||||
|
@ -236,6 +236,7 @@ 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 *view_reloptions(Datum reloptions, bool validate);
|
||||
|
Loading…
x
Reference in New Issue
Block a user