Andres Freund <andres@anarazel.de> writes:
> On 2016-05-25 15:02:23 -0400, Tom Lane wrote:
>> [ shrug... ] That seems like it's morally equivalent to (but uglier than)
>> what I wanted to do, which is to teach the planner to rewrite the query to
>> put the SRFs into a lateral FROM item. Splitting the tlist into two
>> levels will work out to be exactly the same rewriting problem.
> I think that depends on how bug compatible we want to be. It seems
> harder to get the (rather odd!) lockstep iteration behaviour between two
> SRFS with the LATERAL approach?
We could certainly make a variant behavior in nodeFunctionscan.c that
emulates that, if we feel that being exactly bug-compatible on the point
is actually what we want. I'm dubious about that though, not least
because I don't think *anyone* actually believes that that behavior isn't
broken. Did you read my upthread message suggesting assorted compromise
choices?
regards, tom lane