From effdd3f3b633e88feaa675377075f02ecc99aee4 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Thu, 11 Mar 2021 12:42:46 -0800 Subject: [PATCH] Add back vacuum_cleanup_index_scale_factor parameter. Commit 9f3665fb removed the vacuum_cleanup_index_scale_factor storage parameter. However, that creates dump/reload hazards when moving across major versions. Add back the vacuum_cleanup_index_scale_factor parameter (though not the GUC of the same name) purely to avoid problems when using tools like pg_upgrade. The parameter remains disabled and undocumented. No backpatch to Postgres 13, since vacuum_cleanup_index_scale_factor was only disabled by REL_13_STABLE's version of master branch commit 9f3665fb in the first place -- the parameter already looks like this on REL_13_STABLE. Discussion: https://postgr.es/m/YEm/a3Ko3nKnBuVq@paquier.xyz --- src/backend/access/common/reloptions.c | 9 +++++++++ src/backend/access/nbtree/nbtutils.c | 2 ++ src/include/access/nbtree.h | 1 + 3 files changed, 12 insertions(+) diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c index 433e2367223..d897bbec2ba 100644 --- a/src/backend/access/common/reloptions.c +++ b/src/backend/access/common/reloptions.c @@ -461,6 +461,15 @@ static relopt_real realRelOpts[] = }, 0, -1.0, DBL_MAX }, + { + { + "vacuum_cleanup_index_scale_factor", + "Deprecated B-Tree parameter.", + RELOPT_KIND_BTREE, + ShareUpdateExclusiveLock + }, + -1, 0.0, 1e10 + }, /* list terminator */ {{NULL}} }; diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c index fdbe0da4720..d5243107239 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -2105,6 +2105,8 @@ btoptions(Datum reloptions, bool validate) { static const relopt_parse_elt tab[] = { {"fillfactor", RELOPT_TYPE_INT, offsetof(BTOptions, fillfactor)}, + {"vacuum_cleanup_index_scale_factor", RELOPT_TYPE_REAL, + offsetof(BTOptions, vacuum_cleanup_index_scale_factor)}, {"deduplicate_items", RELOPT_TYPE_BOOL, offsetof(BTOptions, deduplicate_items)} diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 5c66d1f366e..eb284b60427 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -1067,6 +1067,7 @@ typedef struct BTOptions { int32 varlena_header_; /* varlena header (do not touch directly!) */ int fillfactor; /* page fill factor in percent (0..100) */ + float8 vacuum_cleanup_index_scale_factor; /* deprecated */ bool deduplicate_items; /* Try to deduplicate items? */ } BTOptions;