From 24ca420e3744549c247c757c34cf72e1b52a8b54 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 24 Sep 2021 16:27:51 +0800 Subject: [PATCH] TD-6129 add tag-> select logic --- src/client/src/tscSQLParser.c | 9 ++++----- src/client/src/tscUtil.c | 1 + src/query/src/qFilter.c | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index eda338bf73..6b80257e25 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -4619,7 +4619,10 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql // ret = setExprToCond(pCmd, &pCondExpr->pTagCond, // *pExpr, NULL, parentOptr); tSqlExpr *rexpr = NULL; - if ((*pExpr)->tokenId == TK_NE && (pSchema->type != TSDB_DATA_TYPE_BINARY && pSchema->type != TSDB_DATA_TYPE_NCHAR && pSchema->type != TSDB_DATA_TYPE_BOOL)) { + if ((*pExpr)->tokenId == TK_NE && (pSchema->type != TSDB_DATA_TYPE_BINARY + && pSchema->type != TSDB_DATA_TYPE_NCHAR + && pSchema->type != TSDB_DATA_TYPE_BOOL + && pSchema->type != TSDB_DATA_TYPE_JSON)) { handleNeOptr(&rexpr, *pExpr); *pExpr = rexpr; } @@ -6063,10 +6066,6 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { return invalidOperationMsg(pMsg, msg14); } - if (pTagsSchema->type == TSDB_DATA_TYPE_JSON && (pItem->pVar.nLen > TSDB_MAX_TAGS_LEN)) { - return invalidOperationMsg(pMsg, msg14); - } - int32_t schemaLen = sizeof(STColumn) * numOfTags; int32_t size = sizeof(SUpdateTableTagValMsg) + pTagsSchema->bytes + schemaLen + TSDB_EXTRA_PAYLOAD_SIZE; diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index db8f0de85c..05d7d5f353 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -73,6 +73,7 @@ int32_t converToStr(char *str, int type, void *buf, int32_t bufSize, int32_t *le case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: + case TSDB_DATA_TYPE_JSON: if (bufSize < 0) { tscError("invalid buf size"); return TSDB_CODE_TSC_INVALID_VALUE; diff --git a/src/query/src/qFilter.c b/src/query/src/qFilter.c index c7a7ea963d..4b43288d8e 100644 --- a/src/query/src/qFilter.c +++ b/src/query/src/qFilter.c @@ -1477,7 +1477,7 @@ int32_t filterTreeToGroup(tExprNode* tree, SFilterInfo *info, SArray* group) { return TSDB_CODE_SUCCESS; } - code = filterAddGroupUnitFromNode(info, tree, group); + code = filterAddGroupUnitFromNode(info, tree, group); _return: @@ -1531,7 +1531,7 @@ void filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t options) if (unit->right.type == FLD_TYPE_VALUE && FILTER_UNIT_OPTR(unit) != TSDB_RELATION_IN) { SFilterField *right = FILTER_UNIT_RIGHT_FIELD(info, unit); char *data = right->data; - if (IS_VAR_DATA_TYPE(type)) { + if (IS_VAR_DATA_TYPE(type) || type == TSDB_DATA_TYPE_JSON) { tlen = varDataLen(data); data += VARSTR_HEADER_SIZE; } @@ -1548,7 +1548,7 @@ void filterDumpInfoToString(SFilterInfo *info, const char *msg, int32_t options) if (unit->right2.type == FLD_TYPE_VALUE && FILTER_UNIT_OPTR(unit) != TSDB_RELATION_IN) { SFilterField *right = FILTER_UNIT_RIGHT2_FIELD(info, unit); char *data = right->data; - if (IS_VAR_DATA_TYPE(type)) { + if (IS_VAR_DATA_TYPE(type) || type == TSDB_DATA_TYPE_JSON) { tlen = varDataLen(data); data += VARSTR_HEADER_SIZE; } -- GitLab