v8.1: Error severity on libpq PGconn*

Lists: pgsql-interfaces
From: Jeffrey Brendecke <yakhki(at)yahoo(dot)de>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: v8.1: Error severity on libpq PGconn*
Date: 2007-11-26 23:52:50
Message-ID: 315963.85252.qm@web26909.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Is there a recommended way to get the error severity (ERROR vs. FATAL vs. PANIC, etc.) off a PGconn* as there is for a PGresult* using PQresultErrorField()?

For example, when I pass in a non-existent database name when creating a connection, I get the following message:

FATAL: database "xxxxxx" does not exist

as returned by PQerrorMessage().

This message format does not fit into my messaging framework and the status returned from PQstatus() is unfortunately too vague to be of use in this regard.

I would like to avoid parsing the message, chopping off the text up to the double space, and do some sort of lookup on the preceeding localized text to determine the severity.

The 8.1 docs say there is no PQerrorField() function and the 8.2 and 8.3 docs make the same disclaimer.

I saw some mails back from 2003 in the archives that seem to propose such a solution as PQerrorField(), but it appears to have never been implemented.

Thanks very much.

__________________________________ Ihre erste Baustelle? Wissenswertes für Bastler und Hobby Handwerker. www.yahoo.de/clever


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jeffrey Brendecke <yakhki(at)yahoo(dot)de>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: v8.1: Error severity on libpq PGconn*
Date: 2007-11-27 02:24:33
Message-ID: 8904.1196130273@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Jeffrey Brendecke <yakhki(at)yahoo(dot)de> writes:
> Is there a recommended way to get the error severity (ERROR vs. FATAL vs. PANIC, etc.) off a PGconn* as there is for a PGresult* using PQresultErrorField()?
> For example, when I pass in a non-existent database name when creating a connection, I get the following message:

> FATAL: database "xxxxxx" does not exist

What you're really wishing here is that errors generated within libpq
itself had SQLSTATE and other decoration. They don't :-(. Improving
this is on the to-do list, but someone is going to have to sit down and
do several days/weeks of hard and mostly-boring work to make it happen.
Do you want to volunteer?

regards, tom lane


From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Jeffrey Brendecke <yakhki(at)yahoo(dot)de>, pgsql-interfaces(at)postgresql(dot)org
Subject: Re: v8.1: Error severity on libpq PGconn*
Date: 2008-03-07 17:54:05
Message-ID: 200803071754.m27Hs5k21135@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces


Added to TODO:

o Add SQLSTATE severity to PGconn return status

http://archives.postgresql.org/pgsql-interfaces/2007-11/msg00015.php

---------------------------------------------------------------------------

Tom Lane wrote:
> Jeffrey Brendecke <yakhki(at)yahoo(dot)de> writes:
> > Is there a recommended way to get the error severity (ERROR vs. FATAL vs. PANIC, etc.) off a PGconn* as there is for a PGresult* using PQresultErrorField()?
> > For example, when I pass in a non-existent database name when creating a connection, I get the following message:
>
> > FATAL: database "xxxxxx" does not exist
>
> What you're really wishing here is that errors generated within libpq
> itself had SQLSTATE and other decoration. They don't :-(. Improving
> this is on the to-do list, but someone is going to have to sit down and
> do several days/weeks of hard and mostly-boring work to make it happen.
> Do you want to volunteer?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +