summaryrefslogtreecommitdiff
path: root/src/test/regress/sql/plpgsql.sql
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2005-05-26 00:16:31 +0000
committerBruce Momjian <bruce@momjian.us>2005-05-26 00:16:31 +0000
commit38af680ad51d98e895f1968c6cc9f808c88a7725 (patch)
tree499a4092e18798009689ca435796df46b9b22265 /src/test/regress/sql/plpgsql.sql
parent8c792fe9cbe1dcfdafcdc70b961be714631324ec (diff)
downloadpostgresql-38af680ad51d98e895f1968c6cc9f808c88a7725.tar.gz
Add PL/pgSQL SQLSTATE and SQLERRM support which sets these values on
error. Pavel Stehule
Diffstat (limited to 'src/test/regress/sql/plpgsql.sql')
-rw-r--r--src/test/regress/sql/plpgsql.sql20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/regress/sql/plpgsql.sql b/src/test/regress/sql/plpgsql.sql
index 7ea7c8c6e0..e2ef2ec5fe 100644
--- a/src/test/regress/sql/plpgsql.sql
+++ b/src/test/regress/sql/plpgsql.sql
@@ -2018,3 +2018,23 @@ select missing_return_expr();
drop function void_return_expr();
drop function missing_return_expr();
+-- test SQLSTATE and SQLERRM
+create or replace function trap_exceptions() returns void as $_$
+begin
+ begin
+ raise exception 'first exception';
+ exception when others then
+ raise notice '% %', SQLSTATE, SQLERRM;
+ end;
+ raise notice '% %', SQLSTATE, SQLERRM;
+ begin
+ raise exception 'last exception';
+ exception when others then
+ raise notice '% %', SQLSTATE, SQLERRM;
+ end;
+ return;
+end; $_$ language plpgsql;
+
+select trap_exceptions();
+
+drop function trap_exceptions();