From 6cb74a67e26523eb2408f441bfc589c80f76c465 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 25 Aug 2014 20:07:37 -0400
Subject: [PATCH] revert "Throw error for ALTER TABLE RESET of an invalid
 option"

Reverts commits 73d78e11a0f7183c80b93eefbbb6026fe9664015 and
b0488e5c4fbfdce8acc989bdc17d9f0ec09ac281.  Also reverts pg_upgrade
changes.
---
 contrib/pg_upgrade/dump.c              | 11 +----------
 src/backend/access/common/reloptions.c | 26 --------------------------
 2 files changed, 1 insertion(+), 36 deletions(-)

diff --git a/contrib/pg_upgrade/dump.c b/contrib/pg_upgrade/dump.c
index 1ce2f37a86f..e623a226327 100644
--- a/contrib/pg_upgrade/dump.c
+++ b/contrib/pg_upgrade/dump.c
@@ -115,11 +115,6 @@ optionally_create_toast_tables(void)
 								"c.relkind IN ('r', 'm') AND "
 								"c.reltoastrelid = 0");
 
-		/* Suppress NOTICE output from non-existant constraints */
-		PQclear(executeQueryOrDie(conn, "SET client_min_messages = warning;"));
-		PQclear(executeQueryOrDie(conn, "SET log_min_messages = warning;"));
-		PQclear(executeQueryOrDie(conn, "SET log_min_error_statement = warning;"));
-
 		ntups = PQntuples(res);
 		i_nspname = PQfnumber(res, "nspname");
 		i_relname = PQfnumber(res, "relname");
@@ -130,17 +125,13 @@ optionally_create_toast_tables(void)
 					OPTIONALLY_CREATE_TOAST_OID));
 
 			/* dummy command that also triggers check for required TOAST table */
-			PQclear(executeQueryOrDie(conn, "ALTER TABLE %s.%s DROP CONSTRAINT IF EXISTS binary_upgrade_dummy_constraint;",
+			PQclear(executeQueryOrDie(conn, "ALTER TABLE %s.%s RESET (binary_upgrade_dummy_option);",
 					quote_identifier(PQgetvalue(res, rowno, i_nspname)),
 					quote_identifier(PQgetvalue(res, rowno, i_relname))));
 		}
 
 		PQclear(res);
 
-		PQclear(executeQueryOrDie(conn, "RESET client_min_messages;"));
-		PQclear(executeQueryOrDie(conn, "RESET log_min_messages;"));
-		PQclear(executeQueryOrDie(conn, "RESET log_min_error_statement;"));
-
 		PQfinish(conn);
 	}
 
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 97a4e227a3b..e0b81b9eb51 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -307,8 +307,6 @@ static void initialize_reloptions(void);
 static void parse_one_reloption(relopt_value *option, char *text_str,
 					int text_len, bool validate);
 
-static bool is_valid_reloption(char *name);
-
 /*
  * initialize_reloptions
  *		initialization routine, must be called before parsing
@@ -383,25 +381,6 @@ initialize_reloptions(void)
 	need_initialization = false;
 }
 
-/*
- * is_valid_reloption
- *		check if a reloption exists
- *
- */
-static bool
-is_valid_reloption(char *name)
-{
-	int i;
-
-	for (i = 0; relOpts[i]; i++)
-	{
-		if (pg_strcasecmp(relOpts[i]->name, name) == 0)
-			return true;
-	}
-
-	return false;
-}
-
 /*
  * add_reloption_kind
  *		Create a new relopt_kind value, to be used in custom reloptions by
@@ -693,11 +672,6 @@ transformRelOptions(Datum oldOptions, List *defList, char *namspace,
 
 		if (isReset)
 		{
-			if (!is_valid_reloption(def->defname))
-				ereport(ERROR,
-						(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-						 errmsg("unrecognized parameter \"%s\"", def->defname)));
-
 			if (def->arg != NULL)
 				ereport(ERROR,
 						(errcode(ERRCODE_SYNTAX_ERROR),
-- 
GitLab