Is it an expected behavior? postgres=# CREATE TABLE t1 (a int, b int); CREATE TABLE postgres=# CREATE TABLE t2 (b int, c int); CREATE TABLE postgres=# CREATE TABLE t3 (d int) inherits (t1, t2); NOTICE: merging multiple inherited definitions of column "b" CREATE TABLE
The t3.d is inherited from t1 and t2. Its attinhcount is 2. postgres=# ALTER TABLE t1 RENAME b TO x; ALTER TABLE It alters name of the column 'b' in the t1 and its child tables ('t3'). postgres=# SELECT * FROM t1; a | x ---+--- (0 rows) postgres=# SELECT * FROM t2; ERROR: could not find inherited attribute "b" of relation "t3" Because t3.b is also inherited from the t2, but ALTER TABLE does not care about multiple inherited columns well. I think we should not allow to rename a column with attinhcount > 1. Any comments? Thanks, -- OSS Platform Development Division, NEC KaiGai Kohei <kai...@ak.jp.nec.com> -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers