Hi, In inheritance, child column's pg_attribute.attislocal flag not getting updated, if it is inherited using ALTER TABLE <child> INHERIT <parent>.
Due to this, if we try to drop column(s) from parent table, which are not getting drop from child. Attached herewith is quick patch fixing this issue. ----------------------Demonstration: ---------------------- CREATE TABLE p1 (a int , b int, c int, d int); CREATE TABLE c1 () inherits (p1);CREATE TABLE c2 (a int , b int, c int, d int); --Drop parent's column ALTER TABLE p1 DROP COLUMN b; ALTER TABLE p1 DROP COLUMN c; ALTER TABLE p1 DROP COLUMN d; postgres=# \d p1 Table "public.p1" Column | Type | Modifiers --------+---------+----------- a | integer | Number of child tables: 2 (Use \d+ to list them.) postgres=# \d c1 Table "public.c1" Column | Type | Modifiers --------+---------+----------- a | integer | Inherits: p1 postgres=# \d c2 Table "public.c2" Column | Type | Modifiers --------+---------+----------- a | integer | b | integer | c | integer | d | integer | Inherits: p1 ---------------------- You can see columns are not dropped from child c2 table, which we have inherited using ALTER command. Regards, Amul Sul
MergeAttributesIntoExisting_fix.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers