From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Cc: | "Jehan-Guillaume (ioguix) de Rorthais" <jgdr(at)dalibo(dot)com>, Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> |
Subject: | Bug in -c CLI option of pg_dump/pg_restore |
Date: | 2012-10-13 14:47:06 |
Message-ID: | 1350139626.3053.9.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
One of my colleagues, Jehan-Guillaume de Rorthais, found a weird
behaviour of the "-c" command line option in the pg_restore tool while
doing a training. Here is the following steps he followed:
createdb foo
<adds a few objets in foo>
pg_dump -Fc foo > foo.dump
createdb bar
pg_restore -c -d bar foo.dump
bar contains the same objects as foo (nothing unusual here), but... foo
is no longer present. Actually, if you use the "-c" command line option,
you get a "DROP DATABASE" statement. To me, it feels like a quite
terrible bug.
It's quite easy to reproduce. Just create a database, and use pg_dump
with the "-c" option:
createdb foo
pg_dump -s -c foo | grep DATABASE
and you end up with this:
DROP DATABASE foo;
I tried from 8.3 till 9.2, and only 9.2 has this behaviour.
You'll find attached a patch that fixes this issue. Another colleague,
Gilles Darold, tried it in every possible way, and it works. I'm not
sure the test I added makes it a very good patch, but it fixes the bug.
Regards.
--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com
Attachment | Content-Type | Size |
---|---|---|
bug_dropping_database.patch | text/x-patch | 709 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2012-10-13 15:17:32 | Re: Adding comments for system table/column names |
Previous Message | Satoshi Nagayasu | 2012-10-13 14:34:12 | Re: pg_stat_lwlocks view - lwlocks statistics, round 2 |