Revert "Allow units to be specified in relation option setting value."
authorFujii Masao <fujii@postgresql.org>
Thu, 28 Aug 2014 20:10:47 +0000 (05:10 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 28 Aug 2014 20:10:47 +0000 (05:10 +0900)
This reverts commit e23014f3d40f7d2c23bc97207fd28efbe5ba102b.

As the side effect of the reverted commit, when the unit is
specified, the reloption was stored in the catalog with the unit.
This broke pg_dump (specifically, it prevented pg_dump from
outputting restorable backup regarding the reloption) and
turned the buildfarm red. Revert the commit until the fixed
version is ready.

src/backend/access/common/reloptions.c
src/include/access/reloptions.h
src/test/regress/expected/alter_table.out
src/test/regress/sql/alter_table.sql

index ee4aef2dd2986203733d6acbaf73f113029aa42e..e0b81b9eb5139e8db3c4de25ca3bec7ffaab21bb 100644 (file)
@@ -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, 0
+       HEAP_DEFAULT_FILLFACTOR, HEAP_MIN_FILLFACTOR, 100
    },
    {
        {
@@ -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, 0
+       BTREE_DEFAULT_FILLFACTOR, BTREE_MIN_FILLFACTOR, 100
    },
    {
        {
@@ -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, 0
+       HASH_DEFAULT_FILLFACTOR, HASH_MIN_FILLFACTOR, 100
    },
    {
        {
@@ -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, 0
+       GIST_DEFAULT_FILLFACTOR, GIST_MIN_FILLFACTOR, 100
    },
    {
        {
@@ -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, 0
+       SPGIST_DEFAULT_FILLFACTOR, SPGIST_MIN_FILLFACTOR, 100
    },
    {
        {
@@ -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, 0
+       -1, 0, INT_MAX
    },
    {
        {
@@ -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, 0
+       -1, 0, INT_MAX
    },
    {
        {
@@ -153,7 +153,7 @@ static relopt_int intRelOpts[] =
            "Vacuum cost delay in milliseconds, for autovacuum",
            RELOPT_KIND_HEAP | RELOPT_KIND_TOAST
        },
-       -1, 0, 100, GUC_UNIT_MS
+       -1, 0, 100
    },
    {
        {
@@ -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, 0
+       -1, 1, 10000
    },
    {
        {
@@ -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, 0
+       -1, 0, 1000000000
    },
    {
        {
@@ -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, 0
+       -1, 0, 1000000000
    },
    {
        {
@@ -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, 0
+       -1, 100000000, 2000000000
    },
    {
        {
@@ -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, 0
+       -1, 100000000, 2000000000
    },
    {
        {
            "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, 0
+       }, -1, 0, 2000000000
    },
    {
        {
            "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, 0
+       }, -1, 0, 2000000000
    },
 
    /* 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 flags_val)
+                 int min_val, int max_val)
 {
    relopt_int *newoption;
 
@@ -512,7 +512,6 @@ 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);
 }
@@ -1001,15 +1000,12 @@ 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,
-                                  optint->flags, &hintmsg);
+               parsed = parse_int(value, &option->values.int_val, 0, NULL);
                if (validate && !parsed)
                    ereport(ERROR,
                       (errmsg("invalid value for integer option \"%s\": %s",
-                              option->gen->name, value),
-                       hintmsg ? errhint("%s", _(hintmsg)) : 0));
+                              option->gen->name, value)));
                if (validate && (option->values.int_val < optint->min ||
                                 option->values.int_val > optint->max))
                    ereport(ERROR,
index a54bbd0eaa658a55de3c56d6dd6bd5610fbf8102..c22644841f93e007a7f7b031a83dc2b8d7666621 100644 (file)
@@ -92,7 +92,6 @@ typedef struct relopt_int
    int         default_val;
    int         min;
    int         max;
-   int         flags;
 } relopt_int;
 
 typedef struct relopt_real
@@ -245,7 +244,7 @@ extern relopt_kind add_reloption_kind(void);
 extern void add_bool_reloption(bits32 kinds, char *name, char *desc,
                   bool default_val);
 extern void add_int_reloption(bits32 kinds, char *name, char *desc,
-                 int default_val, int min_val, int max_val, int flags_val);
+                 int default_val, int min_val, int max_val);
 extern void add_real_reloption(bits32 kinds, char *name, char *desc,
                   double default_val, double min_val, double max_val);
 extern void add_string_reloption(bits32 kinds, char *name, char *desc,
index 1d31b81456f4f45256a310d350a7fb34c1948d64..10f45f25a5ed4528d0cc6a962f6c73be5f03b065 100644 (file)
@@ -1811,20 +1811,6 @@ Check constraints:
     "test_inh_check_a_check" CHECK (a::double precision > 10.2::double precision)
 Inherits: test_inh_check
 
--- Set a storage parameter with unit
-CREATE TABLE test_param_unit (a text) WITH (autovacuum_vacuum_cost_delay = '80ms');
-ALTER TABLE test_param_unit SET (autovacuum_vacuum_cost_delay = '3min');
-ERROR:  value 3min out of bounds for option "autovacuum_vacuum_cost_delay"
-DETAIL:  Valid values are between "0" and "100".
-ALTER TABLE test_param_unit SET (autovacuum_analyze_threshold = '3min'); -- fails
-ERROR:  invalid value for integer option "autovacuum_analyze_threshold": 3min
-\d+ test_param_unit
-                  Table "public.test_param_unit"
- Column | Type | Modifiers | Storage  | Stats target | Description 
---------+------+-----------+----------+--------------+-------------
- a      | text |           | extended |              | 
-Options: autovacuum_vacuum_cost_delay=80ms
-
 --
 -- lock levels
 --
index 2c21006615f60707884c7b7ef2412b00f1dc5801..12fd7c2321be44e07e5a66bda5379d0e54dff193 100644 (file)
@@ -1254,12 +1254,6 @@ ALTER TABLE test_inh_check ALTER COLUMN a TYPE numeric;
 \d test_inh_check
 \d test_inh_check_child
 
--- Set a storage parameter with unit
-CREATE TABLE test_param_unit (a text) WITH (autovacuum_vacuum_cost_delay = '80ms');
-ALTER TABLE test_param_unit SET (autovacuum_vacuum_cost_delay = '3min');
-ALTER TABLE test_param_unit SET (autovacuum_analyze_threshold = '3min'); -- fails
-\d+ test_param_unit
-
 --
 -- lock levels
 --