From eac34d253e80bf8bd50e5c5b2eadf00865a72074 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 19 Nov 2021 20:12:05 +0800 Subject: [PATCH] change json output format --- src/client/src/tscUtil.c | 4 +++- src/kit/shell/src/shellEngine.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index 18a4018fa2..c0715bc4ac 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -750,7 +750,9 @@ static void setResRawPtrImpl(SSqlRes* pRes, SInternalField* pInfo, int32_t i, bo p += pInfo->field.bytes; } memcpy(pRes->urow[i], pRes->buffer[i], pInfo->field.bytes * pRes->numOfRows); - }else if (convertNchar && pInfo->field.type == TSDB_DATA_TYPE_JSON && *(char*)(pRes->urow[i]) == TSDB_DATA_TYPE_NCHAR) { + }else if (convertNchar && pInfo->field.type == TSDB_DATA_TYPE_JSON + && *(char*)(pRes->urow[i]) == TSDB_DATA_TYPE_NCHAR + && !isNull(POINTER_SHIFT(pRes->urow[i], CHAR_BYTES), TSDB_DATA_TYPE_JSON)) { // convert unicode to native code in a temporary buffer extra one byte for terminated symbol char* buffer = realloc(pRes->buffer[i], pInfo->field.bytes * pRes->numOfRows); if (buffer == NULL) return; diff --git a/src/kit/shell/src/shellEngine.c b/src/kit/shell/src/shellEngine.c index d496776954..1283183441 100644 --- a/src/kit/shell/src/shellEngine.c +++ b/src/kit/shell/src/shellEngine.c @@ -483,6 +483,7 @@ static void dumpFieldToFile(FILE* fp, char* val, TAOS_FIELD* field, int32_t leng val += CHAR_BYTES; if(type == TSDB_DATA_TYPE_NCHAR) { length = varDataLen(val); + val = varDataVal(val); } } @@ -665,6 +666,7 @@ static void printField(char* val, TAOS_FIELD* field, int width, int32_t length, val += CHAR_BYTES; if(type == TSDB_DATA_TYPE_NCHAR) { length = varDataLen(val); + val = varDataVal(val); } } -- GitLab