diff --git a/source/dnode/vnode/src/sma/smaRollup.c b/source/dnode/vnode/src/sma/smaRollup.c index 99f5283df3..6d2f76bbe9 100644 --- a/source/dnode/vnode/src/sma/smaRollup.c +++ b/source/dnode/vnode/src/sma/smaRollup.c @@ -1550,13 +1550,17 @@ static int32_t tdRSmaBatchExec(SSma *pSma, SRSmaInfo *pInfo, STaosQall *qall, SA taosFreeQitem(msg); goto _err; } - if (!taosArrayPush(pSubmitArr, &packData)) { + + if (packData.pDataBlock && !taosArrayPush(pSubmitArr, &packData)) { taosFreeQitem(msg); terrno = TSDB_CODE_OUT_OF_MEMORY; goto _err; } taosFreeQitem(msg); - ++nDelete; + if (packData.pDataBlock) { + // packData.pDataBlock is NULL if delete affects 0 row + ++nDelete; + } } else { ASSERTS(0, "unknown msg type:%d", inputType); break; diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index c7f0bb3895..08138e7700 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -2106,11 +2106,6 @@ FETCH_NEXT_BLOCK: SPackedData* pPacked = taosArrayGet(pInfo->pBlockLists, current); SSDataBlock* pBlock = pPacked->pDataBlock; - if(!pBlock) { - doClearBufferedBlocks(pInfo); - return NULL; - } - if (pBlock->info.parTbName[0]) { pAPI->stateStore.streamStatePutParName(pStreamInfo->pState, pBlock->info.id.groupId, pBlock->info.parTbName); }