Skip to content

Commit 4220415

Browse files
committed
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
1 parent 3dbd2ff commit 4220415

File tree

4 files changed

+31
-20
lines changed

4 files changed

+31
-20
lines changed

src/backend/access/common/reloptions.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2056,6 +2056,34 @@ view_reloptions(Datum reloptions, bool validate)
20562056
tab, lengthof(tab));
20572057
}
20582058

2059+
/*
2060+
* Fill CommonRdOptions with the default values.
2061+
*/
2062+
void
2063+
fill_default_common_reloptions(CommonRdOptions *common)
2064+
{
2065+
common->autovacuum.enabled = true;
2066+
common->autovacuum.vacuum_threshold = -1;
2067+
common->autovacuum.vacuum_ins_threshold = -2;
2068+
common->autovacuum.analyze_threshold = -1;
2069+
common->autovacuum.vacuum_cost_limit = -1;
2070+
common->autovacuum.freeze_min_age = -1;
2071+
common->autovacuum.freeze_max_age = -1;
2072+
common->autovacuum.freeze_table_age = -1;
2073+
common->autovacuum.multixact_freeze_min_age = -1;
2074+
common->autovacuum.multixact_freeze_max_age = -1;
2075+
common->autovacuum.multixact_freeze_table_age = -1;
2076+
common->autovacuum.log_min_duration = -1;
2077+
common->autovacuum.vacuum_cost_delay = -1;
2078+
common->autovacuum.vacuum_scale_factor = -1;
2079+
common->autovacuum.vacuum_ins_scale_factor = -1;
2080+
common->autovacuum.analyze_scale_factor = -1;
2081+
common->parallel_workers = -1;
2082+
common->user_catalog_table = false;
2083+
common->vacuum_index_cleanup = STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO;
2084+
common->vacuum_truncate = true;
2085+
}
2086+
20592087
/*
20602088
* Parse options for heaps, views and toast tables.
20612089
*/

src/backend/postmaster/autovacuum.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2681,6 +2681,7 @@ extract_autovac_opts(HeapTuple tup, TupleDesc pg_class_desc)
26812681
((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_MATVIEW ||
26822682
((Form_pg_class) GETSTRUCT(tup))->relkind == RELKIND_TOASTVALUE);
26832683

2684+
fill_default_common_reloptions(&common);
26842685
relopts = extractRelOptions(tup, pg_class_desc,
26852686
GetTableAmRoutineByAmOid(((Form_pg_class) GETSTRUCT(tup))->relam),
26862687
NULL, &common);

src/backend/utils/cache/relcache.c

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -480,26 +480,7 @@ RelationParseRelOptions(Relation relation, HeapTuple tuple)
480480
{
481481
common = MemoryContextAlloc(CacheMemoryContext,
482482
sizeof(CommonRdOptions));
483-
common->autovacuum.enabled = true;
484-
common->autovacuum.vacuum_threshold = -1;
485-
common->autovacuum.vacuum_ins_threshold = -2;
486-
common->autovacuum.analyze_threshold = -1;
487-
common->autovacuum.vacuum_cost_limit = -1;
488-
common->autovacuum.freeze_min_age = -1;
489-
common->autovacuum.freeze_max_age = -1;
490-
common->autovacuum.freeze_table_age = -1;
491-
common->autovacuum.multixact_freeze_min_age = -1;
492-
common->autovacuum.multixact_freeze_max_age = -1;
493-
common->autovacuum.multixact_freeze_table_age = -1;
494-
common->autovacuum.log_min_duration = -1;
495-
common->autovacuum.vacuum_cost_delay = -1;
496-
common->autovacuum.vacuum_scale_factor = -1;
497-
common->autovacuum.vacuum_ins_scale_factor = -1;
498-
common->autovacuum.analyze_scale_factor = -1;
499-
common->parallel_workers = -1;
500-
common->user_catalog_table = false;
501-
common->vacuum_index_cleanup = STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO;
502-
common->vacuum_truncate = true;
483+
fill_default_common_reloptions(common);
503484
relation->rd_common_options = common;
504485
}
505486
else

src/include/access/reloptions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ extern void *build_reloptions(Datum reloptions, bool validate,
236236
extern void *build_local_reloptions(local_relopts *relopts, Datum options,
237237
bool validate);
238238

239+
extern void fill_default_common_reloptions(CommonRdOptions *common);
239240
extern bytea *heap_reloptions(char relkind, Datum reloptions,
240241
CommonRdOptions *common, bool validate);
241242
extern bytea *view_reloptions(Datum reloptions, bool validate);

0 commit comments

Comments
 (0)