On 20.02.2013 16:19, Heikki Linnakangas wrote:
> ~/pgsql.92stable$ bin/createdb "foo=bar"
> ~/pgsql.92stable$ bin/pg_dumpall > /dev/null
> pg_dump: [archiver (db)] connection to database "(null)" failed: invalid
> connection option "foo"
> pg_dumpall: pg_dump failed on database "foo=bar", exiting
>
> There are two bugs above:
>
> 1. When pg_dumpall passes the database name to pg_dump as a command line
> argument, pg_dump interprets it as a connection string if it contains =.
Fixed this by passing the database name to pg_dump as a connection
string. That way pg_dump doesn't interpret the database name. So now
pg_dumpall calls pg_dump like this:
pg_dump ... "dbname='foo'"
instead of just
pg_dump ... "foo"
> 2. When you pass an invalid connection string to pg_dump, it passes a
> NULL pointer to printf when constructing the error message. It shows as
> "(null)" above, but would segfault on other platforms.
Fixed by printing an empty string instead of passing NULL to fprintf.
- Heikki