1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Throw error for ALTER TABLE RESET of an invalid option

Also adjust pg_upgrade to not use this method for optional TOAST table
creation.

Patch by Fabrízio de Royes Mello
This commit is contained in:
Bruce Momjian
2014-08-25 17:06:40 -04:00
parent ebe30ad59b
commit 73d78e11a0
2 changed files with 34 additions and 1 deletions

View File

@ -115,6 +115,10 @@ 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;"));
ntups = PQntuples(res);
i_nspname = PQfnumber(res, "nspname");
i_relname = PQfnumber(res, "relname");
@ -125,13 +129,16 @@ 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 RESET (binary_upgrade_dummy_option);",
PQclear(executeQueryOrDie(conn, "ALTER TABLE %s.%s DROP CONSTRAINT IF EXISTS binary_upgrade_dummy_constraint;",
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;"));
PQfinish(conn);
}