Re: pg_dumpall fails if a database name contains =

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: pg_dumpall fails if a database name contains =
Дата
Msg-id 5124E91A.5060206@vmware.com
обсуждение исходный текст
Ответ на pg_dumpall fails if a database name contains =  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Список 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 по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pg_dumpall fails if a database name contains =
Следующее
От: Claude Speed
Дата:
Сообщение: new BUG: "postgresql 9.2.3: very long query time"