Re: Wrong rows estimations with joins of CTEs slows queries by more than factor 500
Alexander Lakhin <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Richard Guo <guofenglinux@gmail.com>
Cc: Jian Guo <gjian@vmware.com>, Tomas Vondra
<tomas.vondra@enterprisedb.com>, Hans Buschmann <buschmann@nidsa.net>,
"pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>,
Zhenghua Lyu <zlyu@vmware.com>
Date: 2024-01-06T09:00:01Z
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 →
-
Allow examine_simple_variable() to work on INSERT RETURNING Vars.
- 89b69db82adf 17.0 landed
-
Extract column statistics from CTE references, if possible.
- f7816aec23ee 17.0 landed
-
Remove SQL regression tests for GUCs related to NO_SHOW_ALL
- dbe8a1726cfd 15.3 cited
Hello Tom and Richard, 17.11.2023 22:42, Tom Lane wrote: > OK. I pushed the patch after a bit more review: we can simplify > things some more by using the subroot->parse querytree for all > tests. After the previous refactoring, it wasn't buying us anything > to do some initial tests with the raw querytree. (The original > idea of that, I believe, was to avoid doing find_base_rel if we > could; but now that's not helpful.) Please look at the following query: CREATE TABLE t(i int); INSERT INTO t VALUES (1); VACUUM ANALYZE t; WITH ir AS (INSERT INTO t VALUES (2) RETURNING i) SELECT * FROM ir WHERE i = 2; which produces ERROR: no relation entry for relid 1 starting from f7816aec2. Best regards, Alexander