pgsql: Move PartitioPruneInfo out of plan nodes into PlannedStmt

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Move PartitioPruneInfo out of plan nodes into PlannedStmt
Date: 2022-12-01 11:56:51
Message-ID: E1p0iBO-001YfV-F9@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Move PartitioPruneInfo out of plan nodes into PlannedStmt

The planner will now add a given PartitioPruneInfo to
PlannedStmt.partPruneInfos instead of directly to the
Append/MergeAppend plan node. What gets set instead in the
latter is an index field which points to the list element
of PlannedStmt.partPruneInfos containing the PartitioPruneInfo
belonging to the plan node.

A later commit will make AcquireExecutorLocks() do the initial
partition pruning to determine a minimal set of partitions to be
locked when validating a plan tree and it will need to consult the
PartitioPruneInfos referenced therein to do so. It would be better
for the PartitioPruneInfos to be accessible directly than requiring
a walk of the plan tree to find them, which is easier when it can be
done by simply iterating over PlannedStmt.partPruneInfos.

Author: Amit Langote <amitlangote09(at)gmail(dot)com>
Discussion: https://postgr.es/m/CA+HiwqFGkMSge6TgC9KQzde0ohpAycLQuV7ooitEEpbKB0O_mg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ec386948948c1708c0c28c48ef08b9c4dd9d47cc

Modified Files
--------------
src/backend/executor/execMain.c | 1 +
src/backend/executor/execParallel.c | 1 +
src/backend/executor/execPartition.c | 18 ++++++++-
src/backend/executor/execUtils.c | 1 +
src/backend/executor/nodeAppend.c | 5 ++-
src/backend/executor/nodeMergeAppend.c | 5 ++-
src/backend/optimizer/plan/createplan.c | 24 ++++++------
src/backend/optimizer/plan/planner.c | 1 +
src/backend/optimizer/plan/setrefs.c | 67 ++++++++++++++++++---------------
src/backend/partitioning/partprune.c | 19 +++++++---
src/include/catalog/catversion.h | 2 +-
src/include/executor/execPartition.h | 4 +-
src/include/nodes/execnodes.h | 1 +
src/include/nodes/pathnodes.h | 6 +++
src/include/nodes/plannodes.h | 14 +++++--
src/include/partitioning/partprune.h | 8 ++--
16 files changed, 114 insertions(+), 63 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-12-01 14:24:43 Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas
Previous Message Alvaro Herrera 2022-12-01 11:16:39 Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas