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 по дате отправления: