Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org
Date: 2016-09-12T14:19:14Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > Attached is a significantly updated patch series (see the mail one up > for details about what this is, I don't want to quote it in its > entirety). I've finally cleared my plate enough to start reviewing this patchset. > 0001-Add-some-more-targetlist-srf-tests.patch > Add some test. I think you should go ahead and push this tests-adding patch now, as it adds documentation of the current behavior that is a good thing to have independently of what the rest of the patchset does. Also, I'm worried that some of the GROUP BY tests might have machine-dependent results (if they are implemented by hashing) so it would be good to get in a few buildfarm cycles and let that settle out before we start changing the answers. I do have some trivial nitpicks about 0001: # rules cannot run concurrently with any test that creates a view -test: rules psql_crosstab amutils +test: rules psql_crosstab amutils tsrf Although tsrf.sql doesn't currently need to create any views, it doesn't seem like a great idea to assume that it never will. Maybe add this after misc_functions in the previous parallel group, instead? +-- it's weird to GROUP BYs that increase the number of results "it's weird to have ..." +-- nonsensically that seems to be allowed +UPDATE fewmore SET data = generate_series(4,9); "nonsense that seems to be allowed..." +-- SRFs are now allowed in RETURNING +INSERT INTO fewmore VALUES(1) RETURNING generate_series(1,3); s/now/not/, apparently More to come later, but 0001 is pushable with these fixes. regards, tom lane
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