aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/common/reloptions.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/common/reloptions.c')
-rw-r--r--src/backend/access/common/reloptions.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index e0b81b9eb51..ee4aef2dd29 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -97,7 +97,7 @@ static relopt_int intRelOpts[] =
"Packs table pages only to this percentage",
RELOPT_KIND_HEAP
},
- HEAP_DEFAULT_FILLFACTOR, HEAP_MIN_FILLFACTOR, 100
+ HEAP_DEFAULT_FILLFACTOR, HEAP_MIN_FILLFACTOR, 100, 0
},
{
{
@@ -105,7 +105,7 @@ static relopt_int intRelOpts[] =
"Packs btree index pages only to this percentage",
RELOPT_KIND_BTREE
},
- BTREE_DEFAULT_FILLFACTOR, BTREE_MIN_FILLFACTOR, 100
+ BTREE_DEFAULT_FILLFACTOR, BTREE_MIN_FILLFACTOR, 100, 0
},
{
{
@@ -113,7 +113,7 @@ static relopt_int intRelOpts[] =
"Packs hash index pages only to this percentage",
RELOPT_KIND_HASH
},
- HASH_DEFAULT_FILLFACTOR, HASH_MIN_FILLFACTOR, 100
+ HASH_DEFAULT_FILLFACTOR, HASH_MIN_FILLFACTOR, 100, 0
},
{
{
@@ -121,7 +121,7 @@ static relopt_int intRelOpts[] =
"Packs gist index pages only to this percentage",
RELOPT_KIND_GIST
},
- GIST_DEFAULT_FILLFACTOR, GIST_MIN_FILLFACTOR, 100
+ GIST_DEFAULT_FILLFACTOR, GIST_MIN_FILLFACTOR, 100, 0
},
{
{
@@ -129,7 +129,7 @@ static relopt_int intRelOpts[] =
"Packs spgist index pages only to this percentage",
RELOPT_KIND_SPGIST
},
- SPGIST_DEFAULT_FILLFACTOR, SPGIST_MIN_FILLFACTOR, 100
+ SPGIST_DEFAULT_FILLFACTOR, SPGIST_MIN_FILLFACTOR, 100, 0
},
{
{
@@ -137,7 +137,7 @@ static relopt_int intRelOpts[] =
"Minimum number of tuple updates or deletes prior to vacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 0, INT_MAX
+ -1, 0, INT_MAX, 0
},
{
{
@@ -145,7 +145,7 @@ static relopt_int intRelOpts[] =
"Minimum number of tuple inserts, updates or deletes prior to analyze",
RELOPT_KIND_HEAP
},
- -1, 0, INT_MAX
+ -1, 0, INT_MAX, 0
},
{
{
@@ -153,7 +153,7 @@ static relopt_int intRelOpts[] =
"Vacuum cost delay in milliseconds, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 0, 100
+ -1, 0, 100, GUC_UNIT_MS
},
{
{
@@ -161,7 +161,7 @@ static relopt_int intRelOpts[] =
"Vacuum cost amount available before napping, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 1, 10000
+ -1, 1, 10000, 0
},
{
{
@@ -169,7 +169,7 @@ static relopt_int intRelOpts[] =
"Minimum age at which VACUUM should freeze a table row, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 0, 1000000000
+ -1, 0, 1000000000, 0
},
{
{
@@ -177,7 +177,7 @@ static relopt_int intRelOpts[] =
"Minimum multixact age at which VACUUM should freeze a row multixact's, for autovacuum",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 0, 1000000000
+ -1, 0, 1000000000, 0
},
{
{
@@ -185,7 +185,7 @@ static relopt_int intRelOpts[] =
"Age at which to autovacuum a table to prevent transaction ID wraparound",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 100000000, 2000000000
+ -1, 100000000, 2000000000, 0
},
{
{
@@ -193,21 +193,21 @@ static relopt_int intRelOpts[] =
"Multixact age at which to autovacuum a table to prevent multixact wraparound",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
},
- -1, 100000000, 2000000000
+ -1, 100000000, 2000000000, 0
},
{
{
"autovacuum_freeze_table_age",
"Age at which VACUUM should perform a full table sweep to freeze row versions",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
- }, -1, 0, 2000000000
+ }, -1, 0, 2000000000, 0
},
{
{
"autovacuum_multixact_freeze_table_age",
"Age of multixact at which VACUUM should perform a full table sweep to freeze row versions",
RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
- }, -1, 0, 2000000000
+ }, -1, 0, 2000000000, 0
},
/* list terminator */
@@ -503,7 +503,7 @@ add_bool_reloption(bits32 kinds, char *name, char *desc, bool default_val)
*/
void
add_int_reloption(bits32 kinds, char *name, char *desc, int default_val,
- int min_val, int max_val)
+ int min_val, int max_val, int flags_val)
{
relopt_int *newoption;
@@ -512,6 +512,7 @@ add_int_reloption(bits32 kinds, char *name, char *desc, int default_val,
newoption->default_val = default_val;
newoption->min = min_val;
newoption->max = max_val;
+ newoption->flags = flags_val;
add_reloption((relopt_gen *) newoption);
}
@@ -1000,12 +1001,15 @@ parse_one_reloption(relopt_value *option, char *text_str, int text_len,
case RELOPT_TYPE_INT:
{
relopt_int *optint = (relopt_int *) option->gen;
+ const char *hintmsg;
- parsed = parse_int(value, &option->values.int_val, 0, NULL);
+ parsed = parse_int(value, &option->values.int_val,
+ optint->flags, &hintmsg);
if (validate && !parsed)
ereport(ERROR,
(errmsg("invalid value for integer option \"%s\": %s",
- option->gen->name, value)));
+ option->gen->name, value),
+ hintmsg ? errhint("%s", _(hintmsg)) : 0));
if (validate && (option->values.int_val < optint->min ||
option->values.int_val > optint->max))
ereport(ERROR,