Обсуждение: BUG #6024: pg_dump won't dump ALTERed inherited fields

Поиск
Список
Период
Сортировка

BUG #6024: pg_dump won't dump ALTERed inherited fields

От
"Panos Christeas"
Дата:
The following bug has been logged online:

Bug reference:      6024
Logged by:          Panos Christeas
Email address:      xrg@linux.gr
PostgreSQL version: 9.0, 8.4
Operating system:   Linux
Description:        pg_dump won't dump ALTERed inherited fields
Details:

CREATE TABLE test1(
    id SERIAL PRIMARY KEY,
    name VARCHAR(20) NOT NULL
    );

CREATE TABLE test2(
    description TEXT
    ) INHERITS(test1);

ALTER TABLE test2 ALTER name DROP NOT NULL;

pg_dump that.
The dump will still have "not null" constraint at test2.name.

Re: BUG #6024: pg_dump won't dump ALTERed inherited fields

От
Tom Lane
Дата:
"Panos Christeas" <xrg@linux.gr> writes:
> CREATE TABLE test1(
>     id SERIAL PRIMARY KEY,
>     name VARCHAR(20) NOT NULL
>     );

> CREATE TABLE test2(
>     description TEXT
>     ) INHERITS(test1);

> ALTER TABLE test2 ALTER name DROP NOT NULL;

> pg_dump that.
> The dump will still have "not null" constraint at test2.name.

This isn't really a pg_dump deficiency.  The bug is that we let you do
that ALTER.  Inherited constraints shouldn't be droppable, and indeed
are not droppable except in the single case of NOT NULL.  This is on the
to-fix list --- in fact there was a patch submitted for it last year,
although it got returned for rework and we've not seen it again yet.

            regards, tom lane

Re: BUG #6024: pg_dump won't dump ALTERed inherited fields

От
"P. Christeas"
Дата:
On Thursday 12 May 2011, you wrote:
> "Panos Christeas" <xrg@linux.gr> writes:
> > CREATE TABLE test1(id SERIAL PRIMARY KEY,
> >     name VARCHAR(20) NOT NULL);
> > CREATE TABLE test2(description TEXT) INHERITS(test1);
> > ALTER TABLE test2 ALTER name DROP NOT NULL;
> >
> > pg_dump that.
> > The dump will still have "not null" constraint at test2.name.
>
> This isn't really a pg_dump deficiency.  The bug is that we let you do
> that ALTER.  Inherited constraints shouldn't be droppable, and indeed
> are not droppable except in the single case of NOT NULL.  This is on the
> to-fix list --- in fact there was a patch submitted for it last year,
> although it got returned for rework and we've not seen it again yet.
>

That's fine for me. Just as long as pg_dump is consistent* with what the schema
can be.

Perhaps, some errata or warning in the documentation would do, too. (is there
any, already? )

* however, do consider that old servers will still be able to hold such
inconsistent (I admit it) data; we can't apply that behavior to them.


--
Say NO to spam and viruses. Stop using Microsoft Windows!

Re: BUG #6024: pg_dump won't dump ALTERed inherited fields

От
Bernd Helmle
Дата:
--On 12. Mai 2011 11:24:13 -0400 Tom Lane <tgl@sss.pgh.pa.us> wrote:

> This is on the
> to-fix list --- in fact there was a patch submitted for it last year,
> although it got returned for rework and we've not seen it again yet.

Yes, I didn't manage to provide a completed patch for 9.1...will try to
re-submit for 9.2, it's on my radar again.

--
Thanks

    Bernd