diff options
author | Robert Haas <rhaas@postgresql.org> | 2015-09-22 21:42:00 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2015-09-22 21:42:00 -0400 |
commit | 262e56bcae4f529c47ce4fbb8306fd6e26762975 (patch) | |
tree | cbc6237436312b91f84d4f9a910b2e4b75775c1d /src/backend/nodes/nodeFuncs.c | |
parent | b1d5cc375b8786b2ff6293b3f3986c8edf120898 (diff) | |
download | postgresql-262e56bcae4f529c47ce4fbb8306fd6e26762975.tar.gz postgresql-262e56bcae4f529c47ce4fbb8306fd6e26762975.zip |
Teach planstate_tree_walker about custom scans.
This logic was missing from ExplainPreScanNode, from which I derived
planstate_tree_walker. But it shouldn't be missing, especially not
from a generic walker function, so add it.
KaiGai Kohei
Diffstat (limited to 'src/backend/nodes/nodeFuncs.c')
-rw-r--r-- | src/backend/nodes/nodeFuncs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index 4a2447409a9..a11cb9ff4d1 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -3428,6 +3428,7 @@ bool planstate_tree_walker(PlanState *planstate, bool (*walker) (), void *context) { Plan *plan = planstate->plan; + ListCell *lc; /* initPlan-s */ if (planstate_walk_subplans(planstate->initPlan, walker, context)) @@ -3484,6 +3485,13 @@ planstate_tree_walker(PlanState *planstate, bool (*walker) (), void *context) if (walker(((SubqueryScanState *) planstate)->subplan, context)) return true; break; + case T_CustomScan: + foreach (lc, ((CustomScanState *) planstate)->custom_ps) + { + if (walker((PlanState *) lfirst(lc), context)) + return true; + } + break; default: break; } |