CTEs no longer act as an optimization barrier.
JIT enabled by default.
Speed and space improvements for many index types, including b-trees.
REINDEX CONCURRENTLY doesn't block table writes.
CTEs no longer act as an optimization barrier.
JIT enabled by default.
Speed and space improvements for many index types, including b-trees.
REINDEX CONCURRENTLY doesn't block table writes.
The feature is equivalent to external tools like pg_repack (formerly pg_reorg) in more performant, and has a couple of limitations to be aware of: https://www.postgresql.org/docs/12/sql-reindex.html#SQL-REIN...
I've been waiting for years for this, one of my last few complaints about Postgres that some other DBs did better. It's so frustrating to have to resort to worse composability in order to get reasonable performance.
At work I constantly have to create temporary tables instead of CTEs in MS SQL server to avoid crashing the server completely.
I guess Oracle maybe but I've never used that db, or DB2.
But regardless of who does it better, this is very very welcome news for postgres in any case :)
And while some devs might be aware of the materialization (and possibly even leveraged it intentionally, to block some optimizer behavior) many did not - it's widely used as if it was just a nice way to name the subqueries.
Only if you actually happened to compile the support for it, which is not the default.