diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 3b4a06fe4c3c7a9d2405c2253df84087ffe7045e..d2e1dd2e991ea9b9d75b16c4912988a807f454e8 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 db626b05e8e7bdd4c0ce70dde7b268d7a1b366b9..22e31f87020c1635d68b21b8234d5f28b12ff82d 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);