Dave Williss <dwilliss(at)microimages(dot)com> writes:
> I can't seem to find a reliable way to determine if the error from a
> call to PQconnectdb is due to an invalid username/password. I can call
> PQstatus and it tells me CONNECTION_BAD, which I'd expect, and then
> PQerrorMessage gives me a plain text message that explains the reason, but
> error messages can be localized. A different version of PostgreSQL may
> decide to change the wording, so just doing a string comparison on the
> error message won't cut it.
Actually, in current releases you can --- the bad-password message is
deliberately not localized so that this is possible. Compare to the
PQnoPasswordSupplied #define provided by libpq-fe.h. (You can find
examples of this if you look into the source code for, for example,
Of course, that pretty much sucks. As of 8.3 there will be a status
function PQconnectionUsedPassword() to provide a cleaner API for
deciding whether you should issue a password prompt.
The more general idea that we should associate SQLStates with each
distinct error report inside libpq is still far off, I'm afraid.
It's a big job and no one has shown interest in tackling it.
regards, tom lane
In response to
pgsql-interfaces by date
|Next:||From: Michael Meskes||Date: 2007-08-25 09:21:41|
|Subject: Re: ecpg: HOW TO READ RECORD ??|
|Previous:||From: Dave Williss||Date: 2007-08-24 14:37:01|
|Subject: libpq and error codes|