pgsql: pg_plan_advice: Handle non-repeatable TABLESAMPLE scans.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: pg_plan_advice: Handle non-repeatable TABLESAMPLE scans.
Date: 2026-04-13 12:46:53
Message-ID: E1wCGgn-000mxv-0N@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

pg_plan_advice: Handle non-repeatable TABLESAMPLE scans.

When a tablesample routine says that it is not repeatable across
scans, set_tablesample_rel_pathlist will (usually) materialize it,
confusing pg_plan_advice's plan walker machinery. To fix, update that
machinery to view such Material paths as essentially an extension of
the underlying scan.

Reported-by: Alexander Lakhin <exclusion(at)gmail(dot)com>
Discussion: http://postgr.es/m/CA+TgmobOOmmXSJz3e+cjTY-bA1+W0dqVDqzxUBEvGtW62whYGg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3311ccc3d24bf83fb26a8af81ea68a8fcc295c26

Modified Files
--------------
contrib/pg_plan_advice/Makefile | 2 ++
contrib/pg_plan_advice/expected/scan.out | 38 ++++++++++++++++++++++++++++++++
contrib/pg_plan_advice/pgpa_join.c | 12 ++++++----
contrib/pg_plan_advice/pgpa_scan.c | 11 +++++++++
contrib/pg_plan_advice/pgpa_walker.c | 29 ++++++++++++++++++++++++
contrib/pg_plan_advice/pgpa_walker.h | 1 +
contrib/pg_plan_advice/sql/scan.sql | 12 ++++++++++
7 files changed, 101 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2026-04-13 14:18:34 pgsql: pg_plan_advice: Add alternatives test to Makefile.
Previous Message Alexander Korotkov 2026-04-13 11:05:33 pgsql: Explicitly forbid non-top-level WAIT FOR execution