Re: Changed SRF in targetlist handling
Joe Conway <mail@joeconway.com>
From: Joe Conway <mail@joeconway.com>
To: "David G. Johnston" <david.g.johnston@gmail.com>,
Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
Merlin Moncure <mmoncure@gmail.com>, David Fetter <david@fetter.org>,
Andres Freund <andres@anarazel.de>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2016-05-23T21:58:51Z
Lists: pgsql-hackers
On 05/23/2016 02:37 PM, David G. Johnston wrote: > But then I don't get Joe's point - if its an implementation detail why > should it matter if rewriting the SRF-in-tlist to be laterals changes > execution from a serial to an interleaved implementation. Plus, Joe's > claim: "the capability to pipeline results is still only available in > the target list", and yours above are at odds since you claim the > rewritten behavior is the same today. Is there a disconnect in > knowledge or are you talking about different things? Unless there have been recent changes which I missed, ValuePerCall SRFs are still run to completion in one go, when executed in the FROM clause, but they project one-row-at-a-time in the target list. If your SRF returns many-many rows, the problem with the former case is that the entire thing has to be materialized in memory. Joe -- Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development
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