Hi,

By default, PL/pgSQL does not print the error context of a RAISE statement, for example:

=# create function foof() returns void as $$ begin raise exception 'foo'; end $$ language plpgsql;
CREATE FUNCTION

=# create function bar() returns void as $$ begin perform foof(); end $$ language plpgsql;
CREATE FUNCTION

=# select bar();
ERROR:  foo
CONTEXT:  SQL statement "SELECT foof()"
PL/pgSQL function "bar" line 1 at PERFORM


I find this extremely surprising, since if you raise the same exception (or a DEBUG/NOTICE message) in multiple places, the error context is missing valuable information. With a trivial change the last error could be:

=# select bar();
ERROR:  foo
CONTEXT:  PL/pgSQL function "foof" line 1 RAISE
SQL statement "SELECT foof()"
PL/pgSQL function "bar" line 1 at PERFORM

which I find a lot better.

Thoughts?


Regards,
Marko Tiikkaja


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to