Re: SRFs ExecMakeTableFunctionResult

From: James William Pye <flaw(at)rhid(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: SRFs ExecMakeTableFunctionResult
Date: 2004-08-09 17:32:06
Message-ID: 20040809173206.GA18051@void.ph.cox.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Seems reasonable to me. A SRF function really ought to explicitly set
> isDone on every call anyway.

Aye, it seems reasonable, but a bit inconsistent with the effect of
ExecMakeFunctionResult, which does the same thing but bases the continuity of
the result gathering on the isDone pointer, which is set to
ExprMultipleResult if isDone is not ExprEndResult, thus making it continue
until rsinfo.isDone is explicitly set to ExprEndResult, unlike table
functions which will end on either SingleResult or EndResult.
(Around lines #941-984 in execQual.c)

Is this inconsistency desired?

My confusion came in when I implemented SRFs that worked with non-table
SRFs, and then table functions didn't work because I wasn't setting isDone
to MultipleResult every call.

--
Regards,
James William Pye

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 2004-08-09 17:44:59 Re: VACUUM DELAY
Previous Message Stefan Kaltenbrunner 2004-08-09 17:23:41 Tablespace issues (comment on ,moving indexes)