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: Andres Freund <andres@anarazel.de>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>,
Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-09-02T08:34:24Z
Lists: pgsql-hackers
On Sun, Aug 28, 2016 at 3:18 AM, Andres Freund <andres@anarazel.de> wrote: > 0003-Avoid-materializing-SRFs-in-the-FROM-list.patch > To avoid performance regressions from moving SRFM_ValuePerCall SRFs to > ROWS FROM, nodeFunctionscan.c needs to support not materializing > output. > > In my present patch I've *ripped out* the support for materialization > in nodeFunctionscan.c entirely. That means that rescans referencing > volatile functions can change their behaviour (if a function is > rescanned, without having it's parameters changed), and that native > backward scan support is gone. I don't think that's actually an issue. Can you expand on why you think those things aren't an issue? Because it seems like they might be. > 0006-Remove-unused-code-related-to-targetlist-SRFs.patch > Now that there's no targetlist SRFs at execution time anymore, rip out > executor and planner code related to that. There's possibly more, but > that's what I could find in a couple passes of searching around. > > This actually speeds up tpch-h queries by roughly 4% for me. Nice. -- 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