From 6f0a0215c40375ffa4ea1959599e80ede29b66f4 Mon Sep 17 00:00:00 2001 From: Alex Duan <417921451@qq.com> Date: Tue, 6 Sep 2022 13:05:28 +0800 Subject: [PATCH] fix(query): V24 save row count with int16_t smaller --- src/common/inc/texpr.h | 2 +- src/common/src/texpr.c | 42 ++++++++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/common/inc/texpr.h b/src/common/inc/texpr.h index 311f650733..1ec942c421 100644 --- a/src/common/inc/texpr.h +++ b/src/common/inc/texpr.h @@ -72,7 +72,7 @@ struct SSchema; typedef struct { int16_t type; int16_t bytes; - int16_t numOfRows; + int32_t numOfRows; char* data; } tExprOperandInfo; diff --git a/src/common/src/texpr.c b/src/common/src/texpr.c index 673f5fcc9f..fa332113b7 100644 --- a/src/common/src/texpr.c +++ b/src/common/src/texpr.c @@ -627,55 +627,56 @@ void exprTreeExprNodeTraverse(tExprNode *pExpr, int32_t numOfRows, tExprOperandI pl = ltmp; pt = transl; + int32_t i; switch (left.type) { case TSDB_DATA_TYPE_TINYINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int8_t *) pl + i)); } break; case TSDB_DATA_TYPE_SMALLINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int16_t *) pl + i)); } break; case TSDB_DATA_TYPE_INT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int32_t *) pl + i)); } break; case TSDB_DATA_TYPE_BIGINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int64_t *) pl + i)); } break; case TSDB_DATA_TYPE_UTINYINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint8_t *) pl + i)); } break; case TSDB_DATA_TYPE_USMALLINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint16_t *) pl + i)); } break; case TSDB_DATA_TYPE_UINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint32_t *) pl + i)); } break; case TSDB_DATA_TYPE_UBIGINT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint64_t *) pl + i)); } break; case TSDB_DATA_TYPE_FLOAT: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((float *) pl + i)); } break; case TSDB_DATA_TYPE_DOUBLE: - for (int16_t i = 0; i < left.numOfRows; i++) { + for (i = 0; i < left.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((double *) pl + i)); } break; @@ -725,55 +726,56 @@ void exprTreeExprNodeTraverse(tExprNode *pExpr, int32_t numOfRows, tExprOperandI pr = rtmp; pt = transr; + int32_t i; switch (right.type) { case TSDB_DATA_TYPE_TINYINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int8_t *) pr + i)); } break; case TSDB_DATA_TYPE_SMALLINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int16_t *) pr + i)); } break; case TSDB_DATA_TYPE_INT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int32_t *) pr + i)); } break; case TSDB_DATA_TYPE_BIGINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((int64_t *) pr + i)); } break; case TSDB_DATA_TYPE_UTINYINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint8_t *) pr + i)); } break; case TSDB_DATA_TYPE_USMALLINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint16_t *) pr + i)); } break; case TSDB_DATA_TYPE_UINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint32_t *) pr + i)); } break; case TSDB_DATA_TYPE_UBIGINT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((uint64_t *) pr + i)); } break; case TSDB_DATA_TYPE_FLOAT: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((float *) pr + i)); } break; case TSDB_DATA_TYPE_DOUBLE: - for (int16_t i = 0; i < right.numOfRows; i++) { + for (i = 0; i < right.numOfRows; i++) { *((int64_t *) pt + i) = (int64_t)(*((double *) pr + i)); } break; -- GitLab