Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-01-17T18:53:46Z
Lists: pgsql-hackers
On 2017-01-17 13:43:38 -0500, Tom Lane wrote: > Although ... looking closer at Andres' patch, the new node type *is* > channeling Result, in the sense that it might or might not have any input > plan. This probably traces to what I wrote in September: > > + * XXX Possibly-temporary hack: if the subpath is a dummy ResultPath, > + * don't bother with it, just make a Result with no input. This avoids an > + * extra Result plan node when doing "SELECT srf()". Depending on what we > + * decide about the desired plan structure for SRF-expanding nodes, this > + * optimization might have to go away, and in any case it'll probably look > + * a good bit different. > > I'm not convinced that that optimization is worth preserving, but if we > keep it then ProjectSet isn't le mot juste here, any more than you'd want > to rename Result to Project without changing its existing > functionality. Right. I'd removed that, and re-added it; primarily because the plans looked more complex without it. After all, you'd thought it worth adding that hack ;) I'm happy with removing it again too. Andres
Commits
-
Remove obsoleted code relating to targetlist SRF evaluation.
- ea15e18677fc 10.0 landed
-
Doc: improve documentation of new SRF-in-tlist behavior.
- f13a1277aa2d 10.0 landed
-
Move targetlist SRF handling from expression evaluation to new executor node.
- 69f4b9c85f16 10.0 landed
-
Don't split up SRFs when choosing to postpone SELECT output expressions.
- d543170f2fdd 9.6.0 cited