git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: de867c9) | patch
Move PartitioPruneInfo out of plan nodes into PlannedStmt
Thu, 1 Dec 2022 11:56:21 +0000 (12:56 +0100)
Thu, 1 Dec 2022 11:56:21 +0000 (12:56 +0100)
commit ec386948948c1708c0c28c48ef08b9c4dd9d47cc
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@gmail.com>
Discussion: https://postgr.es/m/CA+HiwqFGkMSge6TgC9KQzde0ohpAycLQuV7ooitEEpbKB0O_mg@mail.gmail.com
16 files changed:
src/backend/executor/execMain.c diff | blob | blame | history
src/backend/executor/execParallel.c diff | blob | blame | history
src/backend/executor/execPartition.c diff | blob | blame | history
src/backend/executor/execUtils.c diff | blob | blame | history
src/backend/executor/nodeAppend.c diff | blob | blame | history
src/backend/executor/nodeMergeAppend.c diff | blob | blame | history
src/backend/optimizer/plan/createplan.c diff | blob | blame | history
src/backend/optimizer/plan/planner.c diff | blob | blame | history
src/backend/optimizer/plan/setrefs.c diff | blob | blame | history
src/backend/partitioning/partprune.c diff | blob | blame | history
src/include/catalog/catversion.h diff | blob | blame | history
src/include/executor/execPartition.h diff | blob | blame | history
src/include/nodes/execnodes.h diff | blob | blame | history
src/include/nodes/pathnodes.h diff | blob | blame | history
src/include/nodes/plannodes.h diff | blob | blame | history
src/include/partitioning/partprune.h diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /