Re: returning composite types.

From: "Jordan S(dot) Jones" <list(at)racistnames(dot)com>
To: Franco Bruno Borghesi <franco(at)akyasociados(dot)com(dot)ar>, pgsql-sql(at)postgresql(dot)org
Subject: Re: returning composite types.
Date: 2003-03-29 00:32:03
Message-ID: 3E84E983.10206@racistnames.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Here is how I have been doing mine:

CREATE FUNCTION "myFunction" () RETURNS SETOF mytype
AS
'
DECLARE
r mytype%ROWTYPE;
BEGIN
FOR r IN [SELECT STATEMENT]
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END;
'
LANGUAGE 'plpgsql';

Hope this Helps..

Jordan S. Jones

Franco Bruno Borghesi wrote:

>Hi guys.
>
>I'm working with functions in my database, using plpgsql, but I reached a
>point where I realize I'm missing a concept: how do I return composite types
>from a function? I'll give you an example:
>
>CREATE TYPE mytype AS(
> val1 INTEGER,
> val2 INTEGER,
> val3 INTEGER,
> val4 INTEGER
>);
>
>If I want my function to return a "mytype" type, should I declare it as:
>CREATE FUNCTION myFunction() RETURNS mytype AS ...
>or maybe
>CREATE FUNCTION myFunction() RETURNS SETOF mytype AS ...
>
>and in any case, inside the function, how should I declare the variable
>holding the return value?:
>
>DECLARE
> result mytype;
>BEGIN
>...
> RETURN result;
>END;
>
>or maybe
>
>DECLARE
> result mytype%ROWTYPE;
>BEGIN
>...
> RETURN result;
>END;
>
>I've read the documentation and the examples in it, but I still don't
>understand what the right way is. If you could give an example of a function
>filling "mytipe" and returning it, it would really help me.
>
>Thanks in advance.
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Franco Bruno Borghesi 2003-03-29 16:20:05 Re: returning composite types.
Previous Message Franco Bruno Borghesi 2003-03-28 23:40:58 Re: Stored procedures