mem leak
This commit is contained in:
parent
4c7ad54c9c
commit
1019d070fd
|
@ -1407,8 +1407,9 @@ SSDataBlock* blockCopyOneRow(const SSDataBlock* pDataBlock, int32_t rowIdx) {
|
||||||
for (int32_t i = 0; i < numOfCols; ++i) {
|
for (int32_t i = 0; i < numOfCols; ++i) {
|
||||||
SColumnInfoData* pDst = taosArrayGet(pBlock->pDataBlock, i);
|
SColumnInfoData* pDst = taosArrayGet(pBlock->pDataBlock, i);
|
||||||
SColumnInfoData* pSrc = taosArrayGet(pDataBlock->pDataBlock, i);
|
SColumnInfoData* pSrc = taosArrayGet(pDataBlock->pDataBlock, i);
|
||||||
void* pData = colDataGetData(pSrc, rowIdx);
|
|
||||||
bool isNull = colDataIsNull(pSrc, pDataBlock->info.rows, rowIdx, NULL);
|
bool isNull = colDataIsNull(pSrc, pDataBlock->info.rows, rowIdx, NULL);
|
||||||
|
void* pData = NULL;
|
||||||
|
if (!isNull) pData = colDataGetData(pSrc, rowIdx);
|
||||||
colDataSetVal(pDst, 0, pData, isNull);
|
colDataSetVal(pDst, 0, pData, isNull);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -825,6 +825,7 @@ void setFillValueInfo(SSDataBlock* pBlock, TSKEY ts, int32_t rowId, SStreamFillS
|
||||||
(pFillSup->next.key == pFillInfo->nextRowKey && !hasPrevWindow(pFillSup)))) {
|
(pFillSup->next.key == pFillInfo->nextRowKey && !hasPrevWindow(pFillSup)))) {
|
||||||
setFillKeyInfo(ts, nextWKey, &pFillSup->interval, pFillInfo);
|
setFillKeyInfo(ts, nextWKey, &pFillSup->interval, pFillInfo);
|
||||||
pFillInfo->pos = FILL_POS_START;
|
pFillInfo->pos = FILL_POS_START;
|
||||||
|
resetFillWindow(&pFillSup->prev);
|
||||||
pFillSup->prev.key = pFillSup->cur.key;
|
pFillSup->prev.key = pFillSup->cur.key;
|
||||||
pFillSup->prev.pRowVal = pFillSup->cur.pRowVal;
|
pFillSup->prev.pRowVal = pFillSup->cur.pRowVal;
|
||||||
} else if (hasPrevWindow(pFillSup)) {
|
} else if (hasPrevWindow(pFillSup)) {
|
||||||
|
@ -1217,8 +1218,6 @@ static void doDeleteFillResult(SOperatorInfo* pOperator) {
|
||||||
|
|
||||||
SWinKey nextKey = {.groupId = groupId, .ts = ts};
|
SWinKey nextKey = {.groupId = groupId, .ts = ts};
|
||||||
while (pInfo->srcDelRowIndex < pBlock->info.rows) {
|
while (pInfo->srcDelRowIndex < pBlock->info.rows) {
|
||||||
void* nextVal = NULL;
|
|
||||||
int32_t nextLen = 0;
|
|
||||||
TSKEY delTs = tsStarts[pInfo->srcDelRowIndex];
|
TSKEY delTs = tsStarts[pInfo->srcDelRowIndex];
|
||||||
uint64_t delGroupId = groupIds[pInfo->srcDelRowIndex];
|
uint64_t delGroupId = groupIds[pInfo->srcDelRowIndex];
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
@ -1233,7 +1232,7 @@ static void doDeleteFillResult(SOperatorInfo* pOperator) {
|
||||||
if (delTs == nextKey.ts) {
|
if (delTs == nextKey.ts) {
|
||||||
code = pAPI->stateStore.streamStateCurNext(pOperator->pTaskInfo->streamInfo.pState, pCur);
|
code = pAPI->stateStore.streamStateCurNext(pOperator->pTaskInfo->streamInfo.pState, pCur);
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
if (code == TSDB_CODE_SUCCESS) {
|
||||||
code = pAPI->stateStore.streamStateGetGroupKVByCur(pCur, &nextKey, (const void**)&nextVal, &nextLen);
|
code = pAPI->stateStore.streamStateGetGroupKVByCur(pCur, &nextKey, NULL, NULL);
|
||||||
}
|
}
|
||||||
// ts will be deleted later
|
// ts will be deleted later
|
||||||
if (delTs != ts) {
|
if (delTs != ts) {
|
||||||
|
|
|
@ -973,7 +973,8 @@ static SSDataBlock* buildStreamPartitionResult(SOperatorInfo* pOperator) {
|
||||||
SColumnInfoData* pSrcCol = taosArrayGet(pSrc->pDataBlock, slotId);
|
SColumnInfoData* pSrcCol = taosArrayGet(pSrc->pDataBlock, slotId);
|
||||||
SColumnInfoData* pDestCol = taosArrayGet(pDest->pDataBlock, j);
|
SColumnInfoData* pDestCol = taosArrayGet(pDest->pDataBlock, j);
|
||||||
bool isNull = colDataIsNull(pSrcCol, pSrc->info.rows, rowIndex, NULL);
|
bool isNull = colDataIsNull(pSrcCol, pSrc->info.rows, rowIndex, NULL);
|
||||||
char* pSrcData = colDataGetData(pSrcCol, rowIndex);
|
char* pSrcData = NULL;
|
||||||
|
if (!isNull) pSrcData = colDataGetData(pSrcCol, rowIndex);
|
||||||
colDataSetVal(pDestCol, pDest->info.rows, pSrcData, isNull);
|
colDataSetVal(pDestCol, pDest->info.rows, pSrcData, isNull);
|
||||||
}
|
}
|
||||||
pDest->info.rows++;
|
pDest->info.rows++;
|
||||||
|
|
|
@ -1354,7 +1354,8 @@ static SSDataBlock* doRangeScan(SStreamScanInfo* pInfo, SSDataBlock* pSDB, int32
|
||||||
SColumnInfoData* pSrcCol = taosArrayGet(tmpBlock->pDataBlock, j);
|
SColumnInfoData* pSrcCol = taosArrayGet(tmpBlock->pDataBlock, j);
|
||||||
SColumnInfoData* pDestCol = taosArrayGet(pResult->pDataBlock, j);
|
SColumnInfoData* pDestCol = taosArrayGet(pResult->pDataBlock, j);
|
||||||
bool isNull = colDataIsNull(pSrcCol, tmpBlock->info.rows, i, NULL);
|
bool isNull = colDataIsNull(pSrcCol, tmpBlock->info.rows, i, NULL);
|
||||||
char* pSrcData = colDataGetData(pSrcCol, i);
|
char* pSrcData = NULL;
|
||||||
|
if (!isNull) pSrcData = colDataGetData(pSrcCol, i);
|
||||||
colDataSetVal(pDestCol, pResult->info.rows, pSrcData, isNull);
|
colDataSetVal(pDestCol, pResult->info.rows, pSrcData, isNull);
|
||||||
}
|
}
|
||||||
pResult->info.rows++;
|
pResult->info.rows++;
|
||||||
|
|
Loading…
Reference in New Issue