From 71e57b1dfc9280d4478232bd5a9a0f0f28eb7018 Mon Sep 17 00:00:00 2001 From: sima Date: Thu, 18 Jul 2024 11:22:08 +0800 Subject: [PATCH] enh:[TD-30998] Handling return value in filterTest.c --- source/libs/scalar/inc/filterInt.h | 12 +- source/libs/scalar/src/filter.c | 27 ++- source/libs/scalar/src/scalar.c | 12 +- .../libs/scalar/test/filter/filterTests.cpp | 175 ++++++++++++------ 4 files changed, 147 insertions(+), 79 deletions(-) diff --git a/source/libs/scalar/inc/filterInt.h b/source/libs/scalar/inc/filterInt.h index 964efa8291..a645c43f86 100644 --- a/source/libs/scalar/inc/filterInt.h +++ b/source/libs/scalar/inc/filterInt.h @@ -460,11 +460,13 @@ struct SFilterInfo { #define FILTER_UNIT_GET_R(i, idx) ((i)->unitRes[idx]) #define FILTER_UNIT_SET_R(i, idx, v) (i)->unitRes[idx] = (v) -#define FILTER_PUSH_UNIT(colInfo, u) \ - do { \ - (colInfo).type = RANGE_TYPE_UNIT; \ - (colInfo).dataType = FILTER_UNIT_DATA_TYPE(u); \ - taosArrayPush((SArray *)((colInfo).info), &u); \ +#define FILTER_PUSH_UNIT(colInfo, u) \ + do { \ + (colInfo).type = RANGE_TYPE_UNIT; \ + (colInfo).dataType = FILTER_UNIT_DATA_TYPE(u); \ + if (taosArrayPush((SArray *)((colInfo).info), &u) == NULL) { \ + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); \ + } \ } while (0) #define FILTER_PUSH_VAR_HASH(colInfo, ha) \ do { \ diff --git a/source/libs/scalar/src/filter.c b/source/libs/scalar/src/filter.c index 0ffff0e119..c722259361 100644 --- a/source/libs/scalar/src/filter.c +++ b/source/libs/scalar/src/filter.c @@ -1632,7 +1632,7 @@ EDealRes fltTreeToGroup(SNode *pNode, void *pContext) { cell = cell->pNext; } - taosArrayAddAll(ctx->group, preGroup); + (void)taosArrayAddAll(ctx->group, preGroup); taosArrayDestroy(preGroup); @@ -1825,12 +1825,12 @@ int32_t filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t optio FLT_ERR_RET(fltConverToStr(str + len, type, data, tlen > 32 ? 32 : tlen, &tlen)); } } else { - strcat(str, "NULL"); + (void)strcat(str, "NULL"); } - strcat(str, "]"); + (void)strcat(str, "]"); if (unit->compare.optr2) { - strcat(str, " && "); + (void)strcat(str, " && "); if (unit->compare.optr2 <= OP_TYPE_JSON_CONTAINS) { sprintf(str + strlen(str), "[%d][%d] %s [", refNode->dataBlockId, refNode->slotId, operatorTypeStr(unit->compare.optr2)); @@ -1845,9 +1845,9 @@ int32_t filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t optio } FLT_ERR_RET(fltConverToStr(str + strlen(str), type, data, tlen > 32 ? 32 : tlen, &tlen)); } else { - strcat(str, "NULL"); + (void)strcat(str, "NULL"); } - strcat(str, "]"); + (void)strcat(str, "]"); } qDebug("%s", str); // TODO @@ -1881,15 +1881,15 @@ int32_t filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t optio while (r) { char str[256] = {0}; if (FILTER_GET_FLAG(r->ra.sflag, RANGE_FLG_NULL)) { - strcat(str, "(NULL)"); + (void)strcat(str, "(NULL)"); } else { FILTER_GET_FLAG(r->ra.sflag, RANGE_FLG_EXCLUDE) ? strcat(str, "(") : strcat(str, "["); FLT_ERR_RET(fltConverToStr(str + strlen(str), ctx->type, &r->ra.s, tlen > 32 ? 32 : tlen, &tlen)); FILTER_GET_FLAG(r->ra.sflag, RANGE_FLG_EXCLUDE) ? strcat(str, ")") : strcat(str, "]"); } - strcat(str, " - "); + (void)strcat(str, " - "); if (FILTER_GET_FLAG(r->ra.eflag, RANGE_FLG_NULL)) { - strcat(str, "(NULL)"); + (void)strcat(str, "(NULL)"); } else { FILTER_GET_FLAG(r->ra.eflag, RANGE_FLG_EXCLUDE) ? strcat(str, "(") : strcat(str, "["); FLT_ERR_RET(fltConverToStr(str + strlen(str), ctx->type, &r->ra.e, tlen > 32 ? 32 : tlen, &tlen)); @@ -2692,7 +2692,7 @@ int32_t filterMergeGroups(SFilterInfo *info, SFilterGroupCtx **gRes, int32_t *gR if (gRes[n] == NULL) { if (n < ((*gResNum) - 1)) { - memmove(&gRes[n], &gRes[n + 1], (*gResNum - n - 1) * POINTER_BYTES); + (void)memmove(&gRes[n], &gRes[n + 1], (*gResNum - n - 1) * POINTER_BYTES); } --cEnd; @@ -2713,7 +2713,7 @@ int32_t filterMergeGroups(SFilterInfo *info, SFilterGroupCtx **gRes, int32_t *gR if (gRes[n] == NULL) { if (n < ((*gResNum) - 1)) { - memmove(&gRes[n], &gRes[n + 1], (*gResNum - n - 1) * POINTER_BYTES); + (void)memmove(&gRes[n], &gRes[n + 1], (*gResNum - n - 1) * POINTER_BYTES); } --cEnd; @@ -2917,10 +2917,9 @@ int32_t filterGenerateColRange(SFilterInfo *info, SFilterGroupCtx **gRes, int32_ if (all) { (void)filterFreeRangeCtx(info->colRange[m]); // No need to handle the return value. info->colRange[m] = NULL; - if (m < (info->colRangeNum - 1)) { - memmove(&info->colRange[m], &info->colRange[m + 1], (info->colRangeNum - m - 1) * POINTER_BYTES); - memmove(&idxs[m], &idxs[m + 1], (info->colRangeNum - m - 1) * sizeof(*idxs)); + (void)memmove(&info->colRange[m], &info->colRange[m + 1], (info->colRangeNum - m - 1) * POINTER_BYTES); + (void)memmove(&idxs[m], &idxs[m + 1], (info->colRangeNum - m - 1) * sizeof(*idxs)); } --info->colRangeNum; diff --git a/source/libs/scalar/src/scalar.c b/source/libs/scalar/src/scalar.c index e920b613cf..4fbce9e5b2 100644 --- a/source/libs/scalar/src/scalar.c +++ b/source/libs/scalar/src/scalar.c @@ -627,7 +627,7 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell if (*equal) { bool isNull = colDataIsNull_s(pThen->columnData, (pThen->numOfRows > 1 ? rowIdx : 0)); char *pData = isNull ? NULL : colDataGetData(pThen->columnData, (pThen->numOfRows > 1 ? rowIdx : 0)); - colDataSetVal(output->columnData, rowIdx, pData, isNull); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, pData, isNull)); if (0 == rowIdx && 1 == pCase->numOfRows && 1 == pWhen->numOfRows && 1 == pThen->numOfRows && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); @@ -641,7 +641,7 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell if (pElse) { bool isNull = colDataIsNull_s(pElse->columnData, (pElse->numOfRows > 1 ? rowIdx : 0)); char *pData = isNull ? NULL : colDataGetData(pElse->columnData, (pElse->numOfRows > 1 ? rowIdx : 0)); - colDataSetVal(output->columnData, rowIdx, pData, isNull); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, pData, isNull)); if (0 == rowIdx && 1 == pCase->numOfRows && 1 == pElse->numOfRows && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); @@ -651,7 +651,7 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell goto _return; } - colDataSetVal(output->columnData, rowIdx, NULL, true); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, NULL, true)); if (0 == rowIdx && 1 == pCase->numOfRows && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); @@ -690,7 +690,7 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe if (*whenValue) { bool isNull = colDataIsNull_s(pThen->columnData, (pThen->numOfRows > 1 ? rowIdx : 0)); char *pData = isNull ? NULL : colDataGetData(pThen->columnData, (pThen->numOfRows > 1 ? rowIdx : 0)); - colDataSetVal(output->columnData, rowIdx, pData, isNull); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, pData, isNull)); if (preSingle && 0 == rowIdx && 1 == pWhen->numOfRows && 1 == pThen->numOfRows && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); @@ -709,7 +709,7 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe if (pElse) { bool isNull = colDataIsNull_s(pElse->columnData, (pElse->numOfRows > 1 ? rowIdx : 0)); char *pData = isNull ? NULL : colDataGetData(pElse->columnData, (pElse->numOfRows > 1 ? rowIdx : 0)); - colDataSetVal(output->columnData, rowIdx, pData, isNull); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, pData, isNull)); if (preSingle && 0 == rowIdx && 1 == pElse->numOfRows && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); @@ -719,7 +719,7 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe goto _return; } - colDataSetVal(output->columnData, rowIdx, NULL, true); + SCL_ERR_JRET(colDataSetVal(output->columnData, rowIdx, NULL, true)); if (preSingle && 0 == rowIdx && totalRows > 1) { SCL_ERR_JRET(sclExtendResRows(output, output, ctx->pBlockList)); diff --git a/source/libs/scalar/test/filter/filterTests.cpp b/source/libs/scalar/test/filter/filterTests.cpp index cd3d681f58..49e490f9e9 100644 --- a/source/libs/scalar/test/filter/filterTests.cpp +++ b/source/libs/scalar/test/filter/filterTests.cpp @@ -55,21 +55,24 @@ void flttInitLogFile() { tsAsyncLog = 0; qDebugFlag = 159; - strcpy(tsLogDir, TD_LOG_DIR_PATH); + (void)strcpy(tsLogDir, TD_LOG_DIR_PATH); if (taosInitLog(defaultLogFileNamePrefix, maxLogFileNum) < 0) { printf("failed to open log file in directory:%s\n", tsLogDir); } } -void flttMakeValueNode(SNode **pNode, int32_t dataType, void *value) { +int32_t flttMakeValueNode(SNode **pNode, int32_t dataType, void *value) { SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_VALUE); SValueNode *vnode = (SValueNode *)node; vnode->node.resType.type = dataType; if (IS_VAR_DATA_TYPE(dataType)) { vnode->datum.p = (char *)taosMemoryMalloc(varDataTLen(value)); - varDataCopy(vnode->datum.p, value); + if (NULL == vnode->datum.p) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } + (void)varDataCopy(vnode->datum.p, value); vnode->node.resType.bytes = varDataLen(value); } else { vnode->node.resType.bytes = tDataTypes[dataType].bytes; @@ -77,13 +80,17 @@ void flttMakeValueNode(SNode **pNode, int32_t dataType, void *value) { } *pNode = (SNode *)vnode; + FLT_RET(TSDB_CODE_SUCCESS); } -void flttMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, int32_t dataBytes, int32_t rowNum, +int32_t flttMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, int32_t dataBytes, int32_t rowNum, void *value) { static uint64_t dbidx = 0; SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_COLUMN); + if (NULL == node) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } SColumnNode *rnode = (SColumnNode *)node; rnode->node.resType.type = dataType; rnode->node.resType.bytes = dataBytes; @@ -96,23 +103,27 @@ void flttMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in rnode->colId = 3; *pNode = (SNode *)rnode; - return; + FLT_RET(TSDB_CODE_SUCCESS); } if (NULL == *block) { SSDataBlock *res = createDataBlock(); for (int32_t i = 0; i < 2; ++i) { SColumnInfoData idata = createColumnInfoData(TSDB_DATA_TYPE_NULL, 10, 1 + i); - blockDataAppendColInfo(res, &idata); + FLT_ERR_RET(blockDataAppendColInfo(res, &idata)); } SColumnInfoData idata = createColumnInfoData(dataType, dataBytes, 3); - blockDataAppendColInfo(res, &idata); - blockDataEnsureCapacity(res, rowNum); + FLT_ERR_RET(blockDataAppendColInfo(res, &idata)); + FLT_ERR_RET(blockDataEnsureCapacity(res, rowNum)); SColumnInfoData *pColumn = (SColumnInfoData *)taosArrayGetLast(res->pDataBlock); + if (NULL == pColumn) { + fltError("fail to get the last task, num:%d", (int32_t)taosArrayGetSize(res->pDataBlock)); + FLT_ERR_RET(TSDB_CODE_QRY_SYS_ERROR); + } for (int32_t i = 0; i < rowNum; ++i) { - colDataSetVal(pColumn, i, (const char *)value, false); + FLT_ERR_RET(colDataSetVal(pColumn, i, (const char *)value, false)); if (IS_VAR_DATA_TYPE(dataType)) { value = (char *)value + varDataTLen(value); } else { @@ -130,13 +141,16 @@ void flttMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in int32_t idx = taosArrayGetSize(res->pDataBlock); SColumnInfoData idata = createColumnInfoData(dataType, dataBytes, 1 + idx); - blockDataAppendColInfo(res, &idata); - blockDataEnsureCapacity(res, rowNum); + FLT_ERR_RET(blockDataAppendColInfo(res, &idata)); + FLT_ERR_RET(blockDataEnsureCapacity(res, rowNum)); SColumnInfoData *pColumn = (SColumnInfoData *)taosArrayGetLast(res->pDataBlock); - + if (NULL == pColumn) { + fltError("fail to get the last task, num:%d", (int32_t)taosArrayGetSize(res->pDataBlock)); + FLT_ERR_RET(TSDB_CODE_QRY_SYS_ERROR); + } for (int32_t i = 0; i < rowNum; ++i) { - colDataSetVal(pColumn, i, (const char *)value, false); + FLT_ERR_RET(colDataSetVal(pColumn, i, (const char *)value, false)); if (IS_VAR_DATA_TYPE(dataType)) { value = (char *)value + varDataTLen(value); } else { @@ -149,10 +163,14 @@ void flttMakeColumnNode(SNode **pNode, SSDataBlock **block, int32_t dataType, in } *pNode = (SNode *)rnode; + FLT_RET(TSDB_CODE_SUCCESS); } -void flttMakeOpNode(SNode **pNode, EOperatorType opType, int32_t resType, SNode *pLeft, SNode *pRight) { +int32_t flttMakeOpNode(SNode **pNode, EOperatorType opType, int32_t resType, SNode *pLeft, SNode *pRight) { SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_OPERATOR); + if (NULL == node) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } SOperatorNode *onode = (SOperatorNode *)node; onode->node.resType.type = resType; onode->node.resType.bytes = tDataTypes[resType].bytes; @@ -162,10 +180,14 @@ void flttMakeOpNode(SNode **pNode, EOperatorType opType, int32_t resType, SNode onode->pRight = pRight; *pNode = (SNode *)onode; + FLT_RET(TSDB_CODE_SUCCESS); } -void flttMakeLogicNode(SNode **pNode, ELogicConditionType opType, SNode **nodeList, int32_t nodeNum) { +int32_t flttMakeLogicNode(SNode **pNode, ELogicConditionType opType, SNode **nodeList, int32_t nodeNum) { SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_LOGIC_CONDITION); + if (NULL == node) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } SLogicConditionNode *onode = (SLogicConditionNode *)node; onode->condType = opType; onode->node.resType.type = TSDB_DATA_TYPE_BOOL; @@ -173,14 +195,18 @@ void flttMakeLogicNode(SNode **pNode, ELogicConditionType opType, SNode **nodeLi onode->pParameterList = nodesMakeList(); for (int32_t i = 0; i < nodeNum; ++i) { - nodesListAppend(onode->pParameterList, nodeList[i]); + FLT_ERR_RET(nodesListAppend(onode->pParameterList, nodeList[i])); } *pNode = (SNode *)onode; + FLT_RET(TSDB_CODE_SUCCESS); } -void flttMakeLogicNodeFromList(SNode **pNode, ELogicConditionType opType, SNodeList *nodeList) { +int32_t flttMakeLogicNodeFromList(SNode **pNode, ELogicConditionType opType, SNodeList *nodeList) { SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_LOGIC_CONDITION); + if (NULL == node) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } SLogicConditionNode *onode = (SLogicConditionNode *)node; onode->condType = opType; onode->node.resType.type = TSDB_DATA_TYPE_BOOL; @@ -189,15 +215,20 @@ void flttMakeLogicNodeFromList(SNode **pNode, ELogicConditionType opType, SNodeL onode->pParameterList = nodeList; *pNode = (SNode *)onode; + FLT_RET(TSDB_CODE_SUCCESS); } -void flttMakeListNode(SNode **pNode, SNodeList *list, int32_t resType) { +int32_t flttMakeListNode(SNode **pNode, SNodeList *list, int32_t resType) { SNode *node = (SNode *)nodesMakeNode(QUERY_NODE_NODE_LIST); + if (NULL == node) { + FLT_ERR_RET(TSDB_CODE_OUT_OF_MEMORY); + } SNodeListNode *lnode = (SNodeListNode *)node; lnode->node.resType.type = resType; lnode->pNodeList = list; *pNode = (SNode *)lnode; + FLT_RET(TSDB_CODE_SUCCESS); } void initScalarParam(SScalarParam *pParam) { @@ -213,17 +244,21 @@ TEST(timerangeTest, greater) { SScalarParam res; initScalarParam(&res); + int32_t code = TSDB_CODE_SUCCESS; int64_t tsmall = 222, tbig = 333; - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); - flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); // SFilterInfo *filter = NULL; // int32_t code = filterInitFromNode(opNode1, &filter, FLT_OPTION_NO_REWRITE|FLT_OPTION_TIMESTAMP); // ASSERT_EQ(code, 0); STimeWindow win = {0}; bool isStrict = false; - int32_t code = filterGetTimeRange(opNode1, &win, &isStrict); + code = filterGetTimeRange(opNode1, &win, &isStrict); ASSERT_EQ(code, 0); ASSERT_EQ(isStrict, true); ASSERT_EQ(win.skey, tsmall + 1); @@ -237,25 +272,33 @@ TEST(timerangeTest, greater_and_lower) { bool eRes[5] = {false, false, true, true, true}; SScalarParam res; initScalarParam(&res); + int32_t code = TSDB_CODE_SUCCESS; int64_t tsmall = 222, tbig = 333; - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); - flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig); - flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); SNode *list[2] = {0}; list[0] = opNode1; list[1] = opNode2; - flttMakeLogicNode(&logicNode, LOGIC_COND_TYPE_AND, list, 2); + code = flttMakeLogicNode(&logicNode, LOGIC_COND_TYPE_AND, list, 2); + ASSERT_EQ(code, 0); // SFilterInfo *filter = NULL; // int32_t code = filterInitFromNode(logicNode, &filter, FLT_OPTION_NO_REWRITE|FLT_OPTION_TIMESTAMP); // ASSERT_EQ(code, 0); STimeWindow win = {0}; bool isStrict = false; - int32_t code = filterGetTimeRange(logicNode, &win, &isStrict); + code = filterGetTimeRange(logicNode, &win, &isStrict); ASSERT_EQ(isStrict, true); ASSERT_EQ(code, 0); ASSERT_EQ(win.skey, tsmall + 1); @@ -269,25 +312,33 @@ TEST(timerangeTest, greater_equal_and_lower_equal) { bool eRes[5] = {false, false, true, true, true}; SScalarParam res; initScalarParam(&res); + int32_t code = TSDB_CODE_SUCCESS; int64_t tsmall = 222, tbig = 333; - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); - flttMakeOpNode(&opNode1, OP_TYPE_GREATER_EQUAL, TSDB_DATA_TYPE_BOOL, pcol, pval); - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig); - flttMakeOpNode(&opNode2, OP_TYPE_LOWER_EQUAL, TSDB_DATA_TYPE_BOOL, pcol, pval); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode1, OP_TYPE_GREATER_EQUAL, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode2, OP_TYPE_LOWER_EQUAL, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); SNode *list[2] = {0}; list[0] = opNode1; list[1] = opNode2; - flttMakeLogicNode(&logicNode, LOGIC_COND_TYPE_AND, list, 2); + code = flttMakeLogicNode(&logicNode, LOGIC_COND_TYPE_AND, list, 2); + ASSERT_EQ(code, 0); // SFilterInfo *filter = NULL; // int32_t code = filterInitFromNode(logicNode, &filter, FLT_OPTION_NO_REWRITE|FLT_OPTION_TIMESTAMP); // ASSERT_EQ(code, 0); STimeWindow win = {0}; bool isStrict = false; - int32_t code = filterGetTimeRange(logicNode, &win, &isStrict); + code = filterGetTimeRange(logicNode, &win, &isStrict); ASSERT_EQ(isStrict, true); ASSERT_EQ(code, 0); ASSERT_EQ(win.skey, tsmall); @@ -301,42 +352,58 @@ TEST(timerangeTest, greater_and_lower_not_strict) { bool eRes[5] = {false, false, true, true, true}; SScalarParam res; initScalarParam(&res); + int32_t code = TSDB_CODE_SUCCESS; int64_t tsmall1 = 222, tbig1 = 333; int64_t tsmall2 = 444, tbig2 = 555; SNode *list[2] = {0}; - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall1); - flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig1); - flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall1); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig1); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); list[0] = opNode1; list[1] = opNode2; - flttMakeLogicNode(&logicNode1, LOGIC_COND_TYPE_AND, list, 2); + code = flttMakeLogicNode(&logicNode1, LOGIC_COND_TYPE_AND, list, 2); + ASSERT_EQ(code, 0); - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall2); - flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); - flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); - flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig2); - flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tsmall2); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode1, OP_TYPE_GREATER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); + code = flttMakeColumnNode(&pcol, NULL, TSDB_DATA_TYPE_TIMESTAMP, sizeof(int64_t), 0, NULL); + ASSERT_EQ(code, 0); + code = flttMakeValueNode(&pval, TSDB_DATA_TYPE_TIMESTAMP, &tbig2); + ASSERT_EQ(code, 0); + code = flttMakeOpNode(&opNode2, OP_TYPE_LOWER_THAN, TSDB_DATA_TYPE_BOOL, pcol, pval); + ASSERT_EQ(code, 0); list[0] = opNode1; list[1] = opNode2; - flttMakeLogicNode(&logicNode2, LOGIC_COND_TYPE_AND, list, 2); + code = flttMakeLogicNode(&logicNode2, LOGIC_COND_TYPE_AND, list, 2); + ASSERT_EQ(code, 0); list[0] = logicNode1; list[1] = logicNode2; - flttMakeLogicNode(&logicNode1, LOGIC_COND_TYPE_OR, list, 2); + code = flttMakeLogicNode(&logicNode1, LOGIC_COND_TYPE_OR, list, 2); + ASSERT_EQ(code, 0); // SFilterInfo *filter = NULL; // int32_t code = filterInitFromNode(logicNode, &filter, FLT_OPTION_NO_REWRITE|FLT_OPTION_TIMESTAMP); // ASSERT_EQ(code, 0); STimeWindow win = {0}; bool isStrict = false; - int32_t code = filterGetTimeRange(logicNode1, &win, &isStrict); + code = filterGetTimeRange(logicNode1, &win, &isStrict); ASSERT_EQ(isStrict, false); ASSERT_EQ(code, 0); ASSERT_EQ(win.skey, tsmall1 + 1);