Bug in MergeAttributesIntoExisting() function.
| От | amul sul |
|---|---|
| Тема | Bug in MergeAttributesIntoExisting() function. |
| Дата | |
| Msg-id | 1938741307.6256457.1451905888144.JavaMail.yahoo@mail.yahoo.com обсуждение |
| Ответы |
Re: Bug in MergeAttributesIntoExisting() function.
Re: Bug in MergeAttributesIntoExisting() function. Re: Bug in MergeAttributesIntoExisting() function. |
| Список | pgsql-hackers |
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
Вложения
В списке pgsql-hackers по дате отправления: