191 lines
6.7 KiB
Python
191 lines
6.7 KiB
Python
import taos
|
|
import sys
|
|
import datetime
|
|
import inspect
|
|
|
|
from util.log import *
|
|
from util.sql import *
|
|
from util.cases import *
|
|
from util.common import tdCom
|
|
|
|
class TDTestCase:
|
|
|
|
def init(self, conn, logSql, replicaVar=1):
|
|
self.replicaVar = int(replicaVar)
|
|
tdLog.debug(f"start to excute {__file__}")
|
|
tdSql.init(conn.cursor(), True)
|
|
|
|
def initDB(self):
|
|
tdSql.execute("drop database if exists db")
|
|
tdSql.execute("create database if not exists db")
|
|
|
|
def stopTest(self):
|
|
tdSql.execute("drop database if exists db")
|
|
|
|
def like_wildcard_test(self):
|
|
tdSql.execute("create table db.t1x (ts timestamp, c1 varchar(100))")
|
|
tdSql.execute("create table db.t_1x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.query("select * from information_schema.ins_columns where table_name like '%1x'")
|
|
tdSql.checkRows(4)
|
|
|
|
tdSql.query("select * from information_schema.ins_columns where table_name like '%\_1x'")
|
|
tdSql.checkRows(2)
|
|
|
|
|
|
tdSql.query("insert into db.t1x values(now, 'abc'), (now+1s, 'a%c'),(now+2s, 'a_c'),(now+3s, '_c'),(now+4s, '%c')")
|
|
|
|
tdSql.query("select * from db.t1x")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%_c'")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%__c'")
|
|
tdSql.checkRows(3)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%\_c'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%\%c'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '_\%c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "a%c")
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '_\_c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "a_c")
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%%_c'")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '%_%c'")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t1x where c1 like '__%c'")
|
|
tdSql.checkRows(3)
|
|
|
|
tdSql.query("select * from db.t1x where c1 not like '__%c'")
|
|
tdSql.checkRows(2)
|
|
|
|
def like_cnc_wildcard_test(self):
|
|
tdSql.execute("create table db.t3x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.execute("insert into db.t3x values(now, '我是中文'), (now+1s, '我是_中文'), (now+2s, '我是%中文'), (now+3s, '%中文'),(now+4s, '_中文')")
|
|
tdSql.query("select * from db.t3x")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '%中文'")
|
|
tdSql.checkRows(5)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '%中_文'")
|
|
tdSql.checkRows(0)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '%\%中文'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '%\_中文'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '_中文'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t3x where c1 like '\_中文'")
|
|
tdSql.checkRows(1)
|
|
|
|
def like_multi_wildcard_test(self):
|
|
tdSql.execute("create table db.t4x (ts timestamp, c1 varchar(100))")
|
|
|
|
# 插入测试数据
|
|
tdSql.execute("insert into db.t4x values(now, 'abc'), (now+1s, 'a%c'),(now+2s, 'a_c'),(now+3s, '_c'),(now+4s, '%c')")
|
|
tdSql.execute("insert into db.t4x values(now+5s, '%%%c'),(now+6s, '___c'),(now+7s, '%_%c'),(now+8s, '%\\c')")
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '%%%_'")
|
|
tdSql.checkRows(9)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '\%\%\%_'")
|
|
tdSql.checkRows(1)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '%\_%%'")
|
|
tdSql.checkRows(4)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '_\%\%'")
|
|
tdSql.checkRows(0)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '%abc%'")
|
|
tdSql.checkRows(1)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '_%abc%'")
|
|
tdSql.checkRows(0)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '\%%\%%'")
|
|
tdSql.checkRows(2)
|
|
|
|
tdSql.query("select * from db.t4x where c1 like '\%\_%\%%'")
|
|
tdSql.checkRows(1)
|
|
|
|
def like_wildcard_test2(self):
|
|
tdSql.execute("create table db.t5x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.execute("insert into db.t5x values(now(), 'a\%c')")
|
|
tdSql.execute("insert into db.t5x values(now+1s, 'a\%bbbc')")
|
|
tdSql.execute("insert into db.t5x values(now()+2s, 'a%c')")
|
|
|
|
tdSql.query("select * from db.t5x where c1 like 'a\%c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "a%c")
|
|
|
|
tdSql.execute("create table db.t6x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.execute("insert into db.t6x values(now(), '\%c')")
|
|
tdSql.execute("insert into db.t6x values(now+1s, '\%bbbc')")
|
|
tdSql.execute("insert into db.t6x values(now()+2s, '%c')")
|
|
|
|
tdSql.query("select * from db.t6x where c1 like '\%c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "%c")
|
|
|
|
tdSql.execute("create table db.t7x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.execute("insert into db.t7x values(now(), 'a\_c')")
|
|
tdSql.execute("insert into db.t7x values(now+1s, 'a\_bbbc')")
|
|
tdSql.execute("insert into db.t7x values(now()+2s, 'a_c')")
|
|
|
|
tdSql.query("select * from db.t7x where c1 like 'a\_c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "a_c")
|
|
|
|
tdSql.execute("create table db.t8x (ts timestamp, c1 varchar(100))")
|
|
|
|
tdSql.execute("insert into db.t8x values(now(), '\_c')")
|
|
tdSql.execute("insert into db.t8x values(now+1s, '\_bbbc')")
|
|
tdSql.execute("insert into db.t8x values(now()+2s, '_c')")
|
|
|
|
tdSql.query("select * from db.t8x where c1 like '\_c'")
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0, 1, "_c")
|
|
|
|
def run(self):
|
|
tdLog.printNoPrefix("==========start like_wildcard_test run ...............")
|
|
tdSql.prepare(replica = self.replicaVar)
|
|
|
|
|
|
self.initDB()
|
|
self.like_wildcard_test()
|
|
self.like_cnc_wildcard_test()
|
|
self.like_multi_wildcard_test()
|
|
self.like_wildcard_test2()
|
|
tdLog.printNoPrefix("==========end like_wildcard_test run ...............")
|
|
|
|
self.stopTest()
|
|
|
|
def stop(self):
|
|
tdSql.close()
|
|
tdLog.success(f"{__file__} successfully executed")
|
|
|
|
|
|
tdCases.addLinux(__file__, TDTestCase())
|
|
tdCases.addWindows(__file__, TDTestCase())
|