diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 35f9a1974b764ee4f5ed33454ed41d714d49afd5..60001099c88373a422dc311a14348351b0b05992 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -4408,7 +4408,7 @@ static int32_t validateLikeExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_t } SSchema* pSchema = tscGetTableSchema(pTableMeta); - if ((!isTablenameToken(&pLeft->columnName)) && !IS_VAR_DATA_TYPE(pSchema[index].type)) { + if ((pLeft->tokenId != TK_ARROW) && (!isTablenameToken(&pLeft->columnName)) && !IS_VAR_DATA_TYPE(pSchema[index].type)) { return invalidOperationMsg(msgBuf, msg2); } } @@ -4464,7 +4464,7 @@ static int32_t validateMatchExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_ } SSchema* pSchema = tscGetTableSchema(pTableMeta); - if ((!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)) { return invalidOperationMsg(msgBuf, msg2); } diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c index 76e69222c1d2ce5dce97179d2855e6c82d2faaad..1b90c274f0a8609802321975b9aca5b798f7c763 100644 --- a/src/tsdb/src/tsdbRead.c +++ b/src/tsdb/src/tsdbRead.c @@ -2684,7 +2684,7 @@ static int32_t getAllTableList(STable* pSuperTable, SArray* list) { while(pRecord){ SArray* tallistOld = *pRecord; - for (int i = 0; i < taosArrayGetSize(tallistOld); ++i) { + for (int i = 0; i < taosArrayGetSize(tallistOld); ++i) { // sort to elimate dumplicate void* element = taosArrayGet(tallistOld, i); void* pFind = taosArraySearch(tablist, element, tsdbCompareJsonMapValue, TD_EQ); if(pFind == NULL){ diff --git a/tests/pytest/stable/json_tag.py b/tests/pytest/stable/json_tag.py index ff85ba26c483b57eff964b42bd47d68d39f327c2..ae57819b2709ed43a581812a327f055bb93015ea 100644 --- a/tests/pytest/stable/json_tag.py +++ b/tests/pytest/stable/json_tag.py @@ -88,7 +88,11 @@ class TDTestCase: tdSql.checkData(0, 0, "femail") tdSql.checkRows(3) + tdSql.query("select *,tbname from db_json_tag_test.jsons1 where jtag->'location'='beijing'") + tdSql.checkRows(3) + tdSql.query("select *,tbname from db_json_tag_test.jsons1 where jtag->'num'=5 or jtag?'sex'") + tdSql.checkRows(2) def stop(self): tdSql.close()