Returning sets from functions?

From: mig(at)utdt(dot)edu
To: pgsql-sql(at)postgresql(dot)org
Subject: Returning sets from functions?
Date: 2000-04-23 14:15:20
Message-ID: 200004231415.LAA04384@ant.utdt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Consider
create function followers(text) returns setof text as
'select id from ids where id > $1 '
language 'sql';

The function seems to work OK:
select followers('h');
does return all indexes after the index 'h'.

On the other hand,
select * from ids where id in (select followers('h'));
produces the message
ERROR: An operand to the '=' operator returns a set of text,
but '=' takes single values, not sets.

Apparently the phrase
select followers('h');
returns a set with members which are 'setof text'. psql has no trouble
displaying all rows, but the parser does ...

So, my question is: can I produce a set in a function so that it
mimicks perfectly the return set of a select query?

I am using PG 6.5.3; is this already solved in the 7.0 beta?

Thanks

Miguel Sofer

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2000-04-23 14:57:45 Re: TOAST (was: BLOB)
Previous Message Peter Eisentraut 2000-04-23 13:48:26 Re: TOAST (was: BLOB)