Thread: v8.1: Error severity on libpq PGconn*

v8.1: Error severity on libpq PGconn*

From
Jeffrey Brendecke
Date:
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
toovague 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
thepreceeding 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
tohave never been implemented. 

Thanks very much.



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


Re: v8.1: Error severity on libpq PGconn*

From
Tom Lane
Date:
Jeffrey Brendecke <yakhki@yahoo.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
aPGresult* 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


Re: v8.1: Error severity on libpq PGconn*

From
Bruce Momjian
Date:
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@yahoo.de> writes:
> > Is there a recommended way to get the error severity (ERROR vs. FATAL vs. PANIC, etc.) off a PGconn* as there is
fora 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@postgresql.org so that your
>        message can get through to the mailing list cleanly

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +