diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index ee4aef2dd2986203733d6acbaf73f113029aa42e..e0b81b9eb5139e8db3c4de25ca3bec7ffaab21bb 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, 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,
diff --git a/src/include/access/reloptions.h b/src/include/access/reloptions.h
index a54bbd0eaa658a55de3c56d6dd6bd5610fbf8102..c22644841f93e007a7f7b031a83dc2b8d7666621 100644
--- a/src/include/access/reloptions.h
+++ b/src/include/access/reloptions.h
@@ -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,
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 1d31b81456f4f45256a310d350a7fb34c1948d64..10f45f25a5ed4528d0cc6a962f6c73be5f03b065 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -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
 --
diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql
index 2c21006615f60707884c7b7ef2412b00f1dc5801..12fd7c2321be44e07e5a66bda5379d0e54dff193 100644
--- a/src/test/regress/sql/alter_table.sql
+++ b/src/test/regress/sql/alter_table.sql
@@ -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
 --