diff --git a/include/common/tcommon.h b/include/common/tcommon.h index 0c4e534734..3c1189da6e 100644 --- a/include/common/tcommon.h +++ b/include/common/tcommon.h @@ -200,18 +200,17 @@ typedef struct SExprInfo { } SExprInfo; typedef struct { - const char* key; - int32_t keyLen; - uint8_t type; - int16_t length; + const char* key; + int32_t keyLen; + uint8_t type; union{ const char* value; - int64_t i; - uint64_t u; - double d; - float f; + int64_t i; + uint64_t u; + double d; + float f; }; - int32_t valueLen; + int32_t length; } SSmlKv; #define QUERY_ASC_FORWARD_STEP 1 diff --git a/source/common/src/tname.c b/source/common/src/tname.c index f67130885c..fa9b6e1e63 100644 --- a/source/common/src/tname.c +++ b/source/common/src/tname.c @@ -317,7 +317,11 @@ void buildChildTableName(RandTableName* rName) { for (int j = 0; j < size; ++j) { SSmlKv* tagKv = taosArrayGetP(rName->tags, j); taosStringBuilderAppendStringLen(&sb, tagKv->key, tagKv->keyLen); - taosStringBuilderAppendStringLen(&sb, tagKv->value, tagKv->length); + if(IS_VAR_DATA_TYPE(tagKv->type)){ + taosStringBuilderAppendStringLen(&sb, tagKv->value, tagKv->length); + }else{ + taosStringBuilderAppendStringLen(&sb, (char*)(&(tagKv->value)), tagKv->length); + } } size_t len = 0; char* keyJoined = taosStringBuilderGetResult(&sb, &len);