I never saw a followup to this. Is someone working on a ping protocol extension, or should we revert pg_ctl to using template1 on the ground that it does a poor man's ping anyway?

cheers

andrew

Andrew Dunstan wrote:



Tom Lane wrote:

Andrew Dunstan <[EMAIL PROTECTED]> writes:
I now notice that "pg_ctl -w start" fails if the postgres db is missing. I am not sure that changing pg_ctl to use this rather than template1 was a good thing, and it can't be overridden. I suggest we revert that particular change - it seems to me to confer little to no benefit, unlike the case with createdb etc.


pg_ctl -w is already incredibly fragile because it needs a working
password-free login name.  Rather than worrying about whether the
database name exists, what we ought to do is invent the long-awaited
"ping" extension to the postmaster protocol --- something that would
just ask "are you up and ready to accept connections" without having
to specify a valid user *or* database name.

You can sort of do this today if you are willing to examine the error
message that comes back from the postmaster, but I think it'd be cleaner
to have an official protocol extension.


Actually, it looks like pg_ctl already does this:

       if ((conn = PQsetdbLogin(NULL, portstr, NULL, NULL,
                                "postgres", NULL, NULL)) != NULL &&
           (PQstatus(conn) == CONNECTION_OK ||
            (strcmp(PQerrorMessage(conn),
                    PQnoPasswordSupplied) == 0)))
       {
           PQfinish(conn);
           success = true;
           break;
       }



---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to