diff --git a/source/libs/executor/src/mergejoinoperator.c b/source/libs/executor/src/mergejoinoperator.c index 8a28a29ab91e8f48b9f0a09d01a34f78340e6a0f..fd1e2fe463412a7543f547547f401e019be4d798 100644 --- a/source/libs/executor/src/mergejoinoperator.c +++ b/source/libs/executor/src/mergejoinoperator.c @@ -658,10 +658,10 @@ static bool mergeJoinGetNextTimestamp(SOperatorInfo* pOperator, int64_t* pLeftTs pJoinInfo->leftPos = 0; if (pJoinInfo->pLeft == NULL) { qError("merge join left got empty block"); - setMergeJoinDone(pOperator); if (pOperator->pOperatorParam && ((SSortMergeJoinOperatorParam*)pOperator->pOperatorParam->value)->initParam) { leftEmpty = true; } else { + setMergeJoinDone(pOperator); return false; } } else { @@ -680,6 +680,7 @@ static bool mergeJoinGetNextTimestamp(SOperatorInfo* pOperator, int64_t* pLeftTs } else { qError("merge join right got block"); if (leftEmpty) { + setMergeJoinDone(pOperator); return false; } }