Thread: Re: [COMMITTERS] pgsql: libpq: Allow connection strings and URIs to specify multiple hos
Re: [COMMITTERS] pgsql: libpq: Allow connection strings and URIs to specify multiple hos
From
Michael Paquier
Date:
On Thu, Nov 3, 2016 at 10:46 PM, Robert Haas <rhaas@postgresql.org> wrote: > libpq: Allow connection strings and URIs to specify multiple hosts. > > It's also possible to specify a separate port for each host. > > Previously, we'd loop over every address returned by looking up the > host name; now, we'll try every address for every host name. > > Patch by me. Victor Wagner wrote an earlier patch for this feature, > which I read, but I didn't use any of his code. Review by Mithun Cy. While testing this feature I have bumped into the following restrictions: $ psql -d "port=5432,5433" psql: could not match 2 port numbers to 1 hosts $ psql -d "port=5432,5433 host=/tmp" psql: could not match 2 port numbers to 1 hosts However this works: $ psql -d "port=5432,5433 host=/tmp,/tmp" psql: could not connect to server: Connection refused Is the server running locally and accepting connections on Unixdomain socket "/tmp/.s.PGSQL.5432"? could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domainsocket "/tmp/.s.PGSQL.5433"? That's really user-unfriendly. Shouldn't libpq try in both cases to use the single entry provided by the user or the default available? I would imagine that for most users it would make sense to specify a single PGHOST but try to different ports, not all users run a single instance by server (though they should not). This makes me think that we should have a set of regression tests to test libpq URIs and connection strings, and the multi-host support in connection strings gives a stronger reason to have one IMO. -- Michael