I happened to notice that PQreset is documented thus: This function will close the connection to the server and attempt to reestablish a new connection to the same server, using all the same parameters previously used.
Since we invented multi-host connection parameters, a reasonable person would assume that "to the same server" means we promise to reconnect to the same host we selected the first time. There is no such guarantee though; the new connection attempt is done just like the first one, so it will select the first suitable server in the list. I think we should just drop that phrase. Alternatively we could decide that the code's behavior is buggy, but I don't think it is. If, say, the reason you need to reset is that your existing host died, you don't really want libpq to refuse to select an alternative server. regards, tom lane