From 20ad86fc50f821a4c93997c6d8aa87b2cab58b69 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 24 Nov 2021 22:33:53 +0800 Subject: [PATCH] fix group by json tag format [change json type with qid return logic] --- src/client/src/tscSQLParser.c | 1 + src/client/src/tscServer.c | 3 +-- src/client/src/tscSql.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index c7f0e1fe19..7016eec367 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -2199,6 +2199,7 @@ int32_t insertResultField(SQueryInfo* pQueryInfo, int32_t outputIndex, SColumnLi char keyMd5[TSDB_MAX_JSON_KEY_MD5_LEN + 1] = {0}; jsonKeyMd5(fieldName, strlen(fieldName), keyMd5); strncpy(pInfo->fieldJson.name, keyMd5, sizeof(pInfo->fieldJson.name)); + pInfo->fieldJson.type = TSDB_DATA_TYPE_JSON; } pInfo->pExpr = pSqlExpr; diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 2e6cee31bf..9224a13c25 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -2655,12 +2655,11 @@ static void updateFieldForJson(SSqlObj *pSql, SQueryTableRsp *pQueryAttr){ SInternalField *pField = tscFieldInfoGetInternalField(pFieldInfo, i); if (pField->field.type == TSDB_DATA_TYPE_JSON) { - pField->fieldJson.type = TSDB_DATA_TYPE_JSON; for (int k = 0; k < pQueryAttr->tJsonSchLen; ++k) { if (strncmp(pField->fieldJson.name, pQueryAttr->tagJsonSchema[k].name, TSDB_MAX_JSON_KEY_LEN) == 0 && pQueryAttr->tagJsonSchema[k].type != TSDB_DATA_TYPE_JSON) { pField->fieldJson.type = pQueryAttr->tagJsonSchema[k].type; - pField->fieldJson.bytes = TYPE_BYTES[pField->field.type]; + pField->fieldJson.bytes = TYPE_BYTES[pField->fieldJson.type]; tscDebug("0x%" PRIx64 " change json type %s:%s to %d", pSql->self, pField->field.name, pQueryAttr->tagJsonSchema[k].name, pField->fieldJson.type); break; diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index 672d385cc5..37482389f8 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -439,7 +439,7 @@ TAOS_FIELD *taos_fetch_fields(TAOS_RES *res) { if (pField->visible) { f[j] = pField->field; - if(f[j].type == TSDB_DATA_TYPE_JSON && pField->fieldJson.type != TSDB_DATA_TYPE_NULL){ + if(f[j].type == TSDB_DATA_TYPE_JSON){ f[j].type = pField->fieldJson.type; if(!IS_VAR_DATA_TYPE(f[j].type) && f[j].type != TSDB_DATA_TYPE_JSON){ f[j].bytes = pField->fieldJson.bytes; -- GitLab