Add back vacuum_cleanup_index_scale_factor parameter.
authorPeter Geoghegan
Thu, 11 Mar 2021 20:42:46 +0000 (12:42 -0800)
committerPeter Geoghegan
Thu, 11 Mar 2021 20:42:46 +0000 (12:42 -0800)
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/[email protected]

src/backend/access/common/reloptions.c
src/backend/access/nbtree/nbtutils.c
src/include/access/nbtree.h

index 433e236722376971af6faba0427086779fce1520..d897bbec2ba3a37b900dfb246863b8fb696b692e 100644 (file)
@@ -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}}
 };
index fdbe0da472016f4519fc9972b3386ac43ca3d2a0..d5243107239bb16ca63fadcfd6c68356104bd8e4 100644 (file)
@@ -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)}
 
index 5c66d1f366ebb4dc9bbbec7eff6826a2d8364b70..eb284b60427589159f6d655f6ef30ea20df2a408 100644 (file)
@@ -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;