From fe7793b26a19f9dc56d6d834d6a701031a696d65 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 29 Sep 2021 11:01:03 +0800 Subject: [PATCH] TD-6129 add tag?'key' in where logic --- src/client/src/tscSql.c | 2 +- tests/pytest/stable/json_tag.py | 32 ++++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index 5fdaad0d66..c5b7d5e119 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -439,7 +439,7 @@ TAOS_FIELD *taos_fetch_fields(TAOS_RES *res) { f[j] = pField->field; // revise the length for binary and nchar fields - if (f[j].type == TSDB_DATA_TYPE_BINARY) { + if (f[j].type == TSDB_DATA_TYPE_BINARY || f[j].type == TSDB_DATA_TYPE_JSON) { f[j].bytes -= VARSTR_HEADER_SIZE; } else if (f[j].type == TSDB_DATA_TYPE_NCHAR) { f[j].bytes = (f[j].bytes - VARSTR_HEADER_SIZE)/TSDB_NCHAR_SIZE; diff --git a/tests/pytest/stable/json_tag.py b/tests/pytest/stable/json_tag.py index 5c69b19bce..9bafdb6556 100644 --- a/tests/pytest/stable/json_tag.py +++ b/tests/pytest/stable/json_tag.py @@ -35,8 +35,21 @@ class TDTestCase: tdSql.error("CREATE TABLE if not exists db_json_tag_test.jsons1_3 using db_json_tag_test.jsons1 tags(3333)") tdSql.execute("insert into db_json_tag_test.jsons1_2 using db_json_tag_test.jsons1 tags('{\"num\":5,\"location\":\"beijing\"}') values (now, 1, 'sss')") tdSql.error("insert into db_json_tag_test.jsons1_4 using db_json_tag_test.jsons1 tags(3)") + tdSql.execute("insert into db_json_tag_test.jsons1_1 values(now, 33, '3ininw')") print("==============step2") + tdLog.info("alter stable add tag") + tdSql.error("ALTER STABLE db_json_tag_test.jsons1 add tag tag2 nchar(20)") + + tdSql.error("ALTER STABLE db_json_tag_test.jsons1 drop tag jtag") + + tdSql.error("ALTER TABLE db_json_tag_test.jsons1_1 SET TAG jtag=4") + + tdSql.execute("ALTER TABLE db_json_tag_test.jsons1_1 SET TAG jtag='{\"sex\":\"femail\",\"age\":35}'") + tdSql.query("select jtag from db_json_tag_test.jsons1_1") + tdSql.checkData(0, 0, "{\"sex\":\"femail\",\"age\":35}") + + print("==============step3") tdLog.info("select table") tdSql.query("select * from db_json_tag_test.jsons1") @@ -60,17 +73,20 @@ class TDTestCase: tdSql.query("select jtag from db_json_tag_test.jsons1_1") tdSql.checkRows(1) - print("==============step3") - tdLog.info("alter stable add tag") - tdSql.error("ALTER STABLE db_json_tag_test.jsons1 add tag tag2 nchar(20)") + tdSql.query("select * from db_json_tag_test.jsons1 where jtag?'sex' or jtag?'num'") + tdSql.checkRows(2) - tdSql.error("ALTER STABLE db_json_tag_test.jsons1 drop tag jtag") + tdSql.query("select * from db_json_tag_test.jsons1 where jtag?'sex' or jtag?'numww'") + tdSql.checkRows(1) + + tdSql.query("select * from db_json_tag_test.jsons1 where jtag?'sex' and jtag?'num'") + tdSql.checkRows(0) + + tdSql.query("select jtag->'sex' from db_json_tag_test.jsons1 where jtag?'sex' or jtag?'num'") + tdSql.checkData(0, 0, "femail") + tdSql.checkRows(2) - tdSql.error("ALTER TABLE db_json_tag_test.jsons1_1 SET TAG jtag=4") - tdSql.execute("ALTER TABLE db_json_tag_test.jsons1_1 SET TAG jtag='{\"sex\":\"femail\",\"age\":35}'") - tdSql.query("select jtag from db_json_tag_test.jsons1_1") - tdSql.checkData(0, 0, "{\"sex\":\"femail\",\"age\":35}") def stop(self): tdSql.close() tdLog.success("%s successfully executed" % __file__) -- GitLab