Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-01-17T18:20:52Z
Lists: pgsql-hackers
On Tue, Jan 17, 2017 at 1:18 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Andres Freund <andres@anarazel.de> writes: >> I'd not have gone for SetResult if we didn't already have Result. I'm >> not super happy ending up having Project in ProjectSet but not in the >> Result that end up doing the majority of the projection. But eh, we can >> live with it. > > Using Result for two completely different things is a wart though. If we > had it to do over I think we'd define Result as a scan node that produces > rows from no input, and create a separate Project node for the case of > projecting from input tuples. People are used to seeing Result in EXPLAIN > output, so it's not worth the trouble of changing that IMO, but we don't > have to use it as a model for more node types. +1, although I think changing the existing node would be fine too if somebody wanted to do the work. It's not worth having that wart forever just to avoid whatever minor pain-of-adjustment might be involved. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
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