Re: Bug in MergeAttributesIntoExisting() function.

From: Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>
To: amul sul <sul_amul(at)yahoo(dot)co(dot)in>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Bug in MergeAttributesIntoExisting() function.
Date: 2016-01-04 14:28:44
Message-ID: CAGPqQf3T1mC_1-rm2QrEr6z6ujuO9+zFUodA_p3kz_S8pD8SNA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jan 4, 2016 at 4:41 PM, amul sul <sul_amul(at)yahoo(dot)co(dot)in> wrote:

> 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
>
>
> ----------------------
>

Seems like you missed following command in the demonstration test:

ALTER TABLE c2 INHERIT p1;

> You can see columns are not dropped from child c2 table, which we have
> inherited using ALTER command.
>

I took a quick look at this and did some testing. Patch looks good to me.
ALTER TABLE INHERIT missing the attislocal = false check.

> Regards,
> Amul Sul
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
>

--
Rushabh Lathia
www.EnterpriseDB.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andreas Karlsson 2016-01-04 14:33:06 Re: \x auto and EXPLAIN
Previous Message Alvaro Herrera 2016-01-04 13:43:32 Re: Keyword classifications