pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Robert Haas <rhaas@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Add an alternative_plan_name field to PlannerInfo.
Date: Thu, 26 Mar 2026 20:54:34 +0000
Message-ID: <E1w5rir-001anW-2f@gemulon.postgresql.org> (raw)

Add an alternative_plan_name field to PlannerInfo.

Typically, we have only one PlannerInfo for any given subquery, but
when we are considering a MinMaxAggPath or a hashed subplan, we end
up creating a second PlannerInfo for the same portion of the query,
with a clone of the original range table. In fact, in the MinMaxAggPath
case, we might end up creating several clones, one per aggregate.

At present, there's no easy way for a plugin, such as pg_plan_advice,
to understand the relationships between the original range table and
the copies of it that are created in these cases.  To fix, add an
alternative_plan_name field to PlannerInfo. For a hashed subplan, this
is the plan name for the non-hashed alternative; for minmax aggregates,
this is the plan_name from the parent PlannerInfo; otherwise, it's the
same as plan_name.

Discussion: http://postgr.es/m/CA+TgmoYuWmN-00Ec5pY7zAcpSFQUQLbgAdVWGR9kOR-HM-fHrA@mail.gmail.com
Reviewed-by: Lukas Fittl <lukas@fittl.com>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/26255a320733de2d91a30bd6ae529dd01e7f3409

Modified Files
--------------
src/backend/optimizer/path/allpaths.c     |  2 +-
src/backend/optimizer/plan/planagg.c      |  1 +
src/backend/optimizer/plan/planner.c      | 15 +++++++++++----
src/backend/optimizer/plan/subselect.c    |  6 +++---
src/backend/optimizer/prep/prepjointree.c |  1 +
src/backend/optimizer/prep/prepunion.c    |  2 +-
src/include/nodes/pathnodes.h             | 12 ++++++++++++
src/include/optimizer/planner.h           |  1 +
8 files changed, 31 insertions(+), 9 deletions(-)



Message-ID: <E1w5rir-001anW-2f@gemulon.postgresql.org>
Permalink:  ../E1w5rir-001anW-2f@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1w5rir-001anW-2f@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: rhaas@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Add an alternative_plan_name field to PlannerInfo.
  In-Reply-To: <E1w5rir-001anW-2f@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