Re: BUG #9555: pg_dump for tables with inheritance recreates the table with the wrong order of columns - Mailing list pgsql-bugs

From Noah Misch
Subject Re: BUG #9555: pg_dump for tables with inheritance recreates the table with the wrong order of columns
Date
Msg-id 20140317231212.GA3854149@tornado.leadboat.com
Whole thread Raw
In response to Re: BUG #9555: pg_dump for tables with inheritance recreates the table with the wrong order of columns  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-bugs
On Fri, Mar 14, 2014 at 12:33:04PM -0300, Alvaro Herrera wrote:
> Tom Lane wrote:
> > Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > > majid@apsalar.com wrote:
> > >> Reproduction case:
> > >>
> > >> create table A(a int, b int, c int);
> > >> create table B(a int, c int);
> > >> alter table A inherit B;
> >
> > > I wonder if the real fix here is to have ALTER / INHERIT error out of
> > > the columns in B are not a prefix of those in A.
> >
> > Years ago, we sweated quite a lot of blood to make these cases work.
> > I'm not thrilled about throwing away all that effort because one person
> > doesn't like the behavior.

Agreed.  That also makes the current pg_dump behavior a bug.  Column order
matters; pg_dump is failing to recreate a semantically-equivalent database.

> Hm, well in that case it makes sense to consider the original
> suggestion: if the columns in the parent are not a prefix of those of
> the child, use ALTER INHERIT after creating both tables rather than
> CREATE TABLE INHERITS.
>
> It'd be a lot of new code in pg_dump though.  I am not volunteering ...

"pg_dump --binary-upgrade" already gets this right.  Perhaps it won't take too
much code to make dumpTableSchema() reuse that one part of its binary-upgrade
approach whenever the columns of B are not a prefix of those in A.

nm

--
Noah Misch
EnterpriseDB                                 http://www.enterprisedb.com

pgsql-bugs by date:

Previous
From: Vik Fearing
Date:
Subject: Re: BUG #9604: Unable to access table remotely
Next
From: Venkata Balaji Nagothi
Date:
Subject: Re: BUG #9604: Unable to access table remotely