Обсуждение: Re: [HACKERS] pg_dump and inherited attributes
En Wed, 25 Sep 2002 00:01:24 -0400 Tom Lane <tgl@sss.pgh.pa.us> escribió: > Alvaro Herrera <alvherre@atentus.com> writes: > > I'm looking at pg_dump/common.c:flagInhAttrs() and suspect that it can > > be more or less rewritten completely, and probably should to get rigth > > all the cases mentioned in the past attisinherited discussion. Is this > > desirable for 7.3? It can probably be hacked around and the rewrite > > kept for 7.4, but I think it will be much simpler after the rewrite. > > If it's a bug then it's fair game to fix in 7.3. But keep in mind that > pg_dump has to behave at least somewhat sanely when called against older > servers ... will your rewrite behave reasonably if the server does not > offer attinhcount values? Nah. I don't think it's worth it: I had forgotten that older versions should be supported. I just left the code as is and added a version-specific test. This patch allows pg_dump to dump correctly local definition of columns. In particular, CREATE TABLE p1 (f1 int, f2 int); CREATE TABLE p2 (f1 int); CREATE TABLE c () INHERITS (p1, p2); ALTER TABLE ONLY p1 DROP COLUMN f1; CREATE TABLE p3 (f1 int); CREATE TABLE c2 (f1 int) INHERITS (p3); Will be dumped as CREATE TABLE p1 (f2 int); CREATE TABLE p2 (f1 int); CREATE TABLE c (f1 int) INHERITS (p1, p2); CREATE TABLE c2 (f1 int) INHERITS (p3); (Previous version will dump CREATE TABLE c () INHERITS (p1, p2) CREATE TABLE c2 () INHERITS (p3) ) -- Alvaro Herrera (<alvherre[a]atentus.com>) A male gynecologist is like an auto mechanic who never owned a car. - Carrie Snow
Вложения
Your patch has been added to the PostgreSQL unapplied patches list at:
http://candle.pha.pa.us/cgi-bin/pgpatches
I will try to apply it within the next 48 hours.
---------------------------------------------------------------------------
Alvaro Herrera wrote:
> En Wed, 25 Sep 2002 00:01:24 -0400
> Tom Lane <tgl@sss.pgh.pa.us> escribi?:
>
> > Alvaro Herrera <alvherre@atentus.com> writes:
> > > I'm looking at pg_dump/common.c:flagInhAttrs() and suspect that it can
> > > be more or less rewritten completely, and probably should to get rigth
> > > all the cases mentioned in the past attisinherited discussion. Is this
> > > desirable for 7.3? It can probably be hacked around and the rewrite
> > > kept for 7.4, but I think it will be much simpler after the rewrite.
> >
> > If it's a bug then it's fair game to fix in 7.3. But keep in mind that
> > pg_dump has to behave at least somewhat sanely when called against older
> > servers ... will your rewrite behave reasonably if the server does not
> > offer attinhcount values?
>
> Nah. I don't think it's worth it: I had forgotten that older versions
> should be supported. I just left the code as is and added a
> version-specific test.
>
> This patch allows pg_dump to dump correctly local definition of columns.
> In particular,
>
> CREATE TABLE p1 (f1 int, f2 int);
> CREATE TABLE p2 (f1 int);
> CREATE TABLE c () INHERITS (p1, p2);
> ALTER TABLE ONLY p1 DROP COLUMN f1;
> CREATE TABLE p3 (f1 int);
> CREATE TABLE c2 (f1 int) INHERITS (p3);
>
> Will be dumped as
> CREATE TABLE p1 (f2 int);
> CREATE TABLE p2 (f1 int);
> CREATE TABLE c (f1 int) INHERITS (p1, p2);
> CREATE TABLE c2 (f1 int) INHERITS (p3);
>
> (Previous version will dump
> CREATE TABLE c () INHERITS (p1, p2)
> CREATE TABLE c2 () INHERITS (p3) )
>
> --
> Alvaro Herrera (<alvherre[a]atentus.com>)
> A male gynecologist is like an auto mechanic who never owned a car.
> - Carrie Snow
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Patch applied. Thanks. --------------------------------------------------------------------------- Alvaro Herrera wrote: > En Wed, 25 Sep 2002 00:01:24 -0400 > Tom Lane <tgl@sss.pgh.pa.us> escribi?: > > > Alvaro Herrera <alvherre@atentus.com> writes: > > > I'm looking at pg_dump/common.c:flagInhAttrs() and suspect that it can > > > be more or less rewritten completely, and probably should to get rigth > > > all the cases mentioned in the past attisinherited discussion. Is this > > > desirable for 7.3? It can probably be hacked around and the rewrite > > > kept for 7.4, but I think it will be much simpler after the rewrite. > > > > If it's a bug then it's fair game to fix in 7.3. But keep in mind that > > pg_dump has to behave at least somewhat sanely when called against older > > servers ... will your rewrite behave reasonably if the server does not > > offer attinhcount values? > > Nah. I don't think it's worth it: I had forgotten that older versions > should be supported. I just left the code as is and added a > version-specific test. > > This patch allows pg_dump to dump correctly local definition of columns. > In particular, > > CREATE TABLE p1 (f1 int, f2 int); > CREATE TABLE p2 (f1 int); > CREATE TABLE c () INHERITS (p1, p2); > ALTER TABLE ONLY p1 DROP COLUMN f1; > CREATE TABLE p3 (f1 int); > CREATE TABLE c2 (f1 int) INHERITS (p3); > > Will be dumped as > CREATE TABLE p1 (f2 int); > CREATE TABLE p2 (f1 int); > CREATE TABLE c (f1 int) INHERITS (p1, p2); > CREATE TABLE c2 (f1 int) INHERITS (p3); > > (Previous version will dump > CREATE TABLE c () INHERITS (p1, p2) > CREATE TABLE c2 () INHERITS (p3) ) > > -- > Alvaro Herrera (<alvherre[a]atentus.com>) > A male gynecologist is like an auto mechanic who never owned a car. > - Carrie Snow [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073