aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeMergejoin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeMergejoin.c')
-rw-r--r--src/backend/executor/nodeMergejoin.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index 864e3baf86b..fed345eae54 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -1658,6 +1658,9 @@ ExecEndMergeJoin(MergeJoinState *node)
void
ExecReScanMergeJoin(MergeJoinState *node)
{
+ PlanState *outerPlan = outerPlanState(node);
+ PlanState *innerPlan = innerPlanState(node);
+
ExecClearTuple(node->mj_MarkedTupleSlot);
node->mj_JoinState = EXEC_MJ_INITIALIZE_OUTER;
@@ -1670,8 +1673,8 @@ ExecReScanMergeJoin(MergeJoinState *node)
* if chgParam of subnodes is not null then plans will be re-scanned by
* first ExecProcNode.
*/
- if (node->js.ps.lefttree->chgParam == NULL)
- ExecReScan(node->js.ps.lefttree);
- if (node->js.ps.righttree->chgParam == NULL)
- ExecReScan(node->js.ps.righttree);
+ if (outerPlan->chgParam == NULL)
+ ExecReScan(outerPlan);
+ if (innerPlan->chgParam == NULL)
+ ExecReScan(innerPlan);
}