From ca53e4e32a640ef60a404b808cebc6bf7c896d16 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 22 Sep 2021 01:51:51 +0800 Subject: [PATCH] TD-6129 add json type check --- src/client/src/tscParseInsert.c | 10 +++++----- src/client/src/tscSQLParser.c | 9 +++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 3b4a06fe4c..d2e1dd2e99 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -1084,11 +1084,11 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC if(spd.numOfBound == 1 && pTagSchema[spd.boundedColumns[0]].type == TSDB_DATA_TYPE_JSON){ char tmp = sToken.z[sToken.n]; sToken.z[sToken.n] = 0; - if(sToken.type != TK_STRING) { - tdDestroyKVRowBuilder(&kvRowBuilder); - tscDestroyBoundColumnInfo(&spd); - return tscSQLSyntaxErrMsg(pInsertParam->msg, "json type error, should be string", NULL); - } +// if(sToken.type != TK_STRING) { +// tdDestroyKVRowBuilder(&kvRowBuilder); +// tscDestroyBoundColumnInfo(&spd); +// return tscSQLSyntaxErrMsg(pInsertParam->msg, "json type error, should be string", NULL); +// } code = parseJsontoTagData(sToken.z, &kvRowBuilder, pInsertParam->msg, pTagSchema[spd.boundedColumns[0]].colId); if (code != TSDB_CODE_SUCCESS) { tdDestroyKVRowBuilder(&kvRowBuilder); diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index db626b05e8..22e31f8702 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -6072,6 +6072,15 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { tdDestroyKVRowBuilder(&kvRowBuilder); return invalidOperationMsg(pMsg, msg25); } + + char tagVal[TSDB_MAX_TAGS_LEN] = {0}; + int ret = tVariantDump(&(pItem->pVar), tagVal, pTagsSchema->type, true); + if (ret != TSDB_CODE_SUCCESS) { + tdDestroyKVRowBuilder(&kvRowBuilder); + return invalidOperationMsg(pMsg, msg25); + } + tdAddColToKVRow(&kvRowBuilder, pTagsSchema->colId, pTagsSchema->type, tagVal, false); + code = parseJsontoTagData(pItem->pVar.pz, &kvRowBuilder, pMsg, pTagsSchema->colId); if (code != TSDB_CODE_SUCCESS) { tdDestroyKVRowBuilder(&kvRowBuilder); -- GitLab