From 1e135779e730bdada93e4a8f60258d08890dc1c9 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 29 Sep 2021 16:28:49 +0800 Subject: [PATCH] TD-6129 add tag?'key' in where logic --- src/client/src/tscSQLParser.c | 4 +++- tests/pytest/stable/json_tag.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 60001099c8..915bb11381 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -4464,7 +4464,9 @@ static int32_t validateMatchExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_ } SSchema* pSchema = tscGetTableSchema(pTableMeta); - if ((pLeft->tokenId != TK_ARROW) && (!isTablenameToken(&pLeft->columnName)) && (pSchema[index].type != TSDB_DATA_TYPE_BINARY)) { + if ((pLeft->tokenId != TK_ARROW) && (!isTablenameToken(&pLeft->columnName)) + && (pSchema[index].type != TSDB_DATA_TYPE_BINARY) + && (pSchema[index].type == TSDB_DATA_TYPE_JSON && !JSON_TYPE_BINARY)) { return invalidOperationMsg(msgBuf, msg2); } diff --git a/tests/pytest/stable/json_tag.py b/tests/pytest/stable/json_tag.py index ae57819b27..3d239c62de 100644 --- a/tests/pytest/stable/json_tag.py +++ b/tests/pytest/stable/json_tag.py @@ -94,6 +94,20 @@ class TDTestCase: tdSql.query("select *,tbname from db_json_tag_test.jsons1 where jtag->'num'=5 or jtag?'sex'") tdSql.checkRows(2) + # test with tbname + tdSql.query("select * from db_json_tag_test.jsons1 where tbname = 'jsons1_1'") + tdSql.checkRows(1) + + tdSql.query("select * from db_json_tag_test.jsons1 where tbname = 'jsons1_1' or jtag?'num'") + tdSql.checkRows(3) + + tdSql.query("select * from db_json_tag_test.jsons1 where tbname = 'jsons1_1' and jtag?'num'") + tdSql.checkRows(0) + + tdSql.query("select * from db_json_tag_test.jsons1 where tbname = 'jsons1_1' or jtag->'num'=5") + tdSql.checkRows(2) + + def stop(self): tdSql.close() tdLog.success("%s successfully executed" % __file__) -- GitLab