diff options
Diffstat (limited to 'src/backend/executor/nodeMergejoin.c')
-rw-r--r-- | src/backend/executor/nodeMergejoin.c | 11 |
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); } |