Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2017-01-24 21:32:56 -0300, Alvaro Herrera wrote: > >> XMLTABLE is specified by the standard to return multiple rows ... but > >> then as far as my reading goes, it is only supposed to be supported in > >> the range table (FROM clause) not in the target list. I wonder if > >> this would end up better if we only tried to support it in RT. I asked > >> Pavel to implement it like that a few weeks ago, but ... > > > Right - it makes sense in the FROM list - but then it should be an > > executor node, instead of some expression thingy. > > +1 --- we're out of the business of having simple expressions that > return rowsets.
Well, that's it. I'm not committing this patch against two other committers' opinion, plus I was already on the fence about the implementation anyway. I think you should just go with the flow and implement this by creating nodeTableexprscan.c. It's not even difficult.
I am playing with this and the patch looks about 15kB longer - just due implementation basic scan functionality - and I didn't touch a planner.
I am not happy from this - still I have a feeling so I try to reimplement reduced SRF.