Re: Early WIP/PoC for inlining CTEs
Gavin Flower <gavinflower@archidevsys.co.nz>
From: Gavin Flower <GavinFlower@archidevsys.co.nz>
To: Andres Freund <andres@anarazel.de>, Jeremy Finzel <finzelj@gmail.com>
Cc: Andrew Gierth <andrew@tao11.riddles.org.uk>, pgsql-hackers@postgresql.org
Date: 2018-07-24T23:50:12Z
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
On 25/07/18 11:10, Andres Freund wrote: > On 2018-07-24 18:03:43 -0500, Jeremy Finzel wrote: >> On Tue, Jul 24, 2018 at 5:28 PM Andrew Gierth <andrew@tao11.riddles.org.uk> >> wrote: >> [...] >>> In our environment we often want this to be a fence. For example it can [...] > This essentially has been discussed already: > http://archives.postgresql.org/message-id/5351711493487900%40web53g.yandex.ru > > My read of the concensus (in which I am in the majority, so I might be > biased) is that we do want inlining to be the default. We were thinking > that it'd be necessary to provide a way to force inlining on the SQL > level for individual CTEs. > > >> Curious what other RDBMSs do here? > They largely inline by default. > > Greetings, > > Andres Freund > If I'd not read anything about CTE's being a fence, I would have implicitly assumed that they were optimised together with the main part of the SQL statement, and I suspect that is the case for most people. So I'm very much a favour of optimisation of CTE's being the default. Cheers, Gavin