Re: SRF in SFRM_ValuePerCall mode

Поиск
Список
Период
Сортировка
От dv @ nabble
Тема Re: SRF in SFRM_ValuePerCall mode
Дата
Msg-id 32D310430D0E494FBDF9029B644F61F8@dvhome
обсуждение исходный текст
Ответ на Re: SRF in SFRM_ValuePerCall mode  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: SRF in SFRM_ValuePerCall mode  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Heikki Linnakangas" <heikki@enterprisedb.com>
Cc: "dv @ nabble" <dvnabble@gmail.com>; "pgsql-hackers list" 
<pgsql-hackers@postgresql.org>
Sent: Monday, April 28, 2008 5:07 PM
Subject: Re: [HACKERS] SRF in SFRM_ValuePerCall mode


> "Heikki Linnakangas" <heikki@enterprisedb.com> 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();

You mean make the function return the only row?
This is not the functionality we need. What we want is to create a SETOF 
function that will
emulate a table and query this "table" with WHERE filter and LIMIT clauses 
to limit the row
count we want to return. We might pass the filter and the limit to the 
function, but we want to
implement it in more natural way.

Thanks,
Denis 



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: [SPAM] Re: Proposed patch - psql wraps at window width
Следующее
От: "Thomas Mueller"
Дата:
Сообщение: Re: Protection from SQL injection