diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 237d52b19eb8aadd625a47924f5670f024cac887..e4a931641622501ccf57a3345fcd02f3a90738d6 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -1166,8 +1166,8 @@ static TSKEY getStartTsKey(SQueryAttr* pQueryAttr, STimeWindow* win, const TSKEY static void setArithParams(SArithmeticSupport* sas, SExprInfo *pExprInfo, SSDataBlock* pSDataBlock) { sas->numOfCols = (int32_t) pSDataBlock->info.numOfCols; sas->pExprInfo = pExprInfo; - if (sas->colList != NULL) { - return; + if (sas->colList) { + free(sas->colList); // free pre malloc memory } sas->colList = calloc(1, pSDataBlock->info.numOfCols*sizeof(SColumnInfo)); for(int32_t i = 0; i < sas->numOfCols; ++i) { @@ -1175,6 +1175,9 @@ static void setArithParams(SArithmeticSupport* sas, SExprInfo *pExprInfo, SSData sas->colList[i] = pColData->info; } + if(sas->data) { + free(sas->data); // free pre malloc memory + } sas->data = calloc(sas->numOfCols, POINTER_BYTES); // set the input column data