]> granicus.if.org Git - postgresql/commit
Tighten integrity checks on ALTER TABLE ... ALTER COLUMN ... RENAME.
authorRobert Haas <rhaas@postgresql.org>
Mon, 1 Feb 2010 19:28:56 +0000 (19:28 +0000)
committerRobert Haas <rhaas@postgresql.org>
Mon, 1 Feb 2010 19:28:56 +0000 (19:28 +0000)
commit63f9282f6e7a4afed8826437cea6e92d9e4b0869
tree1c8c2e4c0d1fd5294e374a236585cbce210de4f6
parent1526d4e38fc5a067ffa9779be34d4dbcfdf8ea5f
Tighten integrity checks on ALTER TABLE ... ALTER COLUMN ... RENAME.

When a column is renamed, we recursively rename the same column in
all descendent tables.  But if one of those tables also inherits that
column from a table outside the inheritance hierarchy rooted at the
named table, we must throw an error.  The previous coding correctly
prohibited the rename when the parent had inherited the column from
elsewhere, but overlooked the case where the parent was OK but a child
table also inherited the same column from a second, unrelated parent.

For now, not backpatched due to lack of complaints from the field.

KaiGai Kohei, with further changes by me.
Reviewed by Bernd Helme and Tom Lane.
src/backend/catalog/pg_inherits.c
src/backend/commands/alter.c
src/backend/commands/analyze.c
src/backend/commands/tablecmds.c
src/backend/optimizer/prep/prepunion.c
src/include/catalog/pg_inherits_fn.h
src/include/commands/tablecmds.h
src/test/regress/expected/inherit.out
src/test/regress/sql/inherit.sql