Bug in -c CLI option of pg_dump/pg_restore
Guillaume Lelarge <guillaume@lelarge.info>
From: Guillaume Lelarge <guillaume@lelarge.info>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: "Jehan-Guillaume (ioguix) de Rorthais" <jgdr@dalibo.com>, Gilles Darold <gilles.darold@dalibo.com>
Date: 2012-10-13T14:47:06Z
Lists: pgsql-hackers
Attachments
- bug_dropping_database.patch (text/x-patch) patch
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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Rewrite --section option to decouple it from --schema-only/--data-only.
- 4317e0246c64 9.2.0 cited