aboutsummaryrefslogtreecommitdiff
path: root/src/pl/plpython/expected/plpython_error_0.out
diff options
context:
space:
mode:
Diffstat (limited to 'src/pl/plpython/expected/plpython_error_0.out')
-rw-r--r--src/pl/plpython/expected/plpython_error_0.out22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/pl/plpython/expected/plpython_error_0.out b/src/pl/plpython/expected/plpython_error_0.out
index b2194ffccfb..6cb2ed091bf 100644
--- a/src/pl/plpython/expected/plpython_error_0.out
+++ b/src/pl/plpython/expected/plpython_error_0.out
@@ -351,6 +351,28 @@ CONTEXT: PL/Python function "specific_exception"
(1 row)
+/* SPI errors in PL/Python functions should preserve the SQLSTATE value
+ */
+CREATE FUNCTION python_unique_violation() RETURNS void AS $$
+plpy.execute("insert into specific values (1)")
+plpy.execute("insert into specific values (1)")
+$$ LANGUAGE plpythonu;
+CREATE FUNCTION catch_python_unique_violation() RETURNS text AS $$
+begin
+ begin
+ perform python_unique_violation();
+ exception when unique_violation then
+ return 'ok';
+ end;
+ return 'not reached';
+end;
+$$ language plpgsql;
+SELECT catch_python_unique_violation();
+ catch_python_unique_violation
+-------------------------------
+ ok
+(1 row)
+
/* manually starting subtransactions - a bad idea
*/
CREATE FUNCTION manual_subxact() RETURNS void AS $$