On 09/24/2010 11:11 AM, Tom Lane wrote:
Andrew Dunstan<and...@dunslane.net> writes:
On 09/24/2010 10:15 AM, Magnus Hagander wrote:
In that case, we should probably teach pg_ctl about this case, no?
Since it clearly gives an incorrect message to the user now...
pg_ctl decides that the server is running iff it can connect to it. Do
you intend to provide for a different test?
Seems like getting a password challenge from the server is sufficient
evidence that the server is running, whether we are able to meet the
challenge or not. Perhaps we could just twiddle pg_ctl's "is it up"
test a bit to notice whether the connect failure was of this sort.
pg_ctl does in fact use that sort of logic:
if ((conn = PQconnectdb(connstr)) != NULL &&
(PQstatus(conn) == CONNECTION_OK ||
PQconnectionNeedsPassword(conn)))
But of course, libpq won't set that last condition if there is a bad
password in the pgpass file, which seems a rather perverse thing to do.
cheers
andrew