Re: PL/pgSQL, RAISE and error context
От | Pavel Stehule |
---|---|
Тема | Re: PL/pgSQL, RAISE and error context |
Дата | |
Msg-id | CAFj8pRDCQt9y_TJJhDtXouWbvgK=j6vYgLm7u9eqx==ma1cw-Q@mail.gmail.com обсуждение исходный текст |
Ответ на | PL/pgSQL, RAISE and error context (Marko Tiikkaja <marko@joh.to>) |
Список | pgsql-hackers |
2013/8/21 Marko Tiikkaja <marko@joh.to>
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.
+1
Pavel
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
В списке pgsql-hackers по дате отправления: