Skip site navigation (1) Skip section navigation (2)

Re: libpq and error codes

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Dave Williss <dwilliss(at)microimages(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: libpq and error codes
Date: 2007-08-24 16:41:51
Message-ID: 2158.1187973711@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-interfaces
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,
psql.)

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 MeskesDate: 2007-08-25 09:21:41
Subject: Re: ecpg: HOW TO READ RECORD ??
Previous:From: Dave WillissDate: 2007-08-24 14:37:01
Subject: libpq and error codes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group