returning composite types.

From: Franco Bruno Borghesi <franco(at)akyasociados(dot)com(dot)ar>
To: pgsql-sql(at)postgresql(dot)org
Subject: returning composite types.
Date: 2003-03-28 23:20:25
Message-ID: 200303282020.25997.franco@akyasociados.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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.

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Franco Bruno Borghesi 2003-03-28 23:40:58 Re: Stored procedures
Previous Message Zodiac 2003-03-28 22:31:46 Stored procedures