From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Yves Vindevogel <yves(dot)vindevogel(at)implements(dot)be> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Stored Procedure |
Date: | 2005-11-22 18:59:42 |
Message-ID: | 20051122185941.GA18102@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Tue, Nov 22, 2005 at 07:29:37PM +0100, Yves Vindevogel wrote:
> Is there another way in PG to return a recordset from a function than
> to declare a type first ?
In 8.1 some languages support OUT and INOUT parameters.
CREATE FUNCTION foo(IN x integer, INOUT y integer, OUT z integer) AS $$
BEGIN
y := y * 10;
z := x * 10;
END;
$$ LANGUAGE plpgsql IMMUTABLE STRICT;
SELECT * FROM foo(1, 2);
y | z
----+----
20 | 10
(1 row)
CREATE FUNCTION fooset(IN x integer, INOUT y integer, OUT z integer)
RETURNS SETOF record AS $$
BEGIN
y := y * 10;
z := x * 10;
RETURN NEXT;
y := y + 1;
z := z + 1;
RETURN NEXT;
END;
$$ LANGUAGE plpgsql IMMUTABLE STRICT;
SELECT * FROM fooset(1, 2);
y | z
----+----
20 | 10
21 | 11
(2 rows)
--
Michael Fuhr
From | Date | Subject | |
---|---|---|---|
Next Message | Anjan Dave | 2005-11-22 19:23:34 | Re: High context switches occurring |
Previous Message | Jim Buttafuoco | 2005-11-22 18:42:53 | Re: Stored Procedure |