From 22f3c2097751722555013bed84f64cc21396e3b6 Mon Sep 17 00:00:00 2001 From: factosea <285808407@qq.com> Date: Mon, 25 Nov 2024 11:33:02 +0800 Subject: [PATCH] enh: check param --- source/libs/executor/src/aggregateoperator.c | 2 +- source/libs/executor/src/anomalywindowoperator.c | 2 -- source/libs/executor/src/countwindowoperator.c | 3 +++ source/libs/executor/src/eventwindowoperator.c | 3 +++ source/libs/executor/src/filloperator.c | 8 ++++++++ source/libs/executor/src/groupoperator.c | 7 +++++++ source/libs/executor/src/hashjoinoperator.c | 10 +++++++--- source/libs/executor/src/projectoperator.c | 5 ++++- 8 files changed, 33 insertions(+), 7 deletions(-) diff --git a/source/libs/executor/src/aggregateoperator.c b/source/libs/executor/src/aggregateoperator.c index b71ed5ee26..94bf791ef8 100644 --- a/source/libs/executor/src/aggregateoperator.c +++ b/source/libs/executor/src/aggregateoperator.c @@ -337,7 +337,7 @@ static SSDataBlock* getAggregateResult(SOperatorInfo* pOperator) { int32_t doAggregateImpl(SOperatorInfo* pOperator, SqlFunctionCtx* pCtx) { int32_t code = TSDB_CODE_SUCCESS; - if (pOperator || (pOperator->exprSupp.numOfExprs > 0 && pCtx == NULL)) { + if (!pOperator || (pOperator->exprSupp.numOfExprs > 0 && pCtx == NULL)) { qError("%s failed at line %d since pCtx is NULL.", __func__, __LINE__); return TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR; } diff --git a/source/libs/executor/src/anomalywindowoperator.c b/source/libs/executor/src/anomalywindowoperator.c index b678030a1c..71a38c739d 100644 --- a/source/libs/executor/src/anomalywindowoperator.c +++ b/source/libs/executor/src/anomalywindowoperator.c @@ -171,8 +171,6 @@ _error: } static int32_t anomalyAggregateNext(SOperatorInfo* pOperator, SSDataBlock** ppRes) { - CHECK_CONDITION_FAILED(pOperator != NULL); - CHECK_CONDITION_FAILED(ppRes != NULL); CHECK_CONDITION_FAILED(pOperator->info != NULL); CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); int32_t code = TSDB_CODE_SUCCESS; diff --git a/source/libs/executor/src/countwindowoperator.c b/source/libs/executor/src/countwindowoperator.c index 542a7c89a9..cb7459744f 100644 --- a/source/libs/executor/src/countwindowoperator.c +++ b/source/libs/executor/src/countwindowoperator.c @@ -225,6 +225,8 @@ _end: } static int32_t countWindowAggregateNext(SOperatorInfo* pOperator, SSDataBlock** ppRes) { + CHECK_CONDITION_FAILED(pOperator->info != NULL); + CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; SCountWindowOperatorInfo* pInfo = pOperator->info; @@ -232,6 +234,7 @@ static int32_t countWindowAggregateNext(SOperatorInfo* pOperator, SSDataBlock** SExprSupp* pExprSup = &pOperator->exprSupp; int32_t order = pInfo->binfo.inputTsOrder; SSDataBlock* pRes = pInfo->binfo.pRes; + CHECK_CONDITION_FAILED(pRes != NULL); blockDataCleanup(pRes); diff --git a/source/libs/executor/src/eventwindowoperator.c b/source/libs/executor/src/eventwindowoperator.c index e68a91d97d..83b202fed6 100644 --- a/source/libs/executor/src/eventwindowoperator.c +++ b/source/libs/executor/src/eventwindowoperator.c @@ -182,6 +182,8 @@ void destroyEWindowOperatorInfo(void* param) { } static int32_t eventWindowAggregateNext(SOperatorInfo* pOperator, SSDataBlock** ppRes) { + CHECK_CONDITION_FAILED(pOperator->info != NULL); + CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; SEventWindowOperatorInfo* pInfo = pOperator->info; @@ -191,6 +193,7 @@ static int32_t eventWindowAggregateNext(SOperatorInfo* pOperator, SSDataBlock** int32_t order = pInfo->binfo.inputTsOrder; SSDataBlock* pRes = pInfo->binfo.pRes; + CHECK_CONDITION_FAILED(pRes != NULL); blockDataCleanup(pRes); diff --git a/source/libs/executor/src/filloperator.c b/source/libs/executor/src/filloperator.c index 1595c90419..d6a518ccc4 100644 --- a/source/libs/executor/src/filloperator.c +++ b/source/libs/executor/src/filloperator.c @@ -182,9 +182,17 @@ static SSDataBlock* doFillImpl(SOperatorInfo* pOperator) { int32_t lino = 0; SFillOperatorInfo* pInfo = pOperator->info; SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; + if (pInfo == NULL || pTaskInfo == NULL) { + qError("%s failed at line %d since pInfo or pTaskInfo is NULL.", __func__, __LINE__); + return NULL; + } SResultInfo* pResultInfo = &pOperator->resultInfo; SSDataBlock* pResBlock = pInfo->pFinalRes; + if (pResBlock == NULL) { + qError("%s failed at line %d since pResBlock is NULL.", __func__, __LINE__); + return NULL; + } blockDataCleanup(pResBlock); diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index fec35c3371..c832cfbb4e 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -444,6 +444,8 @@ _end: } static int32_t hashGroupbyAggregateNext(SOperatorInfo* pOperator, SSDataBlock** ppRes) { + CHECK_CONDITION_FAILED(pOperator->info != NULL); + CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; @@ -1003,11 +1005,14 @@ static int32_t hashPartitionNext(SOperatorInfo* pOperator, SSDataBlock** ppRes) return TSDB_CODE_SUCCESS; } + CHECK_CONDITION_FAILED(pOperator->info != NULL); + CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; SPartitionOperatorInfo* pInfo = pOperator->info; SSDataBlock* pRes = pInfo->binfo.pRes; + CHECK_CONDITION_FAILED(pRes != NULL); if (pOperator->status == OP_RES_TO_RETURN) { (*ppRes) = buildPartitionResult(pOperator); @@ -1459,6 +1464,8 @@ static int32_t doStreamHashPartitionNext(SOperatorInfo* pOperator, SSDataBlock** int32_t lino = 0; SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; SStreamPartitionOperatorInfo* pInfo = pOperator->info; + CHECK_CONDITION_FAILED(pInfo != NULL); + CHECK_CONDITION_FAILED(pTaskInfo != NULL); if (pOperator->status == OP_EXEC_DONE) { (*ppRes) = NULL; diff --git a/source/libs/executor/src/hashjoinoperator.c b/source/libs/executor/src/hashjoinoperator.c index 1f43a429b3..12f90097c5 100644 --- a/source/libs/executor/src/hashjoinoperator.c +++ b/source/libs/executor/src/hashjoinoperator.c @@ -904,9 +904,10 @@ static int32_t hJoinAddBlockRowsToHash(SSDataBlock* pBlock, SHJoinOperatorInfo* static int32_t hJoinBuildHash(struct SOperatorInfo* pOperator, bool* queryDone) { SHJoinOperatorInfo* pJoin = pOperator->info; - SSDataBlock* pBlock = NULL; - int32_t code = TSDB_CODE_SUCCESS; - + SSDataBlock* pBlock = NULL; + int32_t code = TSDB_CODE_SUCCESS; + CHECK_CONDITION_FAILED(pJoin != NULL); + while (true) { pBlock = getNextBlockFromDownstream(pOperator, pJoin->pBuild->downStreamIdx); if (NULL == pBlock) { @@ -990,12 +991,15 @@ void hJoinSetDone(struct SOperatorInfo* pOperator) { } static int32_t hJoinMainProcess(struct SOperatorInfo* pOperator, SSDataBlock** pResBlock) { + CHECK_CONDITION_FAILED(pOperator->info != NULL); + CHECK_CONDITION_FAILED(pOperator->pTaskInfo != NULL); SHJoinOperatorInfo* pJoin = pOperator->info; SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; SSDataBlock* pRes = pJoin->finBlk; int64_t st = 0; + CHECK_CONDITION_FAILED(pRes != NULL); QRY_PARAM_CHECK(pResBlock); if (pOperator->cost.openCost == 0) { diff --git a/source/libs/executor/src/projectoperator.c b/source/libs/executor/src/projectoperator.c index 5b9e531679..5030b8a148 100644 --- a/source/libs/executor/src/projectoperator.c +++ b/source/libs/executor/src/projectoperator.c @@ -564,7 +564,7 @@ SSDataBlock* doApplyIndefinitFunction1(SOperatorInfo* pOperator) { int32_t doApplyIndefinitFunction(SOperatorInfo* pOperator, SSDataBlock** pResBlock) { QRY_PARAM_CHECK(pResBlock); - + CHECK_CONDITION_FAILED(pOperator->info != NULL); SIndefOperatorInfo* pIndefInfo = pOperator->info; SOptrBasicInfo* pInfo = &pIndefInfo->binfo; SExprSupp* pSup = &pOperator->exprSupp; @@ -1178,5 +1178,8 @@ _exit: if(processByRowFunctionCtx) { taosArrayDestroy(processByRowFunctionCtx); } + if(code) { + qError("project apply functions failed at: %s:%d", __func__, lino); + } return code; }