Re: BUG #7514: postgres -k no longer works with spaces in the path - Mailing list pgsql-bugs

From Peter Eisentraut
Subject Re: BUG #7514: postgres -k no longer works with spaces in the path
Date
Msg-id 5047D8C1.3080504@gmx.net
Whole thread Raw
In response to Re: BUG #7514: postgres -k no longer works with spaces in the path  (Murray Cumming <murrayc@murrayc.com>)
Responses Re: BUG #7514: postgres -k no longer works with spaces in the path  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #7514: postgres -k no longer works with spaces in the path  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On 9/4/12 2:22 PM, Murray Cumming wrote:
> On Tue, 2012-09-04 at 10:31 -0400, Tom Lane wrote:
>> murrayc@murrayc.com writes:
>>> At some point, probably in 9.1.5, the -k option to Postgres ("Unix-domain
>>> socket location" in --help), stopped accepting paths that contain spaces.
>>
>>> For instance,
>>> -k '/tmp/testglom2FPDKW/path with spaces/some_postgres_data'
>>
>>> It now fails with this error:
>>> FATAL:  invalid list syntax for "unix_socket_directories"
>>
>> Ah, you're using the latest Fedora packaging of 9.1.x, which includes a
>> back-ported version of the unix_socket_directories change that's in
>> HEAD.  -k now effectively takes a list of directory names, not just
>> one, and it's pickier about whitespace.
>>
>> IIRC, you can make it work if you put double quotes around the
>> space-containing name, so it'd look like this:
>>
>>     -k '"/blah blah blah"'
>
> Yes, thanks, that works for spaces, though it's rather odd.
>
> However, how should I now specify a path that has a " or a /, or \,
> which now cause similar errors with -k? Previously I could just use
> g_shell_quote() and forget about it:
> http://developer.gnome.org/glib/stable/glib-Shell-related-Utilities.html#g-shell-quote
>
> To be honest, I don't have much interest in, or understanding of, this
> -k option anyway. I just use it because, when starting my temporary
> postgresql instance, it otherwise defaults to /var/run/postgresql/ (at
> least in this distro build) which is not available to normal users. I
> currently just specify the same directory that the postgresql data is
> in. Maybe I should just use /tmp instead.

Maybe it would be easier if multiple -k options accumulated.  That would
make the whole quoting business easier, and it would avoid breaking
compatibility.

pgsql-bugs by date:

Previous
From: Marko Tiikkaja
Date:
Subject: Re: BUG #7516: PL/Perl crash
Next
From: Tom Lane
Date:
Subject: Re: BUG #7514: postgres -k no longer works with spaces in the path