"Heikki Linnakangas" <[EMAIL PROTECTED]> writes:
> dv @ nabble wrote:
>> I am working on implementation of custom "C" SRF for our team. The SRF uses
>> SFRM_ValuePerCall mode. I know that sometimes even in SFRM_ValuePerCall 
>> mode
>> all the rows returned from SRF are "materialized" (for performing JOINs, 
>> for
>> example).

> Yep, they are unfortunately always materialized. Back when set returning 
> functions were implemented, the original patch did actually support true 
> "value per call" mode, where the whole result set was not materialized. 
> However, it was dropped because of some issues I can't remember off the 
> top of my head. The value-per-call API was committed, so that it was 
> already in place when someone gets around to implement the backend 
> support for it.

That's a rather revisionist view of history ;-)  Value-per-call mode has
always been there, just not in nodeFunctionscan.c.

If you're not joining to the function result, and you don't need the
ability to determine its result type on the fly, you could declare it
as returning a specific rowtype and then call it in the targetlist:

        select vpc();

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to