mirror of
https://github.com/postgres/postgres.git
synced 2025-12-12 02:37:31 +03:00
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>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user