Re: pg_dumpall fails if a database name contains = - Mailing list pgsql-bugs

From Heikki Linnakangas
Subject Re: pg_dumpall fails if a database name contains =
Date
Msg-id 5124E91A.5060206@vmware.com
Whole thread Raw
In response to pg_dumpall fails if a database name contains =  (Heikki Linnakangas <hlinnakangas@vmware.com>)
List pgsql-bugs
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

pgsql-bugs by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pg_dumpall fails if a database name contains =
Next
From: Claude Speed
Date:
Subject: new BUG: "postgresql 9.2.3: very long query time"