Hello,
how should I retrieve the result from a function with some OUT
paramenters?
(PG is 8.3.7)
here a short example to illustrate my question:
CREATE OR REPLACE FUNCTION test (In a int, OUT b int, OUT c int) AS
$BODY$
BEGIN
b:=a+1;
c:=a+2;
raise notice 'done: %', a;
END
$BODY$
LANGUAGE 'plpgsql' IMMUTABLE
select column1, test(column1) FROM (values(1),(2)) foo
1, (2,3)
2, (3,4)
NOTICE: done: 1
NOTICE: done: 2
What I want is just
1,2,3
2,3,4
Following returns the expected result, but the function is called for
each OUT parameter:
select column1, (test(column1)).* FROM (values(1),(2)) foo
=>
1,2,3
2,3,4
NOTICE: done: 1
NOTICE: done: 1
NOTICE: done: 2
NOTICE: done: 2
Is there a way to avoid it ???
Thanks,
Marc Mamin