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.