fix: filter producing zero rows will not be treated as sys table scan operator completion
This commit is contained in:
parent
2d60150cd9
commit
3e6ccb8357
|
@ -2213,9 +2213,18 @@ static SSDataBlock* sysTableScanUserTables(SOperatorInfo* pOperator) {
|
||||||
colDataAppend(pColInfoData, numOfRows, n, false);
|
colDataAppend(pColInfoData, numOfRows, n, false);
|
||||||
|
|
||||||
if (++numOfRows >= pOperator->resultInfo.capacity) {
|
if (++numOfRows >= pOperator->resultInfo.capacity) {
|
||||||
|
p->info.rows = numOfRows;
|
||||||
|
pInfo->pRes->info.rows = numOfRows;
|
||||||
|
|
||||||
|
relocateColumnData(pInfo->pRes, pInfo->scanCols, p->pDataBlock, false);
|
||||||
|
doFilterResult(pInfo);
|
||||||
|
|
||||||
|
blockDataCleanup(p);
|
||||||
|
if (pInfo->pRes->info.rows > 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
blockDataDestroy(p);
|
||||||
|
|
||||||
// todo temporarily free the cursor here, the true reason why the free is not valid needs to be found
|
// todo temporarily free the cursor here, the true reason why the free is not valid needs to be found
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -2224,14 +2233,6 @@ static SSDataBlock* sysTableScanUserTables(SOperatorInfo* pOperator) {
|
||||||
doSetOperatorCompleted(pOperator);
|
doSetOperatorCompleted(pOperator);
|
||||||
}
|
}
|
||||||
|
|
||||||
p->info.rows = numOfRows;
|
|
||||||
pInfo->pRes->info.rows = numOfRows;
|
|
||||||
|
|
||||||
relocateColumnData(pInfo->pRes, pInfo->scanCols, p->pDataBlock, false);
|
|
||||||
doFilterResult(pInfo);
|
|
||||||
|
|
||||||
blockDataDestroy(p);
|
|
||||||
|
|
||||||
pInfo->loadInfo.totalRows += pInfo->pRes->info.rows;
|
pInfo->loadInfo.totalRows += pInfo->pRes->info.rows;
|
||||||
return (pInfo->pRes->info.rows == 0) ? NULL : pInfo->pRes;
|
return (pInfo->pRes->info.rows == 0) ? NULL : pInfo->pRes;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue