diff --git a/source/libs/scalar/src/filter.c b/source/libs/scalar/src/filter.c index 807fb5e237..e482a1d241 100644 --- a/source/libs/scalar/src/filter.c +++ b/source/libs/scalar/src/filter.c @@ -4874,7 +4874,9 @@ EDealRes fltReviseRewriter(SNode **pNode, void *pContext) { type = tmp; } } - exprNode->resType.type = type; + if (IS_NUMERIC_TYPE(type)){ + exprNode->resType.type = type; + } } if ((0 != type && type != refNode->node.resType.type) || OP_TYPE_NOT_IN == node->opType) { stat->scalarMode = true; diff --git a/source/libs/scalar/src/sclvector.c b/source/libs/scalar/src/sclvector.c index b862f42a37..bc0f12f7b2 100644 --- a/source/libs/scalar/src/sclvector.c +++ b/source/libs/scalar/src/sclvector.c @@ -1069,7 +1069,7 @@ int32_t vectorGetConvertType(int32_t type1, int32_t type2) { int32_t vectorConvertSingleCol(SScalarParam *input, SScalarParam *output, int32_t type, int32_t startIndex, int32_t numOfRows) { - if (input->columnData == NULL && input->pHashFilterVar != NULL){ + if (input->columnData == NULL && (input->pHashFilter != NULL || input->pHashFilterVar != NULL)){ return TSDB_CODE_SUCCESS; } output->numOfRows = input->numOfRows;