plpgsql, Exception handling: catching the message ? - Mailing list pgsql-general

From Marc Mamin
Subject plpgsql, Exception handling: catching the message ?
Date
Msg-id C4DAC901169B624F933534A26ED7DF31034BB90F@JENMAIL01.ad.intershop.net
Whole thread Raw
Responses Re: plpgsql, Exception handling: catching the message ?  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-general
Hello,

In an exception block, we can check the error code.
Is there a way to get the message and possibly the detail too ?



ereport(ERROR, \
    (errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION), \
=>     errmsg("could not establish connection"), \
=>     errdetail("%s", msg))); \



background:  (Version 8.3.12)
dblink seems to sometimes only provides information of the remote
exception in the message, with a misleading errcode:


    select * from dblink_send_query ('c', 'create table my_share4( a
int)');
    select * from dblink_get_result('c') as t1(f1 text);


    ERROR:  sql error
    DETAIL:  ERROR:  relation "my_share4" already exists

    ********** Error **********

    ERROR: sql error
    SQL state: 42601     (<= SYNTAX ERROR)
    Detail: ERROR:  relation "my_share4" already exists  (=>
DUPLICATE TABLE)



best regards,

Marc Mamin



pgsql-general by date:

Previous
From: joe
Date:
Subject: Compare database tables in Postgres
Next
From: Pavel Stehule
Date:
Subject: Re: plpgsql, Exception handling: catching the message ?