Inconsistent treatment of serials in pg_dump
All,
Just encountered this:
create table josh ( id serial not null, desc text );
pg_dump -Fc -T josh -f no_josh_dump postgres
pg_dump -Fc -t josh -f josh_dump postgres
pg_restore -d new no_josh_dump
pg_restore -d new josh_dump
pg_restore: [archiver (db)] Error from TOC entry 2645; 1259 49910
SEQUENCE josh_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation
"josh_id_seq" already exists
It seems that if I exclude a table using -T, its dependant sequences do
not get excluded. But if I include it using -t, its dependent sequences
*do* get included.
Is there a reason this is a good idea, or is it just an oversight?
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
Josh Berkus <josh@agliodbs.com> writes:
It seems that if I exclude a table using -T, its dependant sequences do
not get excluded. But if I include it using -t, its dependent sequences
*do* get included.
Is there a reason this is a good idea, or is it just an oversight?
It's not immediately clear to me that those switches ought to be exact
inverses.
As a counterexample, consider the case where multiple tables share the
same sequence. Suppressing one of the tables with -T ought not lead to
suppressing the sequence.
regards, tom lane
As a counterexample, consider the case where multiple tables share the
same sequence. Suppressing one of the tables with -T ought not lead to
suppressing the sequence.
Now, that's a good point. And I don't expect that pg_dump can
distinguish between a serial and an sequence with a dependency?
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
Excerpts from Josh Berkus's message of lun may 09 16:43:10 -0400 2011:
Now, that's a good point. And I don't expect that pg_dump can
distinguish between a serial and an sequence with a dependency?
They're the same thing, so no.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support