Re: List of hostaddrs not supported

Mithun Cy <mithun.cy@enterprisedb.com>

From: Mithun Cy <mithun.cy@enterprisedb.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: "David G. Johnston" <david.g.johnston@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-06-09T10:22:20Z
Lists: pgsql-hackers
On Fri, Jun 9, 2017 at 3:22 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
> Hmm, there is one problem with our current use of comma as a separator:
you
> cannot use a Unix-domain socket directory that has a comma in the name,
> because it's interpreted as multiple hostnames. E.g. this doesn't work:
>
> psql "host=/tmp/dir,with,commas"
>
> For hostnames, ports, and network addresses (hostaddr), a comma is not a
> problem, as it's not a valid character in any of those.
>
> I don't know if that was considered when this patch was developed. I
> couldn't find a mention of this in the archives. But in any case, that's
> quite orthogonal to the rest of this thread.

I think this was found earlier [1]. But It appeared difficult to fix
without breaking other API's behavior [2]

[1] UDS with comma in name
<https://www.postgresql.org/message-id/CAD__OujtKhMV9kQhQ2sgWV9EyzSv_Gwd7Kd%3DP1Lq%2B0z8xhW1RQ%40mail.gmail.com>
[2] Fix for comma in UDS path
<https://www.postgresql.org/message-id/CAD__Ouj-13zkmkm6CX7dW3UE%2BOaAHvaOB9Yx-bYj4yOHmsJ_FQ%40mail.gmail.com>

Commits

  1. Fix check for empty hostname.

  2. Allow multiple hostaddrs to go with multiple hostnames.

  3. Silence warning about uninitialized 'ret' variable on some compilers.

  4. Give a better error message on invalid hostaddr option.