diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 7b2cc5d298c13c338218ce235e9946cc4d7e48c4..b7a6ee6e75518015e35ac7b32b9c65f956b36c32 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -3105,3 +3105,4 @@ void tscInitMsgsFp() { tscKeepConn[TSDB_SQL_HB] = 1; } + \ No newline at end of file diff --git a/src/query/inc/qFilter.h b/src/query/inc/qFilter.h index d7edefd9cdc82b1c0b41648245ae50a071de96bc..75d6f0b745f15451ae9f8acb24ab2a26ee26d6d1 100644 --- a/src/query/inc/qFilter.h +++ b/src/query/inc/qFilter.h @@ -30,6 +30,8 @@ extern "C" { #define FILTER_DEFAULT_VALUE_SIZE 4 #define FILTER_DEFAULT_GROUP_UNIT_SIZE 2 +#define MAX_NUM_STR_SIZE 40 + enum { FLD_TYPE_COLUMN = 1, FLD_TYPE_VALUE = 2, diff --git a/src/query/src/qFilter.c b/src/query/src/qFilter.c index 605fdd64cef60411685a8dfda79f6a3f0c7d08f0..1aa5ab8437fe12b840c87ee679f5e1f462404744 100644 --- a/src/query/src/qFilter.c +++ b/src/query/src/qFilter.c @@ -1375,9 +1375,11 @@ int32_t filterInitValFieldData(SFilterInfo *info) { } if (type == TSDB_DATA_TYPE_BINARY) { - fi->data = calloc(1, var->nLen + VARSTR_HEADER_SIZE); + size_t len = (var->nType == TSDB_DATA_TYPE_BINARY || var->nType == TSDB_DATA_TYPE_NCHAR) ? var->nLen : MAX_NUM_STR_SIZE; + fi->data = calloc(1, len + 1 + VARSTR_HEADER_SIZE); } else if (type == TSDB_DATA_TYPE_NCHAR) { - fi->data = calloc(1, (var->nLen + VARSTR_HEADER_SIZE) * TSDB_NCHAR_SIZE); + size_t len = (var->nType == TSDB_DATA_TYPE_BINARY || var->nType == TSDB_DATA_TYPE_NCHAR) ? var->nLen : MAX_NUM_STR_SIZE; + fi->data = calloc(1, (len + 1) * TSDB_NCHAR_SIZE + VARSTR_HEADER_SIZE); } else { if (var->nType == TSDB_DATA_TYPE_VALUE_ARRAY) { //TIME RANGE fi->data = calloc(var->nLen, tDataTypes[type].bytes);