Hello, On Fri, Aug 24, 2018 at 11:22:47AM +0200, Fabien COELHO wrote: > Attached is a rebase after 5ca00774.
I looked a little bit the patch. And I have a few notes. > However, the actual capability is slightly different: specifying an ip > address to "host" does work, without ensuing any name or reverse name > look-ups, even if this is undocumented. Agree it may have more details within the documentation. > sh> psql "host=/tmp hostaddr=127.0.0.1" Yeah this example shows that user may be confused by output of \conninfo. I think it is psql issue and libpq issue. psql in exec_command_conninfo() rely only on the PQhost() result. Can we add a function PQhostType() to solve this issue? > sh> psql "host=127.0.0.2 hostaddr=127.0.0.1" I'm not sure that is is the issue. User defined the host name and psql show it. > sh> psql "hostaddr=127.0.0.1" I cannot reproduce it. It gives me the message: You are connected to database "artur" as user "artur" on host "127.0.0.1" at port "5432". I think it is because of the environment (I didn't define PGHOST variable, for example). If so, depending on PGHOST variable value ("/tmp" or "127.0.0.1") it is related with first or second issue. > * Another issue with \conninfo is that if a host resolves to multiple ips, > there is no way to know which was chosen and/or worked, although on errors > some messages show the failing ip. Can you explain it please? You can use PQhost() to know choosed host. > * The documentation about host/hostaddr/port accepting lists is really > added as an afterthought: the features are presented for one, and then the > list is mentionned. I cannot agree with you. When I've learned libpq before I found host/hostaddr rules description useful. And I disagree that it is good to remove it (as the patch does). Of course it is only my point of view and others may have another opinion. > (3) checking that hostaddr non empty addresses are only accepted if the > corresponding host is a name. The user must use the "host=ip" syntax > to connect to an ip. Patch gives me an error if I specified only hostaddr: psql -d "hostaddr=127.0.0.1" psql: host "/tmp" cannot have an hostaddr "127.0.0.1" It is wrong, because I didn't specified host=/tmp. -- Arthur Zakirov Postgres Professional: http://www.postgrespro.com Russian Postgres Company