summaryrefslogtreecommitdiff
path: root/src/pl/plpython/sql/plpython_call.sql
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-03-14 11:47:21 -0400
committerPeter Eisentraut <peter_e@gmx.net>2018-03-14 12:07:28 -0400
commit33803f67f1c4cb88733cce61207bbf2bd5b599cc (patch)
tree9ec962aebf50eb4b16a585f83f490d9a5aa6f677 /src/pl/plpython/sql/plpython_call.sql
parent484a4a08abe316212d67d84bb8705b06e44f862d (diff)
Support INOUT arguments in procedures
In a top-level CALL, the values of INOUT arguments will be returned as a result row. In PL/pgSQL, the values are assigned back to the input arguments. In other languages, the same convention as for return a record from a function is used. That does not require any code changes in the PL implementations. Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
Diffstat (limited to 'src/pl/plpython/sql/plpython_call.sql')
-rw-r--r--src/pl/plpython/sql/plpython_call.sql20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/pl/plpython/sql/plpython_call.sql b/src/pl/plpython/sql/plpython_call.sql
index 3fb74de5f07..2f792f92bd7 100644
--- a/src/pl/plpython/sql/plpython_call.sql
+++ b/src/pl/plpython/sql/plpython_call.sql
@@ -34,6 +34,26 @@ CALL test_proc3(55);
SELECT * FROM test1;
+-- output arguments
+
+CREATE PROCEDURE test_proc5(INOUT a text)
+LANGUAGE plpythonu
+AS $$
+return [a + '+' + a]
+$$;
+
+CALL test_proc5('abc');
+
+
+CREATE PROCEDURE test_proc6(a int, INOUT b int, INOUT c int)
+LANGUAGE plpythonu
+AS $$
+return (b * a, c * a)
+$$;
+
+CALL test_proc6(2, 3, 4);
+
+
DROP PROCEDURE test_proc1;
DROP PROCEDURE test_proc2;
DROP PROCEDURE test_proc3;