Re: BUG #13702: pg_dump interprets “=” in a db name incorrectly

From: Felipe Gasper <felipe(at)felipegasper(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #13702: pg_dump interprets “=” in a db name incorrectly
Date: 2015-10-23 01:30:20
Message-ID: 56298DAC.3070906@felipegasper.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 22 Oct 2015 7:56 PM, David G. Johnston wrote:
> On Thu, Oct 22, 2015 at 8:34 PM, <felipe(at)felipegasper(dot)com
> <mailto:felipe(at)felipegasper(dot)com>>wrote:
>
> The following bug has been logged on the website:
>
> Bug reference: 13702
> Logged by: Felipe Gasper
> Email address: felipe(at)felipegasper(dot)com <mailto:felipe(at)felipegasper(dot)com>
> PostgreSQL version: Unsupported/Unknown
> Operating system: Linux
> Description:
>
> For the purposes of an administrative frontend that I help
> develop/maintain,
> I have a database named:
>
> --------------
> abcde_1234567890-=~!(at)#$%^&*()_+[]\{}|;:?,.<b>&lt;b&gt; spaces
> --------------
>
> When I try to back up this DB via pg_dump, the utility appears to
> split the
> DB name on the “=”, thinking that it’s another command-line option.
>
> I’ve tried passing in “--”, but no joy. I tried passing “--dbname”
> then the
> DB name, but pg_dump doesn’t seem to accept that argument.
>
>
> "--dbname=..." ​Documented 9.3 and above​
>
>
> The only working solution I have found is to set the DB name in
> PGDATABASE.
>
> I found this in 9.0.18. Maybe it’s still a problem in supported
> releases,
> too?
>
>
> It was decided to make the database name in this situation be an
> abstract concept as opposed to strictly referring to a named database.
> Because of this the equal sign has a special meaning that, apparently,
> cannot be overridden.
>
> You may want to consider URI format - the following appears to work (9.3
> tested)
>
> psql postgres:///db=123
> >psql: FATAL: database "db=123" does not exist
>

Interesting -- also, in 9.0 I *can* do:

dbname='...'

… and it works. Undocumented, apparently (?), but it does the job.

But, I actually have to support all the way back to 8.1, and I’m a bit
leery of relying on undocumented (?) features for our backup
functionality. Hopefully down the road we can just move everything to
>=9.3, and peace and love will reign. :)

Thank you!

-Felipe Gasper
Houston, TX

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2015-10-23 02:59:27 Re: Re: [BUGS] BUG #13611: test_postmaster_connection failed (Windows, listen_addresses = '0.0.0.0' or '::')
Previous Message David G. Johnston 2015-10-23 01:10:44 Re: [BUGS] BUG #13702: pg_dump interprets “=” in a db name incorrectly