diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-03-14 11:47:21 -0400 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-03-14 12:07:28 -0400 |
commit | 33803f67f1c4cb88733cce61207bbf2bd5b599cc (patch) | |
tree | 9ec962aebf50eb4b16a585f83f490d9a5aa6f677 /src/pl/plpython/sql/plpython_call.sql | |
parent | 484a4a08abe316212d67d84bb8705b06e44f862d (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.sql | 20 |
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; |