| From: | David Rowley <drowley(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Attempt to stabilize plan of self-join test in tidscan.sql |
| Date: | 2026-08-21 00:28:37 |
| Message-ID: | E1wxD7c-00000001QvP-1BZy@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Attempt to stabilize plan of self-join test in tidscan.sql
The test that checks the expected plan for this self-join test has been
known to have failed in the past due to badly timed VACUUMs causing
small variations in row estimates on one of the tables, resulting in a
swapped join order. Currently, failures have only been seen in v14, and
seemingly due to 74388a1ac and 4496020e6 the failures have not been seen
in more recent versions.
Here we shrink down the number of matching rows on one side of the join
to make the alternative join order's costs more expensive relative to
the cheapest join order. Previously the alternative order had the same
cost.
We do this in all supported versions to reduce the chances of future
changes reintroducing stability issues with these queries.
Reported-by: Alexander Lakhin <exclusion(at)gmail(dot)com>
Author: David Rowley <dgrowleyml(at)gmail(dot)com>
Discussion: https://postgr.es/m/f5d1f4c2-6224-4797-be17-c86e77f96c9c@gmail.com
Backpatch-through: 14
Branch
------
REL_15_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/13232e75354e0a1e3e9e23389cf3aea34f06a505
Modified Files
--------------
src/test/regress/expected/tidscan.out | 22 ++++++++++++++--------
src/test/regress/sql/tidscan.sql | 16 ++++++++++++----
2 files changed, 26 insertions(+), 12 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Rowley | 2026-08-21 00:28:58 | pgsql: Attempt to stabilize plan of self-join test in tidscan.sql |
| Previous Message | David Rowley | 2026-08-21 00:28:12 | pgsql: Attempt to stabilize plan of self-join test in tidscan.sql |