Re: Early WIP/PoC for inlining CTEs
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: David Fetter <david@fetter.org>, Andrew Gierth <andrew@tao11.riddles.org.uk>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-08-08T05:02:11Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Prevent inlining of multiply-referenced CTEs with outer recursive refs.
- 9476131278c7 12.0 landed
-
Allow user control of CTE materialization, and change the default behavior.
- 608b167f9f9c 12.0 landed
-
Split QTW_EXAMINE_RTES flag into QTW_EXAMINE_RTES_BEFORE/_AFTER.
- 18c0da88a5d9 12.0 landed
-
document when PREPARE uses generic plans
- fab9d1da4a21 9.6.0 cited
Hi, On 2018-08-08 16:55:22 +1200, Thomas Munro wrote: > On Fri, Jul 27, 2018 at 8:10 PM, David Fetter <david@fetter.org> wrote: > > On Fri, Jul 27, 2018 at 02:55:26PM +1200, Thomas Munro wrote: > >> On Thu, Jul 26, 2018 at 7:14 AM, David Fetter <david@fetter.org> wrote: > >> > Please find attached the next version, which passes 'make check'. > >> > >> ... but not 'make check-world' (contrib/postgres_fdw's EXPLAIN is different). > > > > Please find attached a patch that does. > > > > It doesn't always pass make installcheck-world, but I need to sleep > > rather than investigate that at the moment. > > One observation I wanted to share: CTE scans inhibit parallelism today > (something we might eventually want to fix with shared tuplestores). > This patch therefore allows parallelism in some WITH queries, which > seems like a very valuable thing. Might be interesting to see how big a difference it makes for TPC-DS. Currently the results are bad (as in many queries don't finish in a relevant time) because it uses CTEs so widely, and there's often predicates outside the CTE that could be pushed down. - Andres