"Tom Lane" <[EMAIL PROTECTED]> writes:
> Gregory Stark <[EMAIL PROTECTED]> writes:
>> You're almost there:
>
>> CREATE FUNCTION getfoo (IN int, OUT int, OUT int) returns setof
>> record(int,int) AS $$
>> SELECT fooid, foosubid FROM foo WHERE fooid = $1;
>> $$ LANGUAGE SQL;
>
> Not quite --- it's just "returns setof record". The output column types
> are defined by the OUT parameters. The only reason you need the returns
> clause is to have a place to stick the "setof" specification ...
ok...
I did test my example before posting it:
postgres=# postgres=# CREATE or replace FUNCTION getfoo (IN int, OUT int, OUT
int) returns setof record(int,int)AS $$
SELECT 1,2 union all select 2,3;
$$ LANGUAGE SQL;
postgres$# postgres$# CREATE FUNCTION
postgres=# postgres=# select * from getfoo(1);
column1 | column2
---------+---------
1 | 2
2 | 3
(2 rows)
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's 24x7 Postgres support!
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend