From 86a4819f691ba08bef0eba03dcf9be7bd1ca1c89 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 15 Nov 2018 23:02:21 +0100 Subject: [PATCH] Update executor documentation for run-time partition pruning With run-time partition pruning, there is no longer necessarily an executor node for each corresponding plan node. Author: David Rowley --- src/backend/executor/README | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/backend/executor/README b/src/backend/executor/README index 0d7cd552eb..ddbd62b4db 100644 --- a/src/backend/executor/README +++ b/src/backend/executor/README @@ -45,13 +45,21 @@ Plan Trees and State Trees The plan tree delivered by the planner contains a tree of Plan nodes (struct types derived from struct Plan). During executor startup we build a parallel -tree of identical structure containing executor state nodes --- every plan -node type has a corresponding executor state node type. Each node in the -state tree has a pointer to its corresponding node in the plan tree, plus -executor state data as needed to implement that node type. This arrangement -allows the plan tree to be completely read-only so far as the executor is -concerned: all data that is modified during execution is in the state tree. -Read-only plan trees make life much simpler for plan caching and reuse. +tree of identical structure containing executor state nodes --- generally, +every plan node type has a corresponding executor state node type. Each node +in the state tree has a pointer to its corresponding node in the plan tree, +plus executor state data as needed to implement that node type. This +arrangement allows the plan tree to be completely read-only so far as the +executor is concerned: all data that is modified during execution is in the +state tree. Read-only plan trees make life much simpler for plan caching and +reuse. + +A corresponding executor state node may not be created during executor startup +if the executor determines that an entire subplan is not required due to +execution time partition pruning determining that no matching records will be +found there. This currently only occurs for Append and MergeAppend nodes. In +this case the non-required subplans are ignored and the executor state's +subnode array will become out of sequence to the plan's subplan list. Each Plan node may have expression trees associated with it, to represent its target list, qualification conditions, etc. These trees are also -- 2.40.0