On 22 Oct 2015 7:56 PM, David G. Johnston wrote:
> On Thu, Oct 22, 2015 at 8:34 PM, <felipe@felipegasper.com
> <mailto:felipe@felipegasper.com>>wrote:
>
> The following bug has been logged on the website:
>
> Bug reference: 13702
> Logged by: Felipe Gasper
> Email address: felipe@felipegasper.com <mailto:felipe@felipegasper.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-=~!@#$%^&*()_+[]\{}|;:?,.<b><b> 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