pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: David Rowley <drowley@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Attempt to stabilize plan of self-join test in tidscan.sql
Date: Fri, 21 Aug 2026 00:28:12 +0000
Message-ID: <E1wxD7D-00000001Qtw-2ebB@gemulon.postgresql.org> (raw)

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@gmail.com>
Author: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/f5d1f4c2-6224-4797-be17-c86e77f96c9c@gmail.com
Backpatch-through: 14

Branch
------
REL_16_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/203231cb5aae163a6b120f75a3817a08fa44d100

Modified Files
--------------
src/test/regress/expected/tidscan.out | 22 ++++++++++++++--------
src/test/regress/sql/tidscan.sql      | 16 ++++++++++++----
2 files changed, 26 insertions(+), 12 deletions(-)



view thread (7+ messages)  latest in thread

Message-ID: <E1wxD7D-00000001Qtw-2ebB@gemulon.postgresql.org>
Permalink:  ../E1wxD7D-00000001Qtw-2ebB@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1wxD7D-00000001Qtw-2ebB@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: drowley@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Attempt to stabilize plan of self-join test in tidscan.sql
  In-Reply-To: <E1wxD7D-00000001Qtw-2ebB@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox