145 lines
5.5 KiB
Python
145 lines
5.5 KiB
Python
import taos
|
|
import sys
|
|
|
|
from util.log import *
|
|
from util.sql import *
|
|
from util.cases import *
|
|
|
|
|
|
|
|
class TDTestCase:
|
|
|
|
def init(self, conn, logSql, replicaVar=1):
|
|
self.replicaVar = int(replicaVar)
|
|
tdLog.debug(f"start to excute {__file__}")
|
|
#tdSql.init(conn.cursor())
|
|
tdSql.init(conn.cursor(), logSql) # output sql.txt file
|
|
|
|
def check_results(self):
|
|
tdSql.query(f"select count(*) from tb1")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c1) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c2) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c3) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c4) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c5) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c6) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c7) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c8) from tb1")
|
|
tdSql.checkData(0, 0, 0)
|
|
|
|
tdSql.query(f"select count(*) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c1) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c2) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c3) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c4) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c5) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c6) from tb2")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c7) from tb2")
|
|
tdSql.checkData(0, 0, 0)
|
|
tdSql.query(f"select count(c8) from tb2")
|
|
tdSql.checkData(0, 0, 0)
|
|
|
|
for i in range (3, 6):
|
|
tdSql.query(f"select count(*) from tb{i}")
|
|
tdSql.checkData(0, 0, 20000)
|
|
tdSql.query(f"select count(c1) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c2) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c3) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c4) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c5) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c6) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c7) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
tdSql.query(f"select count(c8) from tb{i}")
|
|
tdSql.checkData(0, 0, 10000)
|
|
|
|
|
|
def run(self):
|
|
dbname = 'db'
|
|
tbnames = ['tb1', 'tb2', 'tb3', 'tb4', 'tb5', 'tb6']
|
|
num_rows = 20000
|
|
num_tables = 6
|
|
ts_base = 1685548800000
|
|
|
|
tdSql.prepare()
|
|
|
|
tdLog.printNoPrefix("==========step1:create table")
|
|
|
|
for i in range (num_tables):
|
|
tdSql.execute(
|
|
f'''create table if not exists {dbname}.{tbnames[i]}
|
|
(ts timestamp, c0 tinyint, c1 smallint, c2 int, c3 bigint, c4 double, c5 float, c6 bool, c7 varchar(10), c8 nchar(10))
|
|
|
|
'''
|
|
)
|
|
|
|
|
|
tdLog.printNoPrefix("==========step2:insert data")
|
|
|
|
for i in range(num_rows):
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[0]} values ({ts_base + i}, null, null, null, null, null, null, null, null, null)")
|
|
|
|
for i in range(num_rows):
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[1]} values ({ts_base + i}, 1, 1, 1, 1, 1, 1, 1, null, null)")
|
|
|
|
for i in range(num_rows):
|
|
if i % 2 == 0:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[2]} values ({ts_base + i}, null, null, null, null, null, null, null, null, null)")
|
|
else:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[2]} values ({ts_base + i}, 1, 1, 1, 1, 1, 1, 1, 'binary', 'nchar')")
|
|
|
|
for i in range(num_rows):
|
|
if i % 2 == 0:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[3]} values ({ts_base + i}, null, null, null, null, null, null, null, 'binary', 'nchar')")
|
|
else:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[3]} values ({ts_base + i}, 1, 1, 1, 1, 1, 1, 1, null, null)")
|
|
|
|
for i in range(num_rows):
|
|
if i < num_rows / 2:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[4]} values ({ts_base + i}, null, null, null, null, null, null, null, null, null)")
|
|
else:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[4]} values ({ts_base + i}, 1, 1, 1, 1, 1, 1, 1, 'binary', 'nchar')")
|
|
|
|
for i in range(num_rows):
|
|
if i >= num_rows / 2:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[5]} values ({ts_base + i}, null, null, null, null, null, null, null, null, null)")
|
|
else:
|
|
tdSql.execute(f"insert into {dbname}.{tbnames[5]} values ({ts_base + i}, 1, 1, 1, 1, 1, 1, 1, 'binary', 'nchar')")
|
|
|
|
|
|
tdLog.printNoPrefix("==========step3:check result in memory")
|
|
self.check_results();
|
|
|
|
tdLog.printNoPrefix("==========step3:check result from disk")
|
|
tdSql.execute(f"flush database db")
|
|
self.check_results();
|
|
|
|
|
|
def stop(self):
|
|
tdSql.close()
|
|
tdLog.success(f"{__file__} successfully executed")
|
|
|
|
tdCases.addLinux(__file__, TDTestCase())
|
|
tdCases.addWindows(__file__, TDTestCase())
|