From: | amul sul <sul_amul(at)yahoo(dot)co(dot)in> |
---|---|
To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Bug in MergeAttributesIntoExisting() function. |
Date: | 2016-01-04 11:11:28 |
Message-ID: | 1938741307.6256457.1451905888144.JavaMail.yahoo@mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
Attachment | Content-Type | Size |
---|---|---|
MergeAttributesIntoExisting_fix.patch | application/octet-stream | 2.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Haribabu Kommi | 2016-01-04 11:43:15 | Re: Multi-tenancy with RLS |
Previous Message | Pavel Stehule | 2016-01-04 11:05:49 | Re: Proposal: SET ROLE hook |