On 9/4/12 2:22 PM, Murray Cumming wrote: > On Tue, 2012-09-04 at 10:31 -0400, Tom Lane wrote: >> murr...@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. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs