mirror of
https://github.com/postgres/postgres.git
synced 2025-06-26 12:21:12 +03:00
Refactor broken CREATE TABLE IF NOT EXISTS support.
Per bug #5988, reported by Marko Tiikkaja, and further analyzed by Tom Lane, the previous coding was broken in several respects: even if the target table already existed, a subsequent CREATE TABLE IF NOT EXISTS might try to add additional constraints or sequences-for-serial specified in the new CREATE TABLE statement. In passing, this also fixes a minor information leak: it's no longer possible to figure out whether a schema to which you don't have CREATE access contains a sequence named like "x_y_seq" by attempting to create a table in that schema called "x" with a serial column called "y". Some more refactoring of this code in the future might be warranted, but that will need to wait for a later major release.
This commit is contained in:
@ -247,8 +247,7 @@ Boot_CreateStmt:
|
||||
ONCOMMIT_NOOP,
|
||||
(Datum) 0,
|
||||
false,
|
||||
true,
|
||||
false);
|
||||
true);
|
||||
elog(DEBUG4, "relation created with oid %u", id);
|
||||
}
|
||||
do_end();
|
||||
|
Reference in New Issue
Block a user