From d236f7c9cc979f78ce090b9757784602b8180c3a Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Sun, 4 Feb 2024 09:20:28 +0800 Subject: [PATCH] enhance: error processing --- source/libs/executor/src/scanoperator.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 5c490b9d3b..dc9fceee84 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -3464,21 +3464,31 @@ static int32_t openSubTablesMergeSort(STmsSubTablesMergeInfo* pSubTblsInfo) { } static int32_t initSubTablesMergeInfo(STableMergeScanInfo* pInfo) { - STmsSubTablesMergeInfo* pSubTblsInfo = taosMemoryCalloc(1, sizeof(STmsSubTablesMergeInfo)); - pInfo->pSubTablesMergeInfo = pSubTblsInfo; - setGroupStartEndIndex(pInfo); - + STmsSubTablesMergeInfo* pSubTblsInfo = taosMemoryCalloc(1, sizeof(STmsSubTablesMergeInfo)); + if (pSubTblsInfo == NULL) { + return TSDB_CODE_OUT_OF_MEMORY; + } pSubTblsInfo->pOrderInfo = taosArrayGet(pInfo->pSortInfo, 0); pSubTblsInfo->numSubTables = pInfo->tableEndIndex - pInfo->tableStartIndex + 1; pSubTblsInfo->aInputs = taosMemoryCalloc(pSubTblsInfo->numSubTables, sizeof(STmsSubTableInput)); - + if (pSubTblsInfo->aInputs == NULL) { + taosMemoryFree(pSubTblsInfo); + return TSDB_CODE_OUT_OF_MEMORY; + } int32_t bufPageSize = pInfo->bufPageSize; int32_t inMemSize = (pSubTblsInfo->numSubTables - pSubTblsInfo->numTableBlocksInMem) * bufPageSize; - createDiskbasedBuf(&pSubTblsInfo->pBlocksBuf, pInfo->bufPageSize, inMemSize, "blocksExternalBuf", tsTempDir); - + int32_t code = + createDiskbasedBuf(&pSubTblsInfo->pBlocksBuf, pInfo->bufPageSize, inMemSize, "blocksExternalBuf", tsTempDir); + if (code != TSDB_CODE_SUCCESS) { + taosMemoryFree(pSubTblsInfo->aInputs); + taosMemoryFree(pSubTblsInfo); + return code; + } pSubTblsInfo->numTableBlocksInMem = pSubTblsInfo->numSubTables; pSubTblsInfo->numInMemReaders = pSubTblsInfo->numSubTables; + + pInfo->pSubTablesMergeInfo = pSubTblsInfo; return TSDB_CODE_SUCCESS; }