returning dynamic record
Just wondering, if it is possible to do the following
create function foo() RETURNS Record(int, varchar, int)
then inside of the function return a set int, varchar, int.
Then be able to call the function
select * From foo()
instead of having to write
select * from foo() as (int, varchar, int)
or declaring a type?
nick <nick@walkerdatanet.com> writes:
Just wondering, if it is possible to do the following
create function foo() RETURNS Record(int, varchar, int)
OUT parameters (in reasonably recent PG releases).
regression=# create function foo (f1 out int, f2 out varchar, f3 out int) as
$$ select 42, 'foo'::varchar, 43 $$ language sql;
CREATE FUNCTION
regression=# select * from foo();
f1 | f2 | f3
----+-----+----
42 | foo | 43
(1 row)
regards, tom lane
Il Wednesday 07 November 2007 06:35:55 Tom Lane ha scritto:
nick <nick@walkerdatanet.com> writes:
Just wondering, if it is possible to do the following
create function foo() RETURNS Record(int, varchar, int)OUT parameters (in reasonably recent PG releases).
regression=# create function foo (f1 out int, f2 out varchar, f3 out int)
as $$ select 42, 'foo'::varchar, 43 $$ language sql;
CREATE FUNCTION
regression=# select * from foo();
f1 | f2 | f3
----+-----+----
42 | foo | 43
(1 row)regards, tom lane
Maybe
create function foo (f1 out int, f2 out varchar, f3 out int)
returns setof record as $body$
...
will return the set.
--
Reg me Please