Fabien COELHO <coe...@cri.ensmp.fr> writes: > About the behavior from psql point of view:
> * if dns works, error messages are only printed if all attempts failed: > But nothing shows if one succeeds at some point. I understand that libpq > is doing its job, but I'm wondering whether this is the best behavior. Yeah, this is the behavior that was established by the multi-host patch to begin with. This patch just extends that to treat DNS failures the same way as we already treated other connection problems. > Maybe the user would like to know that attempts are made and are failing? > This would suggest some callback mecanism so that the client is informed > of in progress issues? Maybe this is for future work. Well, the application can already tell that if it wishes to, by noting whether PQhost/PQport return the values for the first alternative or later ones. Not sure that we need anything more. > * when the password is required, there is no way to know for which host/ip > it is: Again, I'm not here to re-litigate API decisions that were made in connection with the multi-host patch. What was decided (and documented) at that point was that if you don't want to have the same password for all the hosts in question, you need to use ~/.pgpass to supply per-host passwords. In practice, I'm not sure this matters too much. It's hard to conceive of a practical use-case in which all the target hosts aren't interchangeable from the application's/user's standpoint. That's why there's little or no provision for varying the other conn parameters per-host. We could imagine future extensions to libpq to allow some or all of the rest of them to be comma-separated lists, but I'm content to wait for a compelling use-case to be shown before doing that work. > atoi("5432+1") == 5432, so the port syntax check is loose, really. libpq has always parsed port parameters that way. Tightening it now is not likely to earn us any thanks. regards, tom lane