From: Jordan S. Jones <list@racistnames.com>
To: Franco Bruno Borghesi <franco@akyasociados.com.ar>
To: pgsql-sql@postgresql.org
Subject: Re: returning composite types.
Date: Fri, 28 Mar 2003 17:32:03 -0700
Message-ID: <3E84E983.10206@racistnames.com> (raw)
In-Reply-To: <200303282020.25997.franco@akyasociados.com.ar>
References: <200303282020.25997.franco@akyasociados.com.ar>
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.
>
>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: list@racistnames.com, franco@akyasociados.com.ar
Subject: Re: returning composite types.
In-Reply-To: <3E84E983.10206@racistnames.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox