aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/nodeFuncs.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-09-22 21:42:00 -0400
committerRobert Haas <rhaas@postgresql.org>2015-09-22 21:42:00 -0400
commit262e56bcae4f529c47ce4fbb8306fd6e26762975 (patch)
treecbc6237436312b91f84d4f9a910b2e4b75775c1d /src/backend/nodes/nodeFuncs.c
parentb1d5cc375b8786b2ff6293b3f3986c8edf120898 (diff)
downloadpostgresql-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.c8
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;
}