Skip site navigation (1) Skip section navigation (2)

Re: Stored Procedure

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 (view raw or flat)
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

In response to

Responses

pgsql-performance by date

Next:From: Anjan DaveDate: 2005-11-22 19:23:34
Subject: Re: High context switches occurring
Previous:From: Jim ButtafuocoDate: 2005-11-22 18:42:53
Subject: Re: Stored Procedure

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group