Merge pull request #14823 from taosdata/fix/merge_interval_agg
fix(test): fix test cases
This commit is contained in:
commit
b32a6e8406
|
@ -16,18 +16,18 @@ class TDTestCase:
|
||||||
self.rowNum = 10
|
self.rowNum = 10
|
||||||
self.ts = 1640966400000 # 2022-1-1 00:00:00.000
|
self.ts = 1640966400000 # 2022-1-1 00:00:00.000
|
||||||
def check_customize_param_ms(self):
|
def check_customize_param_ms(self):
|
||||||
|
|
||||||
time_zone = time.strftime('%z')
|
time_zone = time.strftime('%z')
|
||||||
tdSql.execute('create database db1 precision "ms"')
|
tdSql.execute('create database db1 precision "ms"')
|
||||||
tdSql.execute('use db1')
|
tdSql.execute('use db1')
|
||||||
tdSql.execute('create table if not exists ntb(ts timestamp, c1 int, c2 timestamp)')
|
tdSql.execute('create table if not exists ntb(ts timestamp, c1 int, c2 timestamp)')
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute("insert into ntb values(%d, %d, %d)"
|
tdSql.execute("insert into ntb values(%d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, self.ts + i))
|
% (self.ts + i, i + 1, self.ts + i))
|
||||||
tdSql.query('select to_iso8601(ts) from ntb')
|
tdSql.query('select to_iso8601(ts) from ntb')
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],f'2022-01-01T00:00:00.00{i}{time_zone}')
|
tdSql.checkEqual(tdSql.queryResult[i][0],f'2022-01-01T00:00:00.00{i}{time_zone}')
|
||||||
|
|
||||||
timezone_list = ['+0000','+0100','+0200','+0300','+0330','+0400','+0500','+0530','+0600','+0700','+0800','+0900','+1000','+1100','+1200',\
|
timezone_list = ['+0000','+0100','+0200','+0300','+0330','+0400','+0500','+0530','+0600','+0700','+0800','+0900','+1000','+1100','+1200',\
|
||||||
'+00','+01','+02','+03','+04','+05','+06','+07','+08','+09','+10','+11','+12',\
|
'+00','+01','+02','+03','+04','+05','+06','+07','+08','+09','+10','+11','+12',\
|
||||||
'+00:00','+01:00','+02:00','+03:00','+03:30','+04:00','+05:00','+05:30','+06:00','+07:00','+08:00','+09:00','+10:00','+11:00','+12:00',\
|
'+00:00','+01:00','+02:00','+03:00','+03:30','+04:00','+05:00','+05:30','+06:00','+07:00','+08:00','+09:00','+10:00','+11:00','+12:00',\
|
||||||
|
@ -39,7 +39,7 @@ class TDTestCase:
|
||||||
tdSql.query(f'select to_iso8601(ts,"{j}") from ntb')
|
tdSql.query(f'select to_iso8601(ts,"{j}") from ntb')
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.checkEqual(tdSql.queryResult[i][0],f'2022-01-01T00:00:00.00{i}{j}')
|
tdSql.checkEqual(tdSql.queryResult[i][0],f'2022-01-01T00:00:00.00{i}{j}')
|
||||||
|
|
||||||
error_param_list = [0,100.5,'a','!']
|
error_param_list = [0,100.5,'a','!']
|
||||||
for i in error_param_list:
|
for i in error_param_list:
|
||||||
tdSql.error(f'select to_iso8601(ts,"{i}") from ntb')
|
tdSql.error(f'select to_iso8601(ts,"{i}") from ntb')
|
||||||
|
@ -47,7 +47,7 @@ class TDTestCase:
|
||||||
error_timezone_param = ['+13','-13','+1300','-1300','+0001','-0001','-0330','-0530']
|
error_timezone_param = ['+13','-13','+1300','-1300','+0001','-0001','-0330','-0530']
|
||||||
for i in error_timezone_param:
|
for i in error_timezone_param:
|
||||||
tdSql.error(f'select to_iso8601(ts,"{i}") from ntb')
|
tdSql.error(f'select to_iso8601(ts,"{i}") from ntb')
|
||||||
|
|
||||||
def check_base_function(self):
|
def check_base_function(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
tdLog.printNoPrefix("==========step1:create tables==========")
|
tdLog.printNoPrefix("==========step1:create tables==========")
|
||||||
|
@ -75,12 +75,12 @@ class TDTestCase:
|
||||||
tdSql.query("select to_iso8601(ts) from ntb")
|
tdSql.query("select to_iso8601(ts) from ntb")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
tdSql.query("select to_iso8601(ts) from db.ntb")
|
tdSql.query("select to_iso8601(ts) from db.ntb")
|
||||||
|
|
||||||
tdSql.query("select to_iso8601(today()) from ntb")
|
tdSql.query("select to_iso8601(today()) from ntb")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
tdSql.query("select to_iso8601(now()) from ntb")
|
tdSql.query("select to_iso8601(now()) from ntb")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
|
|
||||||
tdSql.error("select to_iso8601(timezone()) from ntb")
|
tdSql.error("select to_iso8601(timezone()) from ntb")
|
||||||
tdSql.error("select to_iso8601('abc') from ntb")
|
tdSql.error("select to_iso8601('abc') from ntb")
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ class TDTestCase:
|
||||||
for i in err_param:
|
for i in err_param:
|
||||||
tdSql.error(f"select to_iso8601({i}) from ntb")
|
tdSql.error(f"select to_iso8601({i}) from ntb")
|
||||||
tdSql.error(f"select to_iso8601({i}) from db.ntb")
|
tdSql.error(f"select to_iso8601({i}) from db.ntb")
|
||||||
|
|
||||||
tdSql.query("select to_iso8601(now) from stb")
|
tdSql.query("select to_iso8601(now) from stb")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
tdSql.query("select to_iso8601(now()) from stb")
|
tdSql.query("select to_iso8601(now()) from stb")
|
||||||
|
@ -126,7 +126,7 @@ class TDTestCase:
|
||||||
tdSql.query(f"select to_iso8601(today()) {i}null from db.stb")
|
tdSql.query(f"select to_iso8601(today()) {i}null from db.stb")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
tdSql.checkData(0,0,None)
|
tdSql.checkData(0,0,None)
|
||||||
|
|
||||||
def run(self): # sourcery skip: extract-duplicate-method
|
def run(self): # sourcery skip: extract-duplicate-method
|
||||||
self.check_base_function()
|
self.check_base_function()
|
||||||
self.check_customize_param_ms()
|
self.check_customize_param_ms()
|
||||||
|
|
|
@ -58,7 +58,7 @@ class TDTestCase:
|
||||||
tag_sql += f"{k} {v},"
|
tag_sql += f"{k} {v},"
|
||||||
create_stb_sql = f'create table {stbname} ({column_sql[:-1]}) tags({tag_sql[:-1]})'
|
create_stb_sql = f'create table {stbname} ({column_sql[:-1]}) tags({tag_sql[:-1]})'
|
||||||
return create_stb_sql
|
return create_stb_sql
|
||||||
|
|
||||||
def data_check(self,column_dict={},tbname = '',values_list = [],tb_num = 1,tb = 'tb',precision = 'ms'):
|
def data_check(self,column_dict={},tbname = '',values_list = [],tb_num = 1,tb = 'tb',precision = 'ms'):
|
||||||
for k,v in column_dict.items():
|
for k,v in column_dict.items():
|
||||||
num_up = 0
|
num_up = 0
|
||||||
|
@ -175,7 +175,7 @@ class TDTestCase:
|
||||||
tdSql.execute('drop database db')
|
tdSql.execute('drop database db')
|
||||||
|
|
||||||
def run(self): # sourcery skip: extract-duplicate-method
|
def run(self): # sourcery skip: extract-duplicate-method
|
||||||
|
|
||||||
self.today_check_ntb()
|
self.today_check_ntb()
|
||||||
self.today_check_stb_tb()
|
self.today_check_stb_tb()
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ class TDTestCase:
|
||||||
c9 = "'nchar_val'"
|
c9 = "'nchar_val'"
|
||||||
c10 = ts
|
c10 = ts
|
||||||
tdSql.execute(f" insert into {tbname} values ({ts},{c1},{c2},{c3},{c4},{c5},{c6},{c7},{c8},{c9},{c10})")
|
tdSql.execute(f" insert into {tbname} values ({ts},{c1},{c2},{c3},{c4},{c5},{c6},{c7},{c8},{c9},{c10})")
|
||||||
|
|
||||||
tdSql.execute("use test")
|
tdSql.execute("use test")
|
||||||
tbnames = ["stb", "sub_tb_1"]
|
tbnames = ["stb", "sub_tb_1"]
|
||||||
support_types = ["BIGINT", "SMALLINT", "TINYINT", "FLOAT", "DOUBLE", "INT"]
|
support_types = ["BIGINT", "SMALLINT", "TINYINT", "FLOAT", "DOUBLE", "INT"]
|
||||||
|
@ -60,7 +60,7 @@ class TDTestCase:
|
||||||
origin_sql = "select {} from {} order by tbname".format(colname, tbname)
|
origin_sql = "select {} from {} order by tbname".format(colname, tbname)
|
||||||
if coltype[1] in support_types:
|
if coltype[1] in support_types:
|
||||||
self.check_result_auto(origin_sql , abs_sql)
|
self.check_result_auto(origin_sql , abs_sql)
|
||||||
|
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
|
|
|
@ -47,7 +47,7 @@ class TDTestCase:
|
||||||
c9 = "'nchar_val'"
|
c9 = "'nchar_val'"
|
||||||
c10 = ts
|
c10 = ts
|
||||||
tdSql.execute(f" insert into {tbname} values ({ts},{c1},{c2},{c3},{c4},{c5},{c6},{c7},{c8},{c9},{c10})")
|
tdSql.execute(f" insert into {tbname} values ({ts},{c1},{c2},{c3},{c4},{c5},{c6},{c7},{c8},{c9},{c10})")
|
||||||
|
|
||||||
tdSql.execute("use test")
|
tdSql.execute("use test")
|
||||||
tbnames = ["stb", "sub_tb_1"]
|
tbnames = ["stb", "sub_tb_1"]
|
||||||
support_types = ["BIGINT", "SMALLINT", "TINYINT", "FLOAT", "DOUBLE", "INT"]
|
support_types = ["BIGINT", "SMALLINT", "TINYINT", "FLOAT", "DOUBLE", "INT"]
|
||||||
|
@ -62,7 +62,7 @@ class TDTestCase:
|
||||||
cols = random.sample(colnames,3)
|
cols = random.sample(colnames,3)
|
||||||
self.check_function("&",False,tbname,cols[0],cols[1],cols[2])
|
self.check_function("&",False,tbname,cols[0],cols[1],cols[2])
|
||||||
self.check_function("|",False,tbname,cols[0],cols[1],cols[2])
|
self.check_function("|",False,tbname,cols[0],cols[1],cols[2])
|
||||||
|
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
|
@ -215,14 +215,14 @@ class TDTestCase:
|
||||||
"abs value check pass , it work as expected ,sql is \"%s\" " % abs_query)
|
"abs value check pass , it work as expected ,sql is \"%s\" " % abs_query)
|
||||||
|
|
||||||
def check_function(self, opera ,agg, tbname , *args):
|
def check_function(self, opera ,agg, tbname , *args):
|
||||||
|
|
||||||
if opera =="&":
|
if opera =="&":
|
||||||
pass
|
pass
|
||||||
elif opera =="|":
|
elif opera =="|":
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
work_sql = " select "
|
work_sql = " select "
|
||||||
for ind , arg in enumerate(args):
|
for ind , arg in enumerate(args):
|
||||||
if ind ==len(args)-1:
|
if ind ==len(args)-1:
|
||||||
work_sql += f"cast({arg} as bigint) "
|
work_sql += f"cast({arg} as bigint) "
|
||||||
|
@ -235,7 +235,7 @@ class TDTestCase:
|
||||||
work_sql+= f" from {tbname} "
|
work_sql+= f" from {tbname} "
|
||||||
tdSql.query(work_sql)
|
tdSql.query(work_sql)
|
||||||
work_result = tdSql.queryResult
|
work_result = tdSql.queryResult
|
||||||
|
|
||||||
origin_sql = " select "
|
origin_sql = " select "
|
||||||
for ind , arg in enumerate(args):
|
for ind , arg in enumerate(args):
|
||||||
if ind ==len(args)-1:
|
if ind ==len(args)-1:
|
||||||
|
@ -323,7 +323,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,None)
|
tdSql.checkData(0,0,None)
|
||||||
tdSql.checkData(1,0,640)
|
tdSql.checkData(1,0,640)
|
||||||
tdSql.checkData(10,0,0)
|
tdSql.checkData(10,0,0)
|
||||||
|
|
||||||
# used for regular table
|
# used for regular table
|
||||||
tdSql.query("select abs(c1)&c3&c3 from t1")
|
tdSql.query("select abs(c1)&c3&c3 from t1")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
|
@ -349,7 +349,7 @@ class TDTestCase:
|
||||||
self.check_function("&",False,"stb1","c1","floor(t1)","abs(c1+c2)","t1+1")
|
self.check_function("&",False,"stb1","c1","floor(t1)","abs(c1+c2)","t1+1")
|
||||||
self.check_function("&",True,"stb1","max(c1)","min(floor(t1))","sum(abs(c1+c2))","last(t1)+1")
|
self.check_function("&",True,"stb1","max(c1)","min(floor(t1))","sum(abs(c1+c2))","last(t1)+1")
|
||||||
self.check_function("&",False,"stb1","abs(abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))))","floor(t1)","abs(c1+c2)","t1+1")
|
self.check_function("&",False,"stb1","abs(abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))))","floor(t1)","abs(c1+c2)","t1+1")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1&abs(c1)&c2&c3 ,c1,c2, t1 from ct1")
|
tdSql.query("select c1&abs(c1)&c2&c3 ,c1,c2, t1 from ct1")
|
||||||
tdSql.checkData(0, 0, 8)
|
tdSql.checkData(0, 0, 8)
|
||||||
|
@ -388,7 +388,7 @@ class TDTestCase:
|
||||||
# agg functions mix with agg functions
|
# agg functions mix with agg functions
|
||||||
|
|
||||||
tdSql.query("select sum(c1&abs(c1)&c2&c3) ,max(c5), count(c5) from stb1")
|
tdSql.query("select sum(c1&abs(c1)&c2&c3) ,max(c5), count(c5) from stb1")
|
||||||
|
|
||||||
tdSql.query("select max(c1)&max(c2)|first(ts), count(c5) from ct1")
|
tdSql.query("select max(c1)&max(c2)|first(ts), count(c5) from ct1")
|
||||||
|
|
||||||
# bug fix for compute
|
# bug fix for compute
|
||||||
|
@ -409,7 +409,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(1, 2, 894.900000000)
|
tdSql.checkData(1, 2, 894.900000000)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
|
@ -490,7 +490,7 @@ class TDTestCase:
|
||||||
self.check_function("&", False ,"ct4","123","abs(c1)","t1","abs(t2)","abs(t3)","abs(t4)","t5")
|
self.check_function("&", False ,"ct4","123","abs(c1)","t1","abs(t2)","abs(t3)","abs(t4)","t5")
|
||||||
self.check_function("&", False ,"ct4","c1+2","abs(t2+2)","t3","abs(t4)","abs(t5)","abs(c1)","t5")
|
self.check_function("&", False ,"ct4","c1+2","abs(t2+2)","t3","abs(t4)","abs(t5)","abs(c1)","t5")
|
||||||
|
|
||||||
tdSql.query(" select sum(c1) from stb1 where t1+10 >1; ")
|
tdSql.query(" select sum(c1) from stb1 where t1+10 >1; ")
|
||||||
tdSql.query("select c1 ,t1 from stb1 where t1 =0 ")
|
tdSql.query("select c1 ,t1 from stb1 where t1 =0 ")
|
||||||
tdSql.checkRows(13)
|
tdSql.checkRows(13)
|
||||||
self.check_function("&", False ,"t1","c1+2","abs(c2)")
|
self.check_function("&", False ,"t1","c1+2","abs(c2)")
|
||||||
|
@ -534,7 +534,7 @@ class TDTestCase:
|
||||||
self.support_super_table_test()
|
self.support_super_table_test()
|
||||||
self.insert_datas_and_check_abs(self.tb_nums,self.row_nums,self.time_step)
|
self.insert_datas_and_check_abs(self.tb_nums,self.row_nums,self.time_step)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
|
|
|
@ -44,7 +44,7 @@ class TDTestCase:
|
||||||
'col12': f'binary({self.binary_length})',
|
'col12': f'binary({self.binary_length})',
|
||||||
'col13': f'nchar({self.nchar_length})'
|
'col13': f'nchar({self.nchar_length})'
|
||||||
}
|
}
|
||||||
|
|
||||||
self.tag_dict = {
|
self.tag_dict = {
|
||||||
'ts_tag' : 'timestamp',
|
'ts_tag' : 'timestamp',
|
||||||
't1': 'tinyint',
|
't1': 'tinyint',
|
||||||
|
@ -79,9 +79,9 @@ class TDTestCase:
|
||||||
self.tag_values = [
|
self.tag_values = [
|
||||||
f'{self.tag_ts},{self.tag_tinyint},{self.tag_smallint},{self.tag_int},{self.tag_bigint},\
|
f'{self.tag_ts},{self.tag_tinyint},{self.tag_smallint},{self.tag_int},{self.tag_bigint},\
|
||||||
{self.tag_utint},{self.tag_usint},{self.tag_uint},{self.tag_ubint},{self.tag_float},{self.tag_double},{self.tag_bool},"{self.binary_str}","{self.nchar_str}"'
|
{self.tag_utint},{self.tag_usint},{self.tag_uint},{self.tag_ubint},{self.tag_float},{self.tag_double},{self.tag_bool},"{self.binary_str}","{self.nchar_str}"'
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
self.percent = [1,50,100]
|
self.percent = [1,50,100]
|
||||||
self.param_list = ['default','t-digest']
|
self.param_list = ['default','t-digest']
|
||||||
def insert_data(self,column_dict,tbname,row_num):
|
def insert_data(self,column_dict,tbname,row_num):
|
||||||
|
@ -90,7 +90,7 @@ class TDTestCase:
|
||||||
insert_list = []
|
insert_list = []
|
||||||
self.setsql.insert_values(column_dict,i,insert_sql,insert_list,self.ts)
|
self.setsql.insert_values(column_dict,i,insert_sql,insert_list,self.ts)
|
||||||
|
|
||||||
|
|
||||||
def function_check_ntb(self):
|
def function_check_ntb(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
tdSql.execute(self.setsql.set_create_normaltable_sql(self.ntbname,self.column_dict))
|
tdSql.execute(self.setsql.set_create_normaltable_sql(self.ntbname,self.column_dict))
|
||||||
|
@ -126,7 +126,7 @@ class TDTestCase:
|
||||||
def run(self):
|
def run(self):
|
||||||
self.function_check_ntb()
|
self.function_check_ntb()
|
||||||
self.function_check_stb()
|
self.function_check_stb()
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
|
@ -48,7 +48,7 @@ class TDTestCase:
|
||||||
'col12': 'binary(20)',
|
'col12': 'binary(20)',
|
||||||
'col13': 'nchar(20)'
|
'col13': 'nchar(20)'
|
||||||
}
|
}
|
||||||
|
|
||||||
self.param_list = [1,100]
|
self.param_list = [1,100]
|
||||||
def insert_data(self,column_dict,tbname,row_num):
|
def insert_data(self,column_dict,tbname,row_num):
|
||||||
insert_sql = self.setsql.set_insertsql(column_dict,tbname,self.binary_str,self.nchar_str)
|
insert_sql = self.setsql.set_insertsql(column_dict,tbname,self.binary_str,self.nchar_str)
|
||||||
|
@ -125,11 +125,11 @@ class TDTestCase:
|
||||||
self.bottom_check_data(f'{stbname}_{i}','child_table')
|
self.bottom_check_data(f'{stbname}_{i}','child_table')
|
||||||
self.bottom_check_data(f'{stbname}','stable')
|
self.bottom_check_data(f'{stbname}','stable')
|
||||||
tdSql.execute(f'drop database {self.dbname}')
|
tdSql.execute(f'drop database {self.dbname}')
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.bottom_check_ntb()
|
self.bottom_check_ntb()
|
||||||
self.bottom_check_stb()
|
self.bottom_check_stb()
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
|
@ -9,14 +9,14 @@ from util.sql import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
|
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -24,7 +24,7 @@ class TDTestCase:
|
||||||
tags (t1 int)
|
tags (t1 int)
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''
|
'''
|
||||||
create table t1
|
create table t1
|
||||||
|
@ -66,14 +66,14 @@ class TDTestCase:
|
||||||
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_result_auto(self ,origin_query , ceil_query):
|
def check_result_auto(self ,origin_query , ceil_query):
|
||||||
pass
|
pass
|
||||||
ceil_result = tdSql.getResult(ceil_query)
|
ceil_result = tdSql.getResult(ceil_query)
|
||||||
origin_result = tdSql.getResult(origin_query)
|
origin_result = tdSql.getResult(origin_query)
|
||||||
|
|
||||||
auto_result =[]
|
auto_result =[]
|
||||||
|
|
||||||
for row in origin_result:
|
for row in origin_result:
|
||||||
row_check = []
|
row_check = []
|
||||||
for elem in row:
|
for elem in row:
|
||||||
|
@ -88,13 +88,13 @@ class TDTestCase:
|
||||||
for row_index , row in enumerate(ceil_result):
|
for row_index , row in enumerate(ceil_result):
|
||||||
for col_index , elem in enumerate(row):
|
for col_index , elem in enumerate(row):
|
||||||
if auto_result[row_index][col_index] != elem:
|
if auto_result[row_index][col_index] != elem:
|
||||||
check_status = False
|
check_status = False
|
||||||
if not check_status:
|
if not check_status:
|
||||||
tdLog.notice("ceil function value has not as expected , sql is \"%s\" "%ceil_query )
|
tdLog.notice("ceil function value has not as expected , sql is \"%s\" "%ceil_query )
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
tdLog.info("ceil value check pass , it work as expected ,sql is \"%s\" "%ceil_query )
|
tdLog.info("ceil value check pass , it work as expected ,sql is \"%s\" "%ceil_query )
|
||||||
|
|
||||||
def test_errors(self):
|
def test_errors(self):
|
||||||
error_sql_lists = [
|
error_sql_lists = [
|
||||||
"select ceil from t1",
|
"select ceil from t1",
|
||||||
|
@ -128,42 +128,42 @@ class TDTestCase:
|
||||||
]
|
]
|
||||||
for error_sql in error_sql_lists:
|
for error_sql in error_sql_lists:
|
||||||
tdSql.error(error_sql)
|
tdSql.error(error_sql)
|
||||||
|
|
||||||
def support_types(self):
|
def support_types(self):
|
||||||
type_error_sql_lists = [
|
type_error_sql_lists = [
|
||||||
"select ceil(ts) from t1" ,
|
"select ceil(ts) from t1" ,
|
||||||
"select ceil(c7) from t1",
|
"select ceil(c7) from t1",
|
||||||
"select ceil(c8) from t1",
|
"select ceil(c8) from t1",
|
||||||
"select ceil(c9) from t1",
|
"select ceil(c9) from t1",
|
||||||
"select ceil(ts) from ct1" ,
|
"select ceil(ts) from ct1" ,
|
||||||
"select ceil(c7) from ct1",
|
"select ceil(c7) from ct1",
|
||||||
"select ceil(c8) from ct1",
|
"select ceil(c8) from ct1",
|
||||||
"select ceil(c9) from ct1",
|
"select ceil(c9) from ct1",
|
||||||
"select ceil(ts) from ct3" ,
|
"select ceil(ts) from ct3" ,
|
||||||
"select ceil(c7) from ct3",
|
"select ceil(c7) from ct3",
|
||||||
"select ceil(c8) from ct3",
|
"select ceil(c8) from ct3",
|
||||||
"select ceil(c9) from ct3",
|
"select ceil(c9) from ct3",
|
||||||
"select ceil(ts) from ct4" ,
|
"select ceil(ts) from ct4" ,
|
||||||
"select ceil(c7) from ct4",
|
"select ceil(c7) from ct4",
|
||||||
"select ceil(c8) from ct4",
|
"select ceil(c8) from ct4",
|
||||||
"select ceil(c9) from ct4",
|
"select ceil(c9) from ct4",
|
||||||
"select ceil(ts) from stb1" ,
|
"select ceil(ts) from stb1" ,
|
||||||
"select ceil(c7) from stb1",
|
"select ceil(c7) from stb1",
|
||||||
"select ceil(c8) from stb1",
|
"select ceil(c8) from stb1",
|
||||||
"select ceil(c9) from stb1" ,
|
"select ceil(c9) from stb1" ,
|
||||||
|
|
||||||
"select ceil(ts) from stbbb1" ,
|
"select ceil(ts) from stbbb1" ,
|
||||||
"select ceil(c7) from stbbb1",
|
"select ceil(c7) from stbbb1",
|
||||||
|
|
||||||
"select ceil(ts) from tbname",
|
"select ceil(ts) from tbname",
|
||||||
"select ceil(c9) from tbname"
|
"select ceil(c9) from tbname"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_error_sql_lists:
|
for type_sql in type_error_sql_lists:
|
||||||
tdSql.error(type_sql)
|
tdSql.error(type_sql)
|
||||||
|
|
||||||
|
|
||||||
type_sql_lists = [
|
type_sql_lists = [
|
||||||
"select ceil(c1) from t1",
|
"select ceil(c1) from t1",
|
||||||
"select ceil(c2) from t1",
|
"select ceil(c2) from t1",
|
||||||
|
@ -193,16 +193,16 @@ class TDTestCase:
|
||||||
"select ceil(c5) from stb1",
|
"select ceil(c5) from stb1",
|
||||||
"select ceil(c6) from stb1",
|
"select ceil(c6) from stb1",
|
||||||
|
|
||||||
"select ceil(c6) as alisb from stb1",
|
"select ceil(c6) as alisb from stb1",
|
||||||
"select ceil(c6) alisb from stb1",
|
"select ceil(c6) alisb from stb1",
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_sql_lists:
|
for type_sql in type_sql_lists:
|
||||||
tdSql.query(type_sql)
|
tdSql.query(type_sql)
|
||||||
|
|
||||||
def basic_ceil_function(self):
|
def basic_ceil_function(self):
|
||||||
|
|
||||||
# basic query
|
# basic query
|
||||||
tdSql.query("select c1 from ct3")
|
tdSql.query("select c1 from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select c1 from t1")
|
tdSql.query("select c1 from t1")
|
||||||
|
@ -222,7 +222,7 @@ class TDTestCase:
|
||||||
tdSql.query("select ceil(c5) from ct3")
|
tdSql.query("select ceil(c5) from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select ceil(c6) from ct3")
|
tdSql.query("select ceil(c6) from ct3")
|
||||||
|
|
||||||
# used for regular table
|
# used for regular table
|
||||||
tdSql.query("select ceil(c1) from t1")
|
tdSql.query("select ceil(c1) from t1")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
|
@ -240,7 +240,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5, 5, None)
|
tdSql.checkData(5, 5, None)
|
||||||
|
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from t1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from t1")
|
||||||
|
|
||||||
# used for sub table
|
# used for sub table
|
||||||
tdSql.query("select ceil(c1) from ct1")
|
tdSql.query("select ceil(c1) from ct1")
|
||||||
tdSql.checkData(0, 0, 8)
|
tdSql.checkData(0, 0, 8)
|
||||||
|
@ -252,20 +252,20 @@ class TDTestCase:
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from ct1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from ct1")
|
||||||
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
||||||
|
|
||||||
# used for stable table
|
# used for stable table
|
||||||
|
|
||||||
tdSql.query("select ceil(c1) from stb1")
|
tdSql.query("select ceil(c1) from stb1")
|
||||||
tdSql.checkRows(25)
|
tdSql.checkRows(25)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from ct4")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) from ct4")
|
||||||
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
||||||
|
|
||||||
|
|
||||||
# used for not exists table
|
# used for not exists table
|
||||||
tdSql.error("select ceil(c1) from stbbb1")
|
tdSql.error("select ceil(c1) from stbbb1")
|
||||||
tdSql.error("select ceil(c1) from tbname")
|
tdSql.error("select ceil(c1) from tbname")
|
||||||
tdSql.error("select ceil(c1) from ct5")
|
tdSql.error("select ceil(c1) from ct5")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1, ceil(c1) from ct1")
|
tdSql.query("select c1, ceil(c1) from ct1")
|
||||||
tdSql.checkData(0 , 0 ,8)
|
tdSql.checkData(0 , 0 ,8)
|
||||||
tdSql.checkData(0 , 1 ,8)
|
tdSql.checkData(0 , 1 ,8)
|
||||||
|
@ -290,7 +290,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0 , 1 ,None)
|
tdSql.checkData(0 , 1 ,None)
|
||||||
tdSql.checkData(0 , 2 ,None)
|
tdSql.checkData(0 , 2 ,None)
|
||||||
tdSql.checkData(0 , 3 ,None)
|
tdSql.checkData(0 , 3 ,None)
|
||||||
|
|
||||||
tdSql.checkData(3 , 0 , 6)
|
tdSql.checkData(3 , 0 , 6)
|
||||||
tdSql.checkData(3 , 1 , 6)
|
tdSql.checkData(3 , 1 , 6)
|
||||||
tdSql.checkData(3 , 2 ,6.66000)
|
tdSql.checkData(3 , 2 ,6.66000)
|
||||||
|
@ -311,7 +311,7 @@ class TDTestCase:
|
||||||
tdSql.query("select max(c5), count(c5) from stb1")
|
tdSql.query("select max(c5), count(c5) from stb1")
|
||||||
tdSql.query("select max(c5), count(c5) from ct1")
|
tdSql.query("select max(c5), count(c5) from ct1")
|
||||||
|
|
||||||
|
|
||||||
# bug fix for count
|
# bug fix for count
|
||||||
tdSql.query("select count(c1) from ct4 ")
|
tdSql.query("select count(c1) from ct4 ")
|
||||||
tdSql.checkData(0,0,9)
|
tdSql.checkData(0,0,9)
|
||||||
|
@ -322,7 +322,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(*) from stb1 ")
|
tdSql.query("select count(*) from stb1 ")
|
||||||
tdSql.checkData(0,0,25)
|
tdSql.checkData(0,0,25)
|
||||||
|
|
||||||
# bug fix for compute
|
# bug fix for compute
|
||||||
tdSql.query("select c1, abs(c1) -0 ,ceil(c1)-0 from ct4 ")
|
tdSql.query("select c1, abs(c1) -0 ,ceil(c1)-0 from ct4 ")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
tdSql.checkData(0, 1, None)
|
tdSql.checkData(0, 1, None)
|
||||||
|
@ -373,10 +373,10 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,3,8.000000000)
|
tdSql.checkData(0,3,8.000000000)
|
||||||
tdSql.checkData(0,4,7.900000000)
|
tdSql.checkData(0,4,7.900000000)
|
||||||
tdSql.checkData(0,5,3.000000000)
|
tdSql.checkData(0,5,3.000000000)
|
||||||
|
|
||||||
def ceil_Arithmetic(self):
|
def ceil_Arithmetic(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
tdSql.execute("drop database if exists bound_test")
|
tdSql.execute("drop database if exists bound_test")
|
||||||
|
@ -405,14 +405,14 @@ class TDTestCase:
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.error(
|
tdSql.error(
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select ceil(c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) ,ceil(c6) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select ceil(c1), ceil(c2) ,ceil(c3), ceil(c4), ceil(c5) ,ceil(c6) from sub1_bound")
|
||||||
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select ceil(c1), ceil(c2) ,ceil(c3), ceil(c3), ceil(c2) ,ceil(c1) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select ceil(c1), ceil(c2) ,ceil(c3), ceil(c3), ceil(c2) ,ceil(c1) from sub1_bound")
|
||||||
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from sub1_bound;" , "select ceil(c1) from sub1_bound" )
|
self.check_result_auto("select ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(ceil(c1)))))))))) nest_col_func from sub1_bound;" , "select ceil(c1) from sub1_bound" )
|
||||||
|
|
||||||
# check basic elem for table per row
|
# check basic elem for table per row
|
||||||
tdSql.query("select ceil(c1+0.2) ,ceil(c2) , ceil(c3+0.3) , ceil(c4-0.3), ceil(c5/2), ceil(c6/2) from sub1_bound ")
|
tdSql.query("select ceil(c1+0.2) ,ceil(c2) , ceil(c3+0.3) , ceil(c4-0.3), ceil(c5/2), ceil(c6/2) from sub1_bound ")
|
||||||
tdSql.checkData(0, 0, 2147483648.000000000)
|
tdSql.checkData(0, 0, 2147483648.000000000)
|
||||||
|
@ -426,7 +426,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(4, 4, -169499995645668991474575059260979281920.000000000)
|
tdSql.checkData(4, 4, -169499995645668991474575059260979281920.000000000)
|
||||||
|
|
||||||
self.check_result_auto("select c1+1 ,c2 , c3*1 , c4/2, c5/2, c6 from sub1_bound" ,"select ceil(c1+1) ,ceil(c2) , ceil(c3*1) , ceil(c4/2), ceil(c5)/2, ceil(c6) from sub1_bound ")
|
self.check_result_auto("select c1+1 ,c2 , c3*1 , c4/2, c5/2, c6 from sub1_bound" ,"select ceil(c1+1) ,ceil(c2) , ceil(c3*1) , ceil(c4/2), ceil(c5)/2, ceil(c6) from sub1_bound ")
|
||||||
|
|
||||||
def support_super_table_test(self):
|
def support_super_table_test(self):
|
||||||
tdSql.execute(" use db ")
|
tdSql.execute(" use db ")
|
||||||
self.check_result_auto( " select c5 from stb1 order by ts " , "select ceil(c5) from stb1 order by ts" )
|
self.check_result_auto( " select c5 from stb1 order by ts " , "select ceil(c5) from stb1 order by ts" )
|
||||||
|
@ -444,26 +444,26 @@ class TDTestCase:
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4: ceil basic query ============")
|
tdLog.printNoPrefix("==========step4: ceil basic query ============")
|
||||||
|
|
||||||
self.basic_ceil_function()
|
self.basic_ceil_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: ceil boundary query ============")
|
tdLog.printNoPrefix("==========step5: ceil boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: ceil filter query ============")
|
tdLog.printNoPrefix("==========step6: ceil filter query ============")
|
||||||
|
|
||||||
self.abs_func_filter()
|
self.abs_func_filter()
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,13 @@ from util.cases import *
|
||||||
|
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
def init(self, conn, powSql):
|
def init(self, conn, powSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -23,7 +23,7 @@ class TDTestCase:
|
||||||
tags (t1 int)
|
tags (t1 int)
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''
|
'''
|
||||||
create table t1
|
create table t1
|
||||||
|
@ -65,14 +65,14 @@ class TDTestCase:
|
||||||
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_result_auto_cos(self ,origin_query , pow_query):
|
def check_result_auto_cos(self ,origin_query , pow_query):
|
||||||
|
|
||||||
pow_result = tdSql.getResult(pow_query)
|
pow_result = tdSql.getResult(pow_query)
|
||||||
origin_result = tdSql.getResult(origin_query)
|
origin_result = tdSql.getResult(origin_query)
|
||||||
|
|
||||||
auto_result =[]
|
auto_result =[]
|
||||||
|
|
||||||
for row in origin_result:
|
for row in origin_result:
|
||||||
row_check = []
|
row_check = []
|
||||||
for elem in row:
|
for elem in row:
|
||||||
|
@ -90,7 +90,7 @@ class TDTestCase:
|
||||||
if auto_result[row_index][col_index] == None and not (auto_result[row_index][col_index] == None and elem == None):
|
if auto_result[row_index][col_index] == None and not (auto_result[row_index][col_index] == None and elem == None):
|
||||||
check_status = False
|
check_status = False
|
||||||
elif auto_result[row_index][col_index] != None and (auto_result[row_index][col_index] - elem > 0.00000001):
|
elif auto_result[row_index][col_index] != None and (auto_result[row_index][col_index] - elem > 0.00000001):
|
||||||
check_status = False
|
check_status = False
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
if not check_status:
|
if not check_status:
|
||||||
|
@ -98,7 +98,7 @@ class TDTestCase:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
tdLog.info("cos value check pass , it work as expected ,sql is \"%s\" "%pow_query )
|
tdLog.info("cos value check pass , it work as expected ,sql is \"%s\" "%pow_query )
|
||||||
|
|
||||||
def test_errors(self):
|
def test_errors(self):
|
||||||
error_sql_lists = [
|
error_sql_lists = [
|
||||||
"select cos from t1",
|
"select cos from t1",
|
||||||
|
@ -132,42 +132,42 @@ class TDTestCase:
|
||||||
]
|
]
|
||||||
for error_sql in error_sql_lists:
|
for error_sql in error_sql_lists:
|
||||||
tdSql.error(error_sql)
|
tdSql.error(error_sql)
|
||||||
|
|
||||||
def support_types(self):
|
def support_types(self):
|
||||||
type_error_sql_lists = [
|
type_error_sql_lists = [
|
||||||
"select cos(ts) from t1" ,
|
"select cos(ts) from t1" ,
|
||||||
"select cos(c7) from t1",
|
"select cos(c7) from t1",
|
||||||
"select cos(c8) from t1",
|
"select cos(c8) from t1",
|
||||||
"select cos(c9) from t1",
|
"select cos(c9) from t1",
|
||||||
"select cos(ts) from ct1" ,
|
"select cos(ts) from ct1" ,
|
||||||
"select cos(c7) from ct1",
|
"select cos(c7) from ct1",
|
||||||
"select cos(c8) from ct1",
|
"select cos(c8) from ct1",
|
||||||
"select cos(c9) from ct1",
|
"select cos(c9) from ct1",
|
||||||
"select cos(ts) from ct3" ,
|
"select cos(ts) from ct3" ,
|
||||||
"select cos(c7) from ct3",
|
"select cos(c7) from ct3",
|
||||||
"select cos(c8) from ct3",
|
"select cos(c8) from ct3",
|
||||||
"select cos(c9) from ct3",
|
"select cos(c9) from ct3",
|
||||||
"select cos(ts) from ct4" ,
|
"select cos(ts) from ct4" ,
|
||||||
"select cos(c7) from ct4",
|
"select cos(c7) from ct4",
|
||||||
"select cos(c8) from ct4",
|
"select cos(c8) from ct4",
|
||||||
"select cos(c9) from ct4",
|
"select cos(c9) from ct4",
|
||||||
"select cos(ts) from stb1" ,
|
"select cos(ts) from stb1" ,
|
||||||
"select cos(c7) from stb1",
|
"select cos(c7) from stb1",
|
||||||
"select cos(c8) from stb1",
|
"select cos(c8) from stb1",
|
||||||
"select cos(c9) from stb1" ,
|
"select cos(c9) from stb1" ,
|
||||||
|
|
||||||
"select cos(ts) from stbbb1" ,
|
"select cos(ts) from stbbb1" ,
|
||||||
"select cos(c7) from stbbb1",
|
"select cos(c7) from stbbb1",
|
||||||
|
|
||||||
"select cos(ts) from tbname",
|
"select cos(ts) from tbname",
|
||||||
"select cos(c9) from tbname"
|
"select cos(c9) from tbname"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_error_sql_lists:
|
for type_sql in type_error_sql_lists:
|
||||||
tdSql.error(type_sql)
|
tdSql.error(type_sql)
|
||||||
|
|
||||||
|
|
||||||
type_sql_lists = [
|
type_sql_lists = [
|
||||||
"select cos(c1) from t1",
|
"select cos(c1) from t1",
|
||||||
"select cos(c2) from t1",
|
"select cos(c2) from t1",
|
||||||
|
@ -197,16 +197,16 @@ class TDTestCase:
|
||||||
"select cos(c5) from stb1",
|
"select cos(c5) from stb1",
|
||||||
"select cos(c6) from stb1",
|
"select cos(c6) from stb1",
|
||||||
|
|
||||||
"select cos(c6) as alisb from stb1",
|
"select cos(c6) as alisb from stb1",
|
||||||
"select cos(c6) alisb from stb1",
|
"select cos(c6) alisb from stb1",
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_sql_lists:
|
for type_sql in type_sql_lists:
|
||||||
tdSql.query(type_sql)
|
tdSql.query(type_sql)
|
||||||
|
|
||||||
def basic_cosin_function(self):
|
def basic_cosin_function(self):
|
||||||
|
|
||||||
# basic query
|
# basic query
|
||||||
tdSql.query("select c1 from ct3")
|
tdSql.query("select c1 from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select c1 from t1")
|
tdSql.query("select c1 from t1")
|
||||||
|
@ -247,7 +247,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5, 5, None)
|
tdSql.checkData(5, 5, None)
|
||||||
|
|
||||||
self.check_result_auto_cos( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from t1", "select cos(abs(c1)), cos(abs(c2)) ,cos(abs(c3)), cos(abs(c4)), cos(abs(c5)) from t1")
|
self.check_result_auto_cos( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from t1", "select cos(abs(c1)), cos(abs(c2)) ,cos(abs(c3)), cos(abs(c4)), cos(abs(c5)) from t1")
|
||||||
|
|
||||||
# used for sub table
|
# used for sub table
|
||||||
tdSql.query("select c2 ,cos(c2) from ct1")
|
tdSql.query("select c2 ,cos(c2) from ct1")
|
||||||
tdSql.checkData(0, 1, 0.975339851)
|
tdSql.checkData(0, 1, 0.975339851)
|
||||||
|
@ -263,7 +263,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5 , 2, None)
|
tdSql.checkData(5 , 2, None)
|
||||||
|
|
||||||
self.check_result_auto_cos( "select c1, c2, c3 , c4, c5 from ct1", "select cos(c1), cos(c2) ,cos(c3), cos(c4), cos(c5) from ct1")
|
self.check_result_auto_cos( "select c1, c2, c3 , c4, c5 from ct1", "select cos(c1), cos(c2) ,cos(c3), cos(c4), cos(c5) from ct1")
|
||||||
|
|
||||||
# nest query for cos functions
|
# nest query for cos functions
|
||||||
tdSql.query("select c4 , cos(c4) ,cos(cos(c4)) , cos(cos(cos(c4))) from ct1;")
|
tdSql.query("select c4 , cos(c4) ,cos(cos(c4)) , cos(cos(cos(c4))) from ct1;")
|
||||||
tdSql.checkData(0 , 0 , 88)
|
tdSql.checkData(0 , 0 , 88)
|
||||||
|
@ -281,21 +281,21 @@ class TDTestCase:
|
||||||
tdSql.checkData(11 , 2 , 0.999207254)
|
tdSql.checkData(11 , 2 , 0.999207254)
|
||||||
tdSql.checkData(11 , 3 , 0.540969209)
|
tdSql.checkData(11 , 3 , 0.540969209)
|
||||||
|
|
||||||
# used for stable table
|
# used for stable table
|
||||||
|
|
||||||
tdSql.query("select cos(c1) from stb1")
|
tdSql.query("select cos(c1) from stb1")
|
||||||
tdSql.checkRows(25)
|
tdSql.checkRows(25)
|
||||||
|
|
||||||
|
|
||||||
# used for not exists table
|
# used for not exists table
|
||||||
tdSql.error("select cos(c1) from stbbb1")
|
tdSql.error("select cos(c1) from stbbb1")
|
||||||
tdSql.error("select cos(c1) from tbname")
|
tdSql.error("select cos(c1) from tbname")
|
||||||
tdSql.error("select cos(c1) from ct5")
|
tdSql.error("select cos(c1) from ct5")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1, cos(c1) from ct1")
|
tdSql.query("select c1, cos(c1) from ct1")
|
||||||
tdSql.query("select c2, cos(c2) from ct4")
|
tdSql.query("select c2, cos(c2) from ct4")
|
||||||
|
|
||||||
|
|
||||||
# mix with common functions
|
# mix with common functions
|
||||||
tdSql.query("select c1, cos(c1),cos(c1), cos(cos(c1)) from ct4 ")
|
tdSql.query("select c1, cos(c1),cos(c1), cos(cos(c1)) from ct4 ")
|
||||||
|
@ -303,7 +303,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0 , 1 ,None)
|
tdSql.checkData(0 , 1 ,None)
|
||||||
tdSql.checkData(0 , 2 ,None)
|
tdSql.checkData(0 , 2 ,None)
|
||||||
tdSql.checkData(0 , 3 ,None)
|
tdSql.checkData(0 , 3 ,None)
|
||||||
|
|
||||||
tdSql.checkData(3 , 0 , 6)
|
tdSql.checkData(3 , 0 , 6)
|
||||||
tdSql.checkData(3 , 1 ,0.960170287)
|
tdSql.checkData(3 , 1 ,0.960170287)
|
||||||
tdSql.checkData(3 , 2 ,0.960170287)
|
tdSql.checkData(3 , 2 ,0.960170287)
|
||||||
|
@ -324,8 +324,8 @@ class TDTestCase:
|
||||||
tdSql.query("select max(c5), count(c5) from stb1")
|
tdSql.query("select max(c5), count(c5) from stb1")
|
||||||
tdSql.query("select max(c5), count(c5) from ct1")
|
tdSql.query("select max(c5), count(c5) from ct1")
|
||||||
|
|
||||||
|
|
||||||
# # bug fix for compute
|
# # bug fix for compute
|
||||||
tdSql.query("select c1, cos(c1) -0 ,cos(c1-4)-0 from ct4 ")
|
tdSql.query("select c1, cos(c1) -0 ,cos(c1-4)-0 from ct4 ")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
tdSql.checkData(0, 1, None)
|
tdSql.checkData(0, 1, None)
|
||||||
|
@ -394,10 +394,10 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,3,8.000000000)
|
tdSql.checkData(0,3,8.000000000)
|
||||||
tdSql.checkData(0,4,7.900000000)
|
tdSql.checkData(0,4,7.900000000)
|
||||||
tdSql.checkData(0,5,0.000000000)
|
tdSql.checkData(0,5,0.000000000)
|
||||||
|
|
||||||
def pow_Arithmetic(self):
|
def pow_Arithmetic(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
PI=3.1415926
|
PI=3.1415926
|
||||||
|
@ -426,11 +426,11 @@ class TDTestCase:
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
self.check_result_auto_cos( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from sub1_bound ", "select cos(abs(c1)), cos(abs(c2)) ,cos(abs(c3)), cos(abs(c4)), cos(abs(c5)) from sub1_bound")
|
self.check_result_auto_cos( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from sub1_bound ", "select cos(abs(c1)), cos(abs(c2)) ,cos(abs(c3)), cos(abs(c4)), cos(abs(c5)) from sub1_bound")
|
||||||
|
|
||||||
self.check_result_auto_cos( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select cos(c1), cos(c2) ,cos(c3), cos(c3), cos(c2) ,cos(c1) from sub1_bound")
|
self.check_result_auto_cos( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select cos(c1), cos(c2) ,cos(c3), cos(c3), cos(c2) ,cos(c1) from sub1_bound")
|
||||||
|
|
||||||
self.check_result_auto_cos("select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from sub1_bound" , "select cos(abs(c1)) from sub1_bound" )
|
self.check_result_auto_cos("select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from sub1_bound" , "select cos(abs(c1)) from sub1_bound" )
|
||||||
|
|
||||||
# check basic elem for table per row
|
# check basic elem for table per row
|
||||||
tdSql.query("select cos(abs(c1)) ,cos(abs(c2)) , cos(abs(c3)) , cos(abs(c4)), cos(abs(c5)), cos(abs(c6)) from sub1_bound ")
|
tdSql.query("select cos(abs(c1)) ,cos(abs(c2)) , cos(abs(c3)) , cos(abs(c4)), cos(abs(c5)), cos(abs(c6)) from sub1_bound ")
|
||||||
tdSql.checkData(0,0,math.cos(2147483647))
|
tdSql.checkData(0,0,math.cos(2147483647))
|
||||||
|
@ -489,36 +489,36 @@ class TDTestCase:
|
||||||
self.check_result_auto_cos( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select cos(t1) ,cos(c5) from stb1 where c1 > 0 order by tbname" )
|
self.check_result_auto_cos( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select cos(t1) ,cos(c5) from stb1 where c1 > 0 order by tbname" )
|
||||||
self.check_result_auto_cos( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select cos(t1) , cos(c5) from stb1 where c1 > 0 order by tbname" )
|
self.check_result_auto_cos( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select cos(t1) , cos(c5) from stb1 where c1 > 0 order by tbname" )
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4: cos basic query ============")
|
tdLog.printNoPrefix("==========step4: cos basic query ============")
|
||||||
|
|
||||||
self.basic_cosin_function()
|
self.basic_cosin_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: big number cos query ============")
|
tdLog.printNoPrefix("==========step5: big number cos query ============")
|
||||||
|
|
||||||
self.test_big_number()
|
self.test_big_number()
|
||||||
|
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: cos boundary query ============")
|
tdLog.printNoPrefix("==========step6: cos boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step7: cos filter query ============")
|
tdLog.printNoPrefix("==========step7: cos filter query ============")
|
||||||
|
|
||||||
self.abs_func_filter()
|
self.abs_func_filter()
|
||||||
|
|
||||||
|
|
|
@ -13,24 +13,24 @@ class TDTestCase:
|
||||||
def run(self):
|
def run(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
|
||||||
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
||||||
tdSql.execute("create table stb_2 using stb tags('shanghai')")
|
tdSql.execute("create table stb_2 using stb tags('shanghai')")
|
||||||
|
|
||||||
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
||||||
|
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute("insert into stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
tdSql.execute("insert into stb_2 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into stb_2 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
|
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute("insert into ntb values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into ntb values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
|
|
||||||
tdSql.query("select count(*) from stb")
|
tdSql.query("select count(*) from stb")
|
||||||
tdSql.checkData(0,0,20)
|
tdSql.checkData(0,0,20)
|
||||||
tdSql.query("select count(*) from db.stb")
|
tdSql.query("select count(*) from db.stb")
|
||||||
|
@ -95,7 +95,7 @@ class TDTestCase:
|
||||||
|
|
||||||
|
|
||||||
tdSql.query("select count(ts) from db.stb_1")
|
tdSql.query("select count(ts) from db.stb_1")
|
||||||
tdSql.checkData(0,0,10)
|
tdSql.checkData(0,0,10)
|
||||||
tdSql.query("select count(ts) from db.stb_1")
|
tdSql.query("select count(ts) from db.stb_1")
|
||||||
tdSql.checkData(0,0,10)
|
tdSql.checkData(0,0,10)
|
||||||
tdSql.query("select count(col1) from stb_1")
|
tdSql.query("select count(col1) from stb_1")
|
||||||
|
@ -171,7 +171,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(col1),count(ts) from stb")
|
tdSql.query("select count(col1),count(ts) from stb")
|
||||||
tdSql.checkData(0,0,20)
|
tdSql.checkData(0,0,20)
|
||||||
tdSql.checkData(0,1,21)
|
tdSql.checkData(0,1,21)
|
||||||
|
|
||||||
tdSql.query("select count(col1) from db.stb")
|
tdSql.query("select count(col1) from db.stb")
|
||||||
tdSql.checkData(0,0,20)
|
tdSql.checkData(0,0,20)
|
||||||
tdSql.query("select count(col1),count(ts) from db.stb")
|
tdSql.query("select count(col1),count(ts) from db.stb")
|
||||||
|
@ -184,7 +184,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(col1) from stb group by col7")
|
tdSql.query("select count(col1) from stb group by col7")
|
||||||
tdSql.checkRows(3)
|
tdSql.checkRows(3)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
@ -193,4 +193,4 @@ class TDTestCase:
|
||||||
|
|
||||||
|
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
|
|
@ -419,7 +419,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(3,0,4)
|
tdSql.checkData(3,0,4)
|
||||||
tdSql.query("select csum(abs(c1))+2 from t1 ")
|
tdSql.query("select csum(abs(c1))+2 from t1 ")
|
||||||
tdSql.checkRows(4)
|
tdSql.checkRows(4)
|
||||||
|
|
||||||
def csum_support_stable(self):
|
def csum_support_stable(self):
|
||||||
tdSql.query(" select csum(1) from stb1 ")
|
tdSql.query(" select csum(1) from stb1 ")
|
||||||
tdSql.checkRows(70)
|
tdSql.checkRows(70)
|
||||||
|
@ -434,17 +434,17 @@ class TDTestCase:
|
||||||
tdSql.query("select csum(st1+c1) from stb1 partition by tbname")
|
tdSql.query("select csum(st1+c1) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(40)
|
tdSql.checkRows(40)
|
||||||
|
|
||||||
# # bug need fix
|
# # bug need fix
|
||||||
# tdSql.query("select csum(st1+c1) from stb1 partition by tbname slimit 1 ")
|
# tdSql.query("select csum(st1+c1) from stb1 partition by tbname slimit 1 ")
|
||||||
# tdSql.checkRows(4)
|
# tdSql.checkRows(4)
|
||||||
# tdSql.error("select csum(st1+c1) from stb1 partition by tbname limit 1 ")
|
# tdSql.error("select csum(st1+c1) from stb1 partition by tbname limit 1 ")
|
||||||
|
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
tdSql.query("select csum(st1+c1) from stb1 partition by tbname")
|
tdSql.query("select csum(st1+c1) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(40)
|
tdSql.checkRows(40)
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
# tdSql.query("select tbname , csum(c1) from stb1 partition by tbname")
|
# tdSql.query("select tbname , csum(c1) from stb1 partition by tbname")
|
||||||
# tdSql.checkRows(40)
|
# tdSql.checkRows(40)
|
||||||
# tdSql.query("select tbname , csum(st1) from stb1 partition by tbname")
|
# tdSql.query("select tbname , csum(st1) from stb1 partition by tbname")
|
||||||
|
@ -452,7 +452,7 @@ class TDTestCase:
|
||||||
# tdSql.query("select tbname , csum(st1) from stb1 partition by tbname slimit 1")
|
# tdSql.query("select tbname , csum(st1) from stb1 partition by tbname slimit 1")
|
||||||
# tdSql.checkRows(7)
|
# tdSql.checkRows(7)
|
||||||
|
|
||||||
# partition by tags
|
# partition by tags
|
||||||
# tdSql.query("select st1 , csum(c1) from stb1 partition by st1")
|
# tdSql.query("select st1 , csum(c1) from stb1 partition by st1")
|
||||||
# tdSql.checkRows(40)
|
# tdSql.checkRows(40)
|
||||||
# tdSql.query("select csum(c1) from stb1 partition by st1")
|
# tdSql.query("select csum(c1) from stb1 partition by st1")
|
||||||
|
@ -491,4 +491,4 @@ class TDTestCase:
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
|
|
@ -16,7 +16,7 @@ class TDTestCase:
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -24,7 +24,7 @@ class TDTestCase:
|
||||||
tags (t1 int)
|
tags (t1 int)
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''
|
'''
|
||||||
create table t1
|
create table t1
|
||||||
|
@ -66,14 +66,14 @@ class TDTestCase:
|
||||||
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_result_auto(self ,origin_query , floor_query):
|
def check_result_auto(self ,origin_query , floor_query):
|
||||||
pass
|
pass
|
||||||
floor_result = tdSql.getResult(floor_query)
|
floor_result = tdSql.getResult(floor_query)
|
||||||
origin_result = tdSql.getResult(origin_query)
|
origin_result = tdSql.getResult(origin_query)
|
||||||
|
|
||||||
auto_result =[]
|
auto_result =[]
|
||||||
|
|
||||||
for row in origin_result:
|
for row in origin_result:
|
||||||
row_check = []
|
row_check = []
|
||||||
for elem in row:
|
for elem in row:
|
||||||
|
@ -88,13 +88,13 @@ class TDTestCase:
|
||||||
for row_index , row in enumerate(floor_result):
|
for row_index , row in enumerate(floor_result):
|
||||||
for col_index , elem in enumerate(row):
|
for col_index , elem in enumerate(row):
|
||||||
if auto_result[row_index][col_index] != elem:
|
if auto_result[row_index][col_index] != elem:
|
||||||
check_status = False
|
check_status = False
|
||||||
if not check_status:
|
if not check_status:
|
||||||
tdLog.notice("floor function value has not as expected , sql is \"%s\" "%floor_query )
|
tdLog.notice("floor function value has not as expected , sql is \"%s\" "%floor_query )
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
tdLog.info("floor value check pass , it work as expected ,sql is \"%s\" "%floor_query )
|
tdLog.info("floor value check pass , it work as expected ,sql is \"%s\" "%floor_query )
|
||||||
|
|
||||||
def test_errors(self):
|
def test_errors(self):
|
||||||
error_sql_lists = [
|
error_sql_lists = [
|
||||||
"select floor from t1",
|
"select floor from t1",
|
||||||
|
@ -128,42 +128,42 @@ class TDTestCase:
|
||||||
]
|
]
|
||||||
for error_sql in error_sql_lists:
|
for error_sql in error_sql_lists:
|
||||||
tdSql.error(error_sql)
|
tdSql.error(error_sql)
|
||||||
|
|
||||||
def support_types(self):
|
def support_types(self):
|
||||||
type_error_sql_lists = [
|
type_error_sql_lists = [
|
||||||
"select floor(ts) from t1" ,
|
"select floor(ts) from t1" ,
|
||||||
"select floor(c7) from t1",
|
"select floor(c7) from t1",
|
||||||
"select floor(c8) from t1",
|
"select floor(c8) from t1",
|
||||||
"select floor(c9) from t1",
|
"select floor(c9) from t1",
|
||||||
"select floor(ts) from ct1" ,
|
"select floor(ts) from ct1" ,
|
||||||
"select floor(c7) from ct1",
|
"select floor(c7) from ct1",
|
||||||
"select floor(c8) from ct1",
|
"select floor(c8) from ct1",
|
||||||
"select floor(c9) from ct1",
|
"select floor(c9) from ct1",
|
||||||
"select floor(ts) from ct3" ,
|
"select floor(ts) from ct3" ,
|
||||||
"select floor(c7) from ct3",
|
"select floor(c7) from ct3",
|
||||||
"select floor(c8) from ct3",
|
"select floor(c8) from ct3",
|
||||||
"select floor(c9) from ct3",
|
"select floor(c9) from ct3",
|
||||||
"select floor(ts) from ct4" ,
|
"select floor(ts) from ct4" ,
|
||||||
"select floor(c7) from ct4",
|
"select floor(c7) from ct4",
|
||||||
"select floor(c8) from ct4",
|
"select floor(c8) from ct4",
|
||||||
"select floor(c9) from ct4",
|
"select floor(c9) from ct4",
|
||||||
"select floor(ts) from stb1" ,
|
"select floor(ts) from stb1" ,
|
||||||
"select floor(c7) from stb1",
|
"select floor(c7) from stb1",
|
||||||
"select floor(c8) from stb1",
|
"select floor(c8) from stb1",
|
||||||
"select floor(c9) from stb1" ,
|
"select floor(c9) from stb1" ,
|
||||||
|
|
||||||
"select floor(ts) from stbbb1" ,
|
"select floor(ts) from stbbb1" ,
|
||||||
"select floor(c7) from stbbb1",
|
"select floor(c7) from stbbb1",
|
||||||
|
|
||||||
"select floor(ts) from tbname",
|
"select floor(ts) from tbname",
|
||||||
"select floor(c9) from tbname"
|
"select floor(c9) from tbname"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_error_sql_lists:
|
for type_sql in type_error_sql_lists:
|
||||||
tdSql.error(type_sql)
|
tdSql.error(type_sql)
|
||||||
|
|
||||||
|
|
||||||
type_sql_lists = [
|
type_sql_lists = [
|
||||||
"select floor(c1) from t1",
|
"select floor(c1) from t1",
|
||||||
"select floor(c2) from t1",
|
"select floor(c2) from t1",
|
||||||
|
@ -193,16 +193,16 @@ class TDTestCase:
|
||||||
"select floor(c5) from stb1",
|
"select floor(c5) from stb1",
|
||||||
"select floor(c6) from stb1",
|
"select floor(c6) from stb1",
|
||||||
|
|
||||||
"select floor(c6) as alisb from stb1",
|
"select floor(c6) as alisb from stb1",
|
||||||
"select floor(c6) alisb from stb1",
|
"select floor(c6) alisb from stb1",
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_sql_lists:
|
for type_sql in type_sql_lists:
|
||||||
tdSql.query(type_sql)
|
tdSql.query(type_sql)
|
||||||
|
|
||||||
def basic_floor_function(self):
|
def basic_floor_function(self):
|
||||||
|
|
||||||
# basic query
|
# basic query
|
||||||
tdSql.query("select c1 from ct3")
|
tdSql.query("select c1 from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select c1 from t1")
|
tdSql.query("select c1 from t1")
|
||||||
|
@ -222,7 +222,7 @@ class TDTestCase:
|
||||||
tdSql.query("select floor(c5) from ct3")
|
tdSql.query("select floor(c5) from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select floor(c6) from ct3")
|
tdSql.query("select floor(c6) from ct3")
|
||||||
|
|
||||||
# used for regular table
|
# used for regular table
|
||||||
tdSql.query("select floor(c1) from t1")
|
tdSql.query("select floor(c1) from t1")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
|
@ -240,7 +240,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5, 5, None)
|
tdSql.checkData(5, 5, None)
|
||||||
|
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from t1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from t1")
|
||||||
|
|
||||||
# used for sub table
|
# used for sub table
|
||||||
tdSql.query("select floor(c1) from ct1")
|
tdSql.query("select floor(c1) from ct1")
|
||||||
tdSql.checkData(0, 0, 8)
|
tdSql.checkData(0, 0, 8)
|
||||||
|
@ -252,20 +252,20 @@ class TDTestCase:
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from ct1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from ct1")
|
||||||
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
||||||
|
|
||||||
# used for stable table
|
# used for stable table
|
||||||
|
|
||||||
tdSql.query("select floor(c1) from stb1")
|
tdSql.query("select floor(c1) from stb1")
|
||||||
tdSql.checkRows(25)
|
tdSql.checkRows(25)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from ct4")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), floor(c2) ,floor(c3), floor(c4), floor(c5) from ct4")
|
||||||
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
||||||
|
|
||||||
|
|
||||||
# used for not exists table
|
# used for not exists table
|
||||||
tdSql.error("select floor(c1) from stbbb1")
|
tdSql.error("select floor(c1) from stbbb1")
|
||||||
tdSql.error("select floor(c1) from tbname")
|
tdSql.error("select floor(c1) from tbname")
|
||||||
tdSql.error("select floor(c1) from ct5")
|
tdSql.error("select floor(c1) from ct5")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1, floor(c1) from ct1")
|
tdSql.query("select c1, floor(c1) from ct1")
|
||||||
tdSql.checkData(0 , 0 ,8)
|
tdSql.checkData(0 , 0 ,8)
|
||||||
tdSql.checkData(0 , 1 ,8)
|
tdSql.checkData(0 , 1 ,8)
|
||||||
|
@ -290,7 +290,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0 , 1 ,None)
|
tdSql.checkData(0 , 1 ,None)
|
||||||
tdSql.checkData(0 , 2 ,None)
|
tdSql.checkData(0 , 2 ,None)
|
||||||
tdSql.checkData(0 , 3 ,None)
|
tdSql.checkData(0 , 3 ,None)
|
||||||
|
|
||||||
tdSql.checkData(3 , 0 , 6)
|
tdSql.checkData(3 , 0 , 6)
|
||||||
tdSql.checkData(3 , 1 , 6)
|
tdSql.checkData(3 , 1 , 6)
|
||||||
tdSql.checkData(3 , 2 ,6.66000)
|
tdSql.checkData(3 , 2 ,6.66000)
|
||||||
|
@ -311,7 +311,7 @@ class TDTestCase:
|
||||||
tdSql.query("select max(c5), count(c5) from stb1")
|
tdSql.query("select max(c5), count(c5) from stb1")
|
||||||
tdSql.query("select max(c5), count(c5) from ct1")
|
tdSql.query("select max(c5), count(c5) from ct1")
|
||||||
|
|
||||||
|
|
||||||
# bug fix for count
|
# bug fix for count
|
||||||
tdSql.query("select count(c1) from ct4 ")
|
tdSql.query("select count(c1) from ct4 ")
|
||||||
tdSql.checkData(0,0,9)
|
tdSql.checkData(0,0,9)
|
||||||
|
@ -322,7 +322,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(*) from stb1 ")
|
tdSql.query("select count(*) from stb1 ")
|
||||||
tdSql.checkData(0,0,25)
|
tdSql.checkData(0,0,25)
|
||||||
|
|
||||||
# bug fix for compute
|
# bug fix for compute
|
||||||
tdSql.query("select c1, abs(c1) -0 ,floor(c1)-0 from ct4 ")
|
tdSql.query("select c1, abs(c1) -0 ,floor(c1)-0 from ct4 ")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
tdSql.checkData(0, 1, None)
|
tdSql.checkData(0, 1, None)
|
||||||
|
@ -373,10 +373,10 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,3,8.000000000)
|
tdSql.checkData(0,3,8.000000000)
|
||||||
tdSql.checkData(0,4,7.900000000)
|
tdSql.checkData(0,4,7.900000000)
|
||||||
tdSql.checkData(0,5,3.000000000)
|
tdSql.checkData(0,5,3.000000000)
|
||||||
|
|
||||||
def floor_Arithmetic(self):
|
def floor_Arithmetic(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
tdSql.execute("drop database if exists bound_test")
|
tdSql.execute("drop database if exists bound_test")
|
||||||
|
@ -405,14 +405,14 @@ class TDTestCase:
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.error(
|
tdSql.error(
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select floor(c1), floor(c2) ,floor(c3), floor(c4), floor(c5) ,floor(c6) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select floor(c1), floor(c2) ,floor(c3), floor(c4), floor(c5) ,floor(c6) from sub1_bound")
|
||||||
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select floor(c1), floor(c2) ,floor(c3), floor(c3), floor(c2) ,floor(c1) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select floor(c1), floor(c2) ,floor(c3), floor(c3), floor(c2) ,floor(c1) from sub1_bound")
|
||||||
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from sub1_bound;" , "select floor(c1) from sub1_bound" )
|
self.check_result_auto("select floor(floor(floor(floor(floor(floor(floor(floor(floor(floor(c1)))))))))) nest_col_func from sub1_bound;" , "select floor(c1) from sub1_bound" )
|
||||||
|
|
||||||
# check basic elem for table per row
|
# check basic elem for table per row
|
||||||
tdSql.query("select floor(c1+0.2) ,floor(c2) , floor(c3+0.3) , floor(c4-0.3), floor(c5/2), floor(c6/2) from sub1_bound ")
|
tdSql.query("select floor(c1+0.2) ,floor(c2) , floor(c3+0.3) , floor(c4-0.3), floor(c5/2), floor(c6/2) from sub1_bound ")
|
||||||
tdSql.checkData(0, 0, 2147483647.000000000)
|
tdSql.checkData(0, 0, 2147483647.000000000)
|
||||||
|
@ -444,26 +444,26 @@ class TDTestCase:
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4: floor basic query ============")
|
tdLog.printNoPrefix("==========step4: floor basic query ============")
|
||||||
|
|
||||||
self.basic_floor_function()
|
self.basic_floor_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: floor boundary query ============")
|
tdLog.printNoPrefix("==========step5: floor boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: floor filter query ============")
|
tdLog.printNoPrefix("==========step6: floor filter query ============")
|
||||||
|
|
||||||
self.abs_func_filter()
|
self.abs_func_filter()
|
||||||
|
|
||||||
|
|
|
@ -370,17 +370,17 @@ class TDTestCase:
|
||||||
tdSql.query("select diff(st1+c1) from stb1 partition by tbname")
|
tdSql.query("select diff(st1+c1) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(190)
|
tdSql.checkRows(190)
|
||||||
|
|
||||||
# # bug need fix
|
# # bug need fix
|
||||||
# tdSql.query("select diff(st1+c1) from stb1 partition by tbname slimit 1 ")
|
# tdSql.query("select diff(st1+c1) from stb1 partition by tbname slimit 1 ")
|
||||||
# tdSql.checkRows(19)
|
# tdSql.checkRows(19)
|
||||||
# tdSql.error("select diff(st1+c1) from stb1 partition by tbname limit 1 ")
|
# tdSql.error("select diff(st1+c1) from stb1 partition by tbname limit 1 ")
|
||||||
|
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
tdSql.query("select diff(st1+c1) from stb1 partition by tbname")
|
tdSql.query("select diff(st1+c1) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(190)
|
tdSql.checkRows(190)
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
# tdSql.query("select tbname , diff(c1) from stb1 partition by tbname")
|
# tdSql.query("select tbname , diff(c1) from stb1 partition by tbname")
|
||||||
# tdSql.checkRows(199)
|
# tdSql.checkRows(199)
|
||||||
# tdSql.query("select tbname , diff(st1) from stb1 partition by tbname")
|
# tdSql.query("select tbname , diff(st1) from stb1 partition by tbname")
|
||||||
|
@ -388,7 +388,7 @@ class TDTestCase:
|
||||||
# tdSql.query("select tbname , diff(st1) from stb1 partition by tbname slimit 1")
|
# tdSql.query("select tbname , diff(st1) from stb1 partition by tbname slimit 1")
|
||||||
# tdSql.checkRows(19)
|
# tdSql.checkRows(19)
|
||||||
|
|
||||||
# partition by tags
|
# partition by tags
|
||||||
# tdSql.query("select st1 , diff(c1) from stb1 partition by st1")
|
# tdSql.query("select st1 , diff(c1) from stb1 partition by st1")
|
||||||
# tdSql.checkRows(199)
|
# tdSql.checkRows(199)
|
||||||
# tdSql.query("select diff(c1) from stb1 partition by st1")
|
# tdSql.query("select diff(c1) from stb1 partition by st1")
|
||||||
|
@ -488,4 +488,4 @@ class TDTestCase:
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
|
|
@ -11,7 +11,7 @@ from util.sql import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
|
|
||||||
|
@ -388,11 +388,11 @@ class TDTestCase:
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.error(
|
tdSql.error(
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.query("select stateduration(c1,'GT',1,1s) from sub1_bound")
|
tdSql.query("select stateduration(c1,'GT',1,1s) from sub1_bound")
|
||||||
tdSql.checkRows(5)
|
tdSql.checkRows(5)
|
||||||
|
|
||||||
|
@ -400,29 +400,29 @@ class TDTestCase:
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4:support opers ============")
|
tdLog.printNoPrefix("==========step4:support opers ============")
|
||||||
self.support_opers()
|
self.support_opers()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: stateduration basic query ============")
|
tdLog.printNoPrefix("==========step5: stateduration basic query ============")
|
||||||
|
|
||||||
self.basic_stateduration_function()
|
self.basic_stateduration_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: stateduration boundary query ============")
|
tdLog.printNoPrefix("==========step6: stateduration boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: stateduration unit time test ============")
|
tdLog.printNoPrefix("==========step6: stateduration unit time test ============")
|
||||||
|
|
||||||
self.check_unit_time()
|
self.check_unit_time()
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ class TDTestCase:
|
||||||
tag_sql += f"{k} {v},"
|
tag_sql += f"{k} {v},"
|
||||||
create_stb_sql = f'create table {stbname} (ts timestamp,{column_sql[:-1]}) tags({tag_sql[:-1]})'
|
create_stb_sql = f'create table {stbname} (ts timestamp,{column_sql[:-1]}) tags({tag_sql[:-1]})'
|
||||||
return create_stb_sql
|
return create_stb_sql
|
||||||
|
|
||||||
def last_check_stb_tb_base(self):
|
def last_check_stb_tb_base(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
stbname = tdCom.getLongName(5, "letters")
|
stbname = tdCom.getLongName(5, "letters")
|
||||||
|
@ -201,7 +201,7 @@ class TDTestCase:
|
||||||
tdSql.execute(f'use {dbname}')
|
tdSql.execute(f'use {dbname}')
|
||||||
|
|
||||||
# build 20 child tables,every table insert 10 rows
|
# build 20 child tables,every table insert 10 rows
|
||||||
tdSql.execute(f'''create table {stbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
tdSql.execute(f'''create table {stbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
||||||
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))''')
|
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))''')
|
||||||
for i in range(self.tbnum):
|
for i in range(self.tbnum):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
|
|
|
@ -159,7 +159,7 @@ class TDTestCase:
|
||||||
return tdSql.error(self.mavg_query_form(
|
return tdSql.error(self.mavg_query_form(
|
||||||
sel=sel, func=func, col=col, m_comm=m_comm, k=k, r_comm=r_comm, alias=alias, fr=fr,
|
sel=sel, func=func, col=col, m_comm=m_comm, k=k, r_comm=r_comm, alias=alias, fr=fr,
|
||||||
table_expr=table_expr, condition=condition
|
table_expr=table_expr, condition=condition
|
||||||
))
|
))
|
||||||
|
|
||||||
if all(["group" in condition.lower(), "tbname" not in condition.lower()]):
|
if all(["group" in condition.lower(), "tbname" not in condition.lower()]):
|
||||||
print(f"case in {line}: ", end='')
|
print(f"case in {line}: ", end='')
|
||||||
|
@ -295,7 +295,7 @@ class TDTestCase:
|
||||||
pre_result = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None]
|
pre_result = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None]
|
||||||
if (platform.system().lower() == 'windows' and pre_result.dtype == 'int32'):
|
if (platform.system().lower() == 'windows' and pre_result.dtype == 'int32'):
|
||||||
pre_result = np.array(pre_result, dtype = 'int64')
|
pre_result = np.array(pre_result, dtype = 'int64')
|
||||||
|
|
||||||
pre_mavg = pre_mavg = np.convolve(pre_result, np.ones(k), "valid")[offset_val:]/k
|
pre_mavg = pre_mavg = np.convolve(pre_result, np.ones(k), "valid")[offset_val:]/k
|
||||||
tdSql.query(self.mavg_query_form(
|
tdSql.query(self.mavg_query_form(
|
||||||
sel=sel, func=func, col=col, m_comm=m_comm, k=k, r_comm=r_comm, alias=alias, fr=fr,
|
sel=sel, func=func, col=col, m_comm=m_comm, k=k, r_comm=r_comm, alias=alias, fr=fr,
|
||||||
|
@ -669,7 +669,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,1.000000000)
|
tdSql.checkData(0,0,1.000000000)
|
||||||
tdSql.checkData(1,0,1.000000000)
|
tdSql.checkData(1,0,1.000000000)
|
||||||
tdSql.checkData(5,0,1.000000000)
|
tdSql.checkData(5,0,1.000000000)
|
||||||
|
|
||||||
tdSql.query("select mavg(abs(c1),1) from t1")
|
tdSql.query("select mavg(abs(c1),1) from t1")
|
||||||
tdSql.checkRows(4)
|
tdSql.checkRows(4)
|
||||||
|
|
||||||
|
@ -688,17 +688,17 @@ class TDTestCase:
|
||||||
tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname")
|
tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(20)
|
tdSql.checkRows(20)
|
||||||
|
|
||||||
# # bug need fix
|
# # bug need fix
|
||||||
# tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname slimit 1 ")
|
# tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname slimit 1 ")
|
||||||
# tdSql.checkRows(2)
|
# tdSql.checkRows(2)
|
||||||
# tdSql.error("select mavg(st1+c1,3) from stb1 partition by tbname limit 1 ")
|
# tdSql.error("select mavg(st1+c1,3) from stb1 partition by tbname limit 1 ")
|
||||||
|
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname")
|
tdSql.query("select mavg(st1+c1,3) from stb1 partition by tbname")
|
||||||
tdSql.checkRows(20)
|
tdSql.checkRows(20)
|
||||||
|
|
||||||
# bug need fix
|
# bug need fix
|
||||||
# tdSql.query("select tbname , mavg(c1,3) from stb1 partition by tbname")
|
# tdSql.query("select tbname , mavg(c1,3) from stb1 partition by tbname")
|
||||||
# tdSql.checkRows(38)
|
# tdSql.checkRows(38)
|
||||||
# tdSql.query("select tbname , mavg(st1,3) from stb1 partition by tbname")
|
# tdSql.query("select tbname , mavg(st1,3) from stb1 partition by tbname")
|
||||||
|
@ -706,7 +706,7 @@ class TDTestCase:
|
||||||
# tdSql.query("select tbname , mavg(st1,3) from stb1 partition by tbname slimit 1")
|
# tdSql.query("select tbname , mavg(st1,3) from stb1 partition by tbname slimit 1")
|
||||||
# tdSql.checkRows(2)
|
# tdSql.checkRows(2)
|
||||||
|
|
||||||
# partition by tags
|
# partition by tags
|
||||||
# tdSql.query("select st1 , mavg(c1,3) from stb1 partition by st1")
|
# tdSql.query("select st1 , mavg(c1,3) from stb1 partition by st1")
|
||||||
# tdSql.checkRows(38)
|
# tdSql.checkRows(38)
|
||||||
# tdSql.query("select mavg(c1,3) from stb1 partition by st1")
|
# tdSql.query("select mavg(c1,3) from stb1 partition by st1")
|
||||||
|
@ -743,4 +743,4 @@ class TDTestCase:
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
|
|
@ -5,7 +5,7 @@ import numpy as np
|
||||||
|
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143,
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143,
|
||||||
"maxTablesPerVnode":2 ,"minTablesPerVnode":2,"tableIncStepPerVnode":2 }
|
"maxTablesPerVnode":2 ,"minTablesPerVnode":2,"tableIncStepPerVnode":2 }
|
||||||
|
@ -19,15 +19,15 @@ class TDTestCase:
|
||||||
self.nchar_str = '涛思数据'
|
self.nchar_str = '涛思数据'
|
||||||
def max_check_stb_and_tb_base(self):
|
def max_check_stb_and_tb_base(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
intData = []
|
intData = []
|
||||||
floatData = []
|
floatData = []
|
||||||
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
||||||
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))''')
|
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))''')
|
||||||
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute(f"insert into stb_1 values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '{self.binary_str}%d', '{self.nchar_str}%d')"
|
tdSql.execute(f"insert into stb_1 values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '{self.binary_str}%d', '{self.nchar_str}%d')"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
|
||||||
intData.append(i + 1)
|
intData.append(i + 1)
|
||||||
floatData.append(i + 0.1)
|
floatData.append(i + 0.1)
|
||||||
for i in ['ts','col11','col12','col13']:
|
for i in ['ts','col11','col12','col13']:
|
||||||
for j in ['db.stb','stb','db.stb_1','stb_1']:
|
for j in ['db.stb','stb','db.stb_1','stb_1']:
|
||||||
|
@ -45,17 +45,17 @@ class TDTestCase:
|
||||||
tdSql.query("select max(col1) from stb where col2<=5")
|
tdSql.query("select max(col1) from stb where col2<=5")
|
||||||
tdSql.checkData(0,0,5)
|
tdSql.checkData(0,0,5)
|
||||||
tdSql.execute('drop database db')
|
tdSql.execute('drop database db')
|
||||||
|
|
||||||
def max_check_ntb_base(self):
|
def max_check_ntb_base(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
intData = []
|
intData = []
|
||||||
floatData = []
|
floatData = []
|
||||||
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
|
||||||
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20))''')
|
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20))''')
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute(f"insert into ntb values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '{self.binary_str}%d', '{self.nchar_str}%d')"
|
tdSql.execute(f"insert into ntb values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '{self.binary_str}%d', '{self.nchar_str}%d')"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1))
|
||||||
intData.append(i + 1)
|
intData.append(i + 1)
|
||||||
floatData.append(i + 0.1)
|
floatData.append(i + 0.1)
|
||||||
for i in ['ts','col11','col12','col13']:
|
for i in ['ts','col11','col12','col13']:
|
||||||
for j in ['db.ntb','ntb']:
|
for j in ['db.ntb','ntb']:
|
||||||
|
@ -79,7 +79,7 @@ class TDTestCase:
|
||||||
same_sql = f"select {col_name} from {tbname} order by {col_name} desc limit 1"
|
same_sql = f"select {col_name} from {tbname} order by {col_name} desc limit 1"
|
||||||
|
|
||||||
tdSql.query(max_sql)
|
tdSql.query(max_sql)
|
||||||
max_result = tdSql.queryResult
|
max_result = tdSql.queryResult
|
||||||
|
|
||||||
tdSql.query(same_sql)
|
tdSql.query(same_sql)
|
||||||
same_result = tdSql.queryResult
|
same_result = tdSql.queryResult
|
||||||
|
@ -91,7 +91,7 @@ class TDTestCase:
|
||||||
|
|
||||||
|
|
||||||
def support_distributed_aggregate(self):
|
def support_distributed_aggregate(self):
|
||||||
|
|
||||||
# prepate datas for 20 tables distributed at different vgroups
|
# prepate datas for 20 tables distributed at different vgroups
|
||||||
tdSql.execute("create database if not exists testdb keep 3650 duration 1000 vgroups 5")
|
tdSql.execute("create database if not exists testdb keep 3650 duration 1000 vgroups 5")
|
||||||
tdSql.execute(" use testdb ")
|
tdSql.execute(" use testdb ")
|
||||||
|
@ -161,17 +161,17 @@ class TDTestCase:
|
||||||
vgroups = tdSql.queryResult
|
vgroups = tdSql.queryResult
|
||||||
|
|
||||||
vnode_tables={}
|
vnode_tables={}
|
||||||
|
|
||||||
for vgroup_id in vgroups:
|
for vgroup_id in vgroups:
|
||||||
vnode_tables[vgroup_id[0]]=[]
|
vnode_tables[vgroup_id[0]]=[]
|
||||||
|
|
||||||
|
|
||||||
# check sub_table of per vnode ,make sure sub_table has been distributed
|
# check sub_table of per vnode ,make sure sub_table has been distributed
|
||||||
tdSql.query("show tables like 'ct%'")
|
tdSql.query("show tables like 'ct%'")
|
||||||
table_names = tdSql.queryResult
|
table_names = tdSql.queryResult
|
||||||
tablenames = []
|
tablenames = []
|
||||||
for table_name in table_names:
|
for table_name in table_names:
|
||||||
vnode_tables[table_name[6]].append(table_name[0])
|
vnode_tables[table_name[6]].append(table_name[0])
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
for k ,v in vnode_tables.items():
|
for k ,v in vnode_tables.items():
|
||||||
|
@ -180,8 +180,8 @@ class TDTestCase:
|
||||||
if count < 2:
|
if count < 2:
|
||||||
tdLog.exit(" the datas of all not satisfy sub_table has been distributed ")
|
tdLog.exit(" the datas of all not satisfy sub_table has been distributed ")
|
||||||
|
|
||||||
# check max function work status
|
# check max function work status
|
||||||
|
|
||||||
tdSql.query("show tables like 'ct%'")
|
tdSql.query("show tables like 'ct%'")
|
||||||
table_names = tdSql.queryResult
|
table_names = tdSql.queryResult
|
||||||
tablenames = []
|
tablenames = []
|
||||||
|
@ -190,23 +190,23 @@ class TDTestCase:
|
||||||
|
|
||||||
tdSql.query("desc stb1")
|
tdSql.query("desc stb1")
|
||||||
col_names = tdSql.queryResult
|
col_names = tdSql.queryResult
|
||||||
|
|
||||||
colnames = []
|
colnames = []
|
||||||
for col_name in col_names:
|
for col_name in col_names:
|
||||||
if col_name[1] in ["INT" ,"BIGINT" ,"SMALLINT" ,"TINYINT" , "FLOAT" ,"DOUBLE"]:
|
if col_name[1] in ["INT" ,"BIGINT" ,"SMALLINT" ,"TINYINT" , "FLOAT" ,"DOUBLE"]:
|
||||||
colnames.append(col_name[0])
|
colnames.append(col_name[0])
|
||||||
|
|
||||||
for tablename in tablenames:
|
for tablename in tablenames:
|
||||||
for colname in colnames:
|
for colname in colnames:
|
||||||
self.check_max_functions(tablename,colname)
|
self.check_max_functions(tablename,colname)
|
||||||
|
|
||||||
# max function with basic filter
|
# max function with basic filter
|
||||||
print(vnode_tables)
|
print(vnode_tables)
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
# max verifacation
|
# max verifacation
|
||||||
self.max_check_stb_and_tb_base()
|
self.max_check_stb_and_tb_base()
|
||||||
self.max_check_ntb_base()
|
self.max_check_ntb_base()
|
||||||
|
|
||||||
|
|
|
@ -12,30 +12,30 @@ class TDTestCase:
|
||||||
|
|
||||||
self.rowNum = 10
|
self.rowNum = 10
|
||||||
self.ts = 1537146000000
|
self.ts = 1537146000000
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
intData = []
|
intData = []
|
||||||
floatData = []
|
floatData = []
|
||||||
|
|
||||||
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
|
||||||
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
tdSql.execute("create table stb_1 using stb tags('beijing')")
|
||||||
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute("insert into ntb values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into ntb values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
intData.append(i + 1)
|
intData.append(i + 1)
|
||||||
floatData.append(i + 0.1)
|
floatData.append(i + 0.1)
|
||||||
for i in range(self.rowNum):
|
for i in range(self.rowNum):
|
||||||
tdSql.execute("insert into stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
intData.append(i + 1)
|
intData.append(i + 1)
|
||||||
floatData.append(i + 0.1)
|
floatData.append(i + 0.1)
|
||||||
|
|
||||||
# max verifacation
|
# max verifacation
|
||||||
tdSql.error("select min(ts) from stb_1")
|
tdSql.error("select min(ts) from stb_1")
|
||||||
tdSql.error("select min(ts) from db.stb_1")
|
tdSql.error("select min(ts) from db.stb_1")
|
||||||
tdSql.error("select min(col7) from stb_1")
|
tdSql.error("select min(col7) from stb_1")
|
||||||
|
@ -206,7 +206,7 @@ class TDTestCase:
|
||||||
tdSql.query("select min(col1) from ntb where col2>=5")
|
tdSql.query("select min(col1) from ntb where col2>=5")
|
||||||
tdSql.checkData(0,0,5)
|
tdSql.checkData(0,0,5)
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -8,14 +8,14 @@ from util.sql import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
|
|
||||||
def init(self, conn, logSql):
|
def init(self, conn, logSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -23,7 +23,7 @@ class TDTestCase:
|
||||||
tags (t1 int)
|
tags (t1 int)
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''
|
'''
|
||||||
create table t1
|
create table t1
|
||||||
|
@ -65,14 +65,14 @@ class TDTestCase:
|
||||||
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_result_auto(self ,origin_query , round_query):
|
def check_result_auto(self ,origin_query , round_query):
|
||||||
pass
|
pass
|
||||||
round_result = tdSql.getResult(round_query)
|
round_result = tdSql.getResult(round_query)
|
||||||
origin_result = tdSql.getResult(origin_query)
|
origin_result = tdSql.getResult(origin_query)
|
||||||
|
|
||||||
auto_result =[]
|
auto_result =[]
|
||||||
|
|
||||||
for row in origin_result:
|
for row in origin_result:
|
||||||
row_check = []
|
row_check = []
|
||||||
for elem in row:
|
for elem in row:
|
||||||
|
@ -87,13 +87,13 @@ class TDTestCase:
|
||||||
for row_index , row in enumerate(round_result):
|
for row_index , row in enumerate(round_result):
|
||||||
for col_index , elem in enumerate(row):
|
for col_index , elem in enumerate(row):
|
||||||
if auto_result[row_index][col_index] != elem:
|
if auto_result[row_index][col_index] != elem:
|
||||||
check_status = False
|
check_status = False
|
||||||
if not check_status:
|
if not check_status:
|
||||||
tdLog.notice("round function value has not as expected , sql is \"%s\" "%round_query )
|
tdLog.notice("round function value has not as expected , sql is \"%s\" "%round_query )
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
tdLog.info("round value check pass , it work as expected ,sql is \"%s\" "%round_query )
|
tdLog.info("round value check pass , it work as expected ,sql is \"%s\" "%round_query )
|
||||||
|
|
||||||
def test_errors(self):
|
def test_errors(self):
|
||||||
error_sql_lists = [
|
error_sql_lists = [
|
||||||
"select round from t1",
|
"select round from t1",
|
||||||
|
@ -127,42 +127,42 @@ class TDTestCase:
|
||||||
]
|
]
|
||||||
for error_sql in error_sql_lists:
|
for error_sql in error_sql_lists:
|
||||||
tdSql.error(error_sql)
|
tdSql.error(error_sql)
|
||||||
|
|
||||||
def support_types(self):
|
def support_types(self):
|
||||||
type_error_sql_lists = [
|
type_error_sql_lists = [
|
||||||
"select round(ts) from t1" ,
|
"select round(ts) from t1" ,
|
||||||
"select round(c7) from t1",
|
"select round(c7) from t1",
|
||||||
"select round(c8) from t1",
|
"select round(c8) from t1",
|
||||||
"select round(c9) from t1",
|
"select round(c9) from t1",
|
||||||
"select round(ts) from ct1" ,
|
"select round(ts) from ct1" ,
|
||||||
"select round(c7) from ct1",
|
"select round(c7) from ct1",
|
||||||
"select round(c8) from ct1",
|
"select round(c8) from ct1",
|
||||||
"select round(c9) from ct1",
|
"select round(c9) from ct1",
|
||||||
"select round(ts) from ct3" ,
|
"select round(ts) from ct3" ,
|
||||||
"select round(c7) from ct3",
|
"select round(c7) from ct3",
|
||||||
"select round(c8) from ct3",
|
"select round(c8) from ct3",
|
||||||
"select round(c9) from ct3",
|
"select round(c9) from ct3",
|
||||||
"select round(ts) from ct4" ,
|
"select round(ts) from ct4" ,
|
||||||
"select round(c7) from ct4",
|
"select round(c7) from ct4",
|
||||||
"select round(c8) from ct4",
|
"select round(c8) from ct4",
|
||||||
"select round(c9) from ct4",
|
"select round(c9) from ct4",
|
||||||
"select round(ts) from stb1" ,
|
"select round(ts) from stb1" ,
|
||||||
"select round(c7) from stb1",
|
"select round(c7) from stb1",
|
||||||
"select round(c8) from stb1",
|
"select round(c8) from stb1",
|
||||||
"select round(c9) from stb1" ,
|
"select round(c9) from stb1" ,
|
||||||
|
|
||||||
"select round(ts) from stbbb1" ,
|
"select round(ts) from stbbb1" ,
|
||||||
"select round(c7) from stbbb1",
|
"select round(c7) from stbbb1",
|
||||||
|
|
||||||
"select round(ts) from tbname",
|
"select round(ts) from tbname",
|
||||||
"select round(c9) from tbname"
|
"select round(c9) from tbname"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_error_sql_lists:
|
for type_sql in type_error_sql_lists:
|
||||||
tdSql.error(type_sql)
|
tdSql.error(type_sql)
|
||||||
|
|
||||||
|
|
||||||
type_sql_lists = [
|
type_sql_lists = [
|
||||||
"select round(c1) from t1",
|
"select round(c1) from t1",
|
||||||
"select round(c2) from t1",
|
"select round(c2) from t1",
|
||||||
|
@ -192,16 +192,16 @@ class TDTestCase:
|
||||||
"select round(c5) from stb1",
|
"select round(c5) from stb1",
|
||||||
"select round(c6) from stb1",
|
"select round(c6) from stb1",
|
||||||
|
|
||||||
"select round(c6) as alisb from stb1",
|
"select round(c6) as alisb from stb1",
|
||||||
"select round(c6) alisb from stb1",
|
"select round(c6) alisb from stb1",
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_sql_lists:
|
for type_sql in type_sql_lists:
|
||||||
tdSql.query(type_sql)
|
tdSql.query(type_sql)
|
||||||
|
|
||||||
def basic_round_function(self):
|
def basic_round_function(self):
|
||||||
|
|
||||||
# basic query
|
# basic query
|
||||||
tdSql.query("select c1 from ct3")
|
tdSql.query("select c1 from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select c1 from t1")
|
tdSql.query("select c1 from t1")
|
||||||
|
@ -221,7 +221,7 @@ class TDTestCase:
|
||||||
tdSql.query("select round(c5) from ct3")
|
tdSql.query("select round(c5) from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select round(c6) from ct3")
|
tdSql.query("select round(c6) from ct3")
|
||||||
|
|
||||||
# used for regular table
|
# used for regular table
|
||||||
tdSql.query("select round(c1) from t1")
|
tdSql.query("select round(c1) from t1")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
|
@ -239,7 +239,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5, 5, None)
|
tdSql.checkData(5, 5, None)
|
||||||
|
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from t1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from t1", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from t1")
|
||||||
|
|
||||||
# used for sub table
|
# used for sub table
|
||||||
tdSql.query("select round(c1) from ct1")
|
tdSql.query("select round(c1) from ct1")
|
||||||
tdSql.checkData(0, 0, 8)
|
tdSql.checkData(0, 0, 8)
|
||||||
|
@ -251,20 +251,20 @@ class TDTestCase:
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from ct1")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct1", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from ct1")
|
||||||
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from ct1;","select c1 from ct1" )
|
||||||
|
|
||||||
# used for stable table
|
# used for stable table
|
||||||
|
|
||||||
tdSql.query("select round(c1) from stb1")
|
tdSql.query("select round(c1) from stb1")
|
||||||
tdSql.checkRows(25)
|
tdSql.checkRows(25)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from ct4")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 from ct4 ", "select (c1), round(c2) ,round(c3), round(c4), round(c5) from ct4")
|
||||||
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from ct4;" , "select c1 from ct4" )
|
||||||
|
|
||||||
|
|
||||||
# used for not exists table
|
# used for not exists table
|
||||||
tdSql.error("select round(c1) from stbbb1")
|
tdSql.error("select round(c1) from stbbb1")
|
||||||
tdSql.error("select round(c1) from tbname")
|
tdSql.error("select round(c1) from tbname")
|
||||||
tdSql.error("select round(c1) from ct5")
|
tdSql.error("select round(c1) from ct5")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1, round(c1) from ct1")
|
tdSql.query("select c1, round(c1) from ct1")
|
||||||
tdSql.checkData(0 , 0 ,8)
|
tdSql.checkData(0 , 0 ,8)
|
||||||
tdSql.checkData(0 , 1 ,8)
|
tdSql.checkData(0 , 1 ,8)
|
||||||
|
@ -289,7 +289,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0 , 1 ,None)
|
tdSql.checkData(0 , 1 ,None)
|
||||||
tdSql.checkData(0 , 2 ,None)
|
tdSql.checkData(0 , 2 ,None)
|
||||||
tdSql.checkData(0 , 3 ,None)
|
tdSql.checkData(0 , 3 ,None)
|
||||||
|
|
||||||
tdSql.checkData(3 , 0 , 6)
|
tdSql.checkData(3 , 0 , 6)
|
||||||
tdSql.checkData(3 , 1 , 6)
|
tdSql.checkData(3 , 1 , 6)
|
||||||
tdSql.checkData(3 , 2 ,6.66000)
|
tdSql.checkData(3 , 2 ,6.66000)
|
||||||
|
@ -315,7 +315,7 @@ class TDTestCase:
|
||||||
tdSql.query("select max(c5), count(c5) from stb1")
|
tdSql.query("select max(c5), count(c5) from stb1")
|
||||||
tdSql.query("select max(c5), count(c5) from ct1")
|
tdSql.query("select max(c5), count(c5) from ct1")
|
||||||
|
|
||||||
|
|
||||||
# bug fix for count
|
# bug fix for count
|
||||||
tdSql.query("select count(c1) from ct4 ")
|
tdSql.query("select count(c1) from ct4 ")
|
||||||
tdSql.checkData(0,0,9)
|
tdSql.checkData(0,0,9)
|
||||||
|
@ -326,7 +326,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(*) from stb1 ")
|
tdSql.query("select count(*) from stb1 ")
|
||||||
tdSql.checkData(0,0,25)
|
tdSql.checkData(0,0,25)
|
||||||
|
|
||||||
# bug fix for compute
|
# bug fix for compute
|
||||||
tdSql.query("select c1, abs(c1) -0 ,round(c1)-0 from ct4 ")
|
tdSql.query("select c1, abs(c1) -0 ,round(c1)-0 from ct4 ")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
tdSql.checkData(0, 1, None)
|
tdSql.checkData(0, 1, None)
|
||||||
|
@ -378,10 +378,10 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,4,7.900000000)
|
tdSql.checkData(0,4,7.900000000)
|
||||||
tdSql.checkData(0,5,3.000000000)
|
tdSql.checkData(0,5,3.000000000)
|
||||||
tdSql.checkData(0,6,7.500000000)
|
tdSql.checkData(0,6,7.500000000)
|
||||||
|
|
||||||
def round_Arithmetic(self):
|
def round_Arithmetic(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
tdSql.execute("drop database if exists bound_test")
|
tdSql.execute("drop database if exists bound_test")
|
||||||
|
@ -410,14 +410,14 @@ class TDTestCase:
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now(), -2147483643, -9223372036854775803, -32763, -123, -3.39E+38, -1.69e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.error(
|
tdSql.error(
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select round(c1), round(c2) ,round(c3), round(c4), round(c5) ,round(c6) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c4, c5 ,c6 from sub1_bound ", "select round(c1), round(c2) ,round(c3), round(c4), round(c5) ,round(c6) from sub1_bound")
|
||||||
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select round(c1), round(c2) ,round(c3), round(c3), round(c2) ,round(c1) from sub1_bound")
|
self.check_result_auto( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select round(c1), round(c2) ,round(c3), round(c3), round(c2) ,round(c1) from sub1_bound")
|
||||||
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from sub1_bound;" , "select round(c1) from sub1_bound" )
|
self.check_result_auto("select round(round(round(round(round(round(round(round(round(round(c1)))))))))) nest_col_func from sub1_bound;" , "select round(c1) from sub1_bound" )
|
||||||
|
|
||||||
# check basic elem for table per row
|
# check basic elem for table per row
|
||||||
tdSql.query("select round(c1+0.2) ,round(c2) , round(c3+0.3) , round(c4-0.3), round(c5/2), round(c6/2) from sub1_bound ")
|
tdSql.query("select round(c1+0.2) ,round(c2) , round(c3+0.3) , round(c4-0.3), round(c5/2), round(c6/2) from sub1_bound ")
|
||||||
tdSql.checkData(0, 0, 2147483647.000000000)
|
tdSql.checkData(0, 0, 2147483647.000000000)
|
||||||
|
@ -444,32 +444,32 @@ class TDTestCase:
|
||||||
self.check_result_auto( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select round(t1) ,round(c5) from stb1 where c1 > 0 order by tbname" )
|
self.check_result_auto( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select round(t1) ,round(c5) from stb1 where c1 > 0 order by tbname" )
|
||||||
self.check_result_auto( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select round(t1) , round(c5) from stb1 where c1 > 0 order by tbname" )
|
self.check_result_auto( " select t1,c5 from stb1 where c1 > 0 order by tbname " , "select round(t1) , round(c5) from stb1 where c1 > 0 order by tbname" )
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4: round basic query ============")
|
tdLog.printNoPrefix("==========step4: round basic query ============")
|
||||||
|
|
||||||
self.basic_round_function()
|
self.basic_round_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: round boundary query ============")
|
tdLog.printNoPrefix("==========step5: round boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: round filter query ============")
|
tdLog.printNoPrefix("==========step6: round filter query ============")
|
||||||
|
|
||||||
self.abs_func_filter()
|
self.abs_func_filter()
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,13 @@ from util.cases import *
|
||||||
|
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
def init(self, conn, powSql):
|
def init(self, conn, powSql):
|
||||||
tdLog.debug(f"start to excute {__file__}")
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
tdSql.init(conn.cursor())
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
def prepare_datas(self):
|
def prepare_datas(self):
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''create table stb1
|
'''create table stb1
|
||||||
|
@ -23,7 +23,7 @@ class TDTestCase:
|
||||||
tags (t1 int)
|
tags (t1 int)
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'''
|
'''
|
||||||
create table t1
|
create table t1
|
||||||
|
@ -65,14 +65,14 @@ class TDTestCase:
|
||||||
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
|
||||||
'''
|
'''
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_result_auto_sqrt(self ,origin_query , pow_query):
|
def check_result_auto_sqrt(self ,origin_query , pow_query):
|
||||||
|
|
||||||
pow_result = tdSql.getResult(pow_query)
|
pow_result = tdSql.getResult(pow_query)
|
||||||
origin_result = tdSql.getResult(origin_query)
|
origin_result = tdSql.getResult(origin_query)
|
||||||
|
|
||||||
auto_result =[]
|
auto_result =[]
|
||||||
|
|
||||||
for row in origin_result:
|
for row in origin_result:
|
||||||
row_check = []
|
row_check = []
|
||||||
for elem in row:
|
for elem in row:
|
||||||
|
@ -92,7 +92,7 @@ class TDTestCase:
|
||||||
if auto_result[row_index][col_index] == None and not (auto_result[row_index][col_index] == None and elem == None):
|
if auto_result[row_index][col_index] == None and not (auto_result[row_index][col_index] == None and elem == None):
|
||||||
check_status = False
|
check_status = False
|
||||||
elif auto_result[row_index][col_index] != None and (auto_result[row_index][col_index] - elem > 0.00000001):
|
elif auto_result[row_index][col_index] != None and (auto_result[row_index][col_index] - elem > 0.00000001):
|
||||||
check_status = False
|
check_status = False
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
if not check_status:
|
if not check_status:
|
||||||
|
@ -100,7 +100,7 @@ class TDTestCase:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
tdLog.info("sqrt value check pass , it work as expected ,sql is \"%s\" "%pow_query )
|
tdLog.info("sqrt value check pass , it work as expected ,sql is \"%s\" "%pow_query )
|
||||||
|
|
||||||
def test_errors(self):
|
def test_errors(self):
|
||||||
error_sql_lists = [
|
error_sql_lists = [
|
||||||
"select sqrt from t1",
|
"select sqrt from t1",
|
||||||
|
@ -134,42 +134,42 @@ class TDTestCase:
|
||||||
]
|
]
|
||||||
for error_sql in error_sql_lists:
|
for error_sql in error_sql_lists:
|
||||||
tdSql.error(error_sql)
|
tdSql.error(error_sql)
|
||||||
|
|
||||||
def support_types(self):
|
def support_types(self):
|
||||||
type_error_sql_lists = [
|
type_error_sql_lists = [
|
||||||
"select sqrt(ts) from t1" ,
|
"select sqrt(ts) from t1" ,
|
||||||
"select sqrt(c7) from t1",
|
"select sqrt(c7) from t1",
|
||||||
"select sqrt(c8) from t1",
|
"select sqrt(c8) from t1",
|
||||||
"select sqrt(c9) from t1",
|
"select sqrt(c9) from t1",
|
||||||
"select sqrt(ts) from ct1" ,
|
"select sqrt(ts) from ct1" ,
|
||||||
"select sqrt(c7) from ct1",
|
"select sqrt(c7) from ct1",
|
||||||
"select sqrt(c8) from ct1",
|
"select sqrt(c8) from ct1",
|
||||||
"select sqrt(c9) from ct1",
|
"select sqrt(c9) from ct1",
|
||||||
"select sqrt(ts) from ct3" ,
|
"select sqrt(ts) from ct3" ,
|
||||||
"select sqrt(c7) from ct3",
|
"select sqrt(c7) from ct3",
|
||||||
"select sqrt(c8) from ct3",
|
"select sqrt(c8) from ct3",
|
||||||
"select sqrt(c9) from ct3",
|
"select sqrt(c9) from ct3",
|
||||||
"select sqrt(ts) from ct4" ,
|
"select sqrt(ts) from ct4" ,
|
||||||
"select sqrt(c7) from ct4",
|
"select sqrt(c7) from ct4",
|
||||||
"select sqrt(c8) from ct4",
|
"select sqrt(c8) from ct4",
|
||||||
"select sqrt(c9) from ct4",
|
"select sqrt(c9) from ct4",
|
||||||
"select sqrt(ts) from stb1" ,
|
"select sqrt(ts) from stb1" ,
|
||||||
"select sqrt(c7) from stb1",
|
"select sqrt(c7) from stb1",
|
||||||
"select sqrt(c8) from stb1",
|
"select sqrt(c8) from stb1",
|
||||||
"select sqrt(c9) from stb1" ,
|
"select sqrt(c9) from stb1" ,
|
||||||
|
|
||||||
"select sqrt(ts) from stbbb1" ,
|
"select sqrt(ts) from stbbb1" ,
|
||||||
"select sqrt(c7) from stbbb1",
|
"select sqrt(c7) from stbbb1",
|
||||||
|
|
||||||
"select sqrt(ts) from tbname",
|
"select sqrt(ts) from tbname",
|
||||||
"select sqrt(c9) from tbname"
|
"select sqrt(c9) from tbname"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_error_sql_lists:
|
for type_sql in type_error_sql_lists:
|
||||||
tdSql.error(type_sql)
|
tdSql.error(type_sql)
|
||||||
|
|
||||||
|
|
||||||
type_sql_lists = [
|
type_sql_lists = [
|
||||||
"select sqrt(c1) from t1",
|
"select sqrt(c1) from t1",
|
||||||
"select sqrt(c2) from t1",
|
"select sqrt(c2) from t1",
|
||||||
|
@ -199,16 +199,16 @@ class TDTestCase:
|
||||||
"select sqrt(c5) from stb1",
|
"select sqrt(c5) from stb1",
|
||||||
"select sqrt(c6) from stb1",
|
"select sqrt(c6) from stb1",
|
||||||
|
|
||||||
"select sqrt(c6) as alisb from stb1",
|
"select sqrt(c6) as alisb from stb1",
|
||||||
"select sqrt(c6) alisb from stb1",
|
"select sqrt(c6) alisb from stb1",
|
||||||
]
|
]
|
||||||
|
|
||||||
for type_sql in type_sql_lists:
|
for type_sql in type_sql_lists:
|
||||||
tdSql.query(type_sql)
|
tdSql.query(type_sql)
|
||||||
|
|
||||||
def basic_sqrt_function(self):
|
def basic_sqrt_function(self):
|
||||||
|
|
||||||
# basic query
|
# basic query
|
||||||
tdSql.query("select c1 from ct3")
|
tdSql.query("select c1 from ct3")
|
||||||
tdSql.checkRows(0)
|
tdSql.checkRows(0)
|
||||||
tdSql.query("select c1 from t1")
|
tdSql.query("select c1 from t1")
|
||||||
|
@ -249,7 +249,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5, 5, None)
|
tdSql.checkData(5, 5, None)
|
||||||
|
|
||||||
self.check_result_auto_sqrt( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from t1", "select sqrt(abs(c1)), sqrt(abs(c2)) ,sqrt(abs(c3)), sqrt(abs(c4)), sqrt(abs(c5)) from t1")
|
self.check_result_auto_sqrt( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from t1", "select sqrt(abs(c1)), sqrt(abs(c2)) ,sqrt(abs(c3)), sqrt(abs(c4)), sqrt(abs(c5)) from t1")
|
||||||
|
|
||||||
# used for sub table
|
# used for sub table
|
||||||
tdSql.query("select c2 ,sqrt(c2) from ct1")
|
tdSql.query("select c2 ,sqrt(c2) from ct1")
|
||||||
tdSql.checkData(0, 1, 298.140906284)
|
tdSql.checkData(0, 1, 298.140906284)
|
||||||
|
@ -265,7 +265,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(5 , 2, None)
|
tdSql.checkData(5 , 2, None)
|
||||||
|
|
||||||
self.check_result_auto_sqrt( "select c1, c2, c3 , c4, c5 from ct1", "select sqrt(c1), sqrt(c2) ,sqrt(c3), sqrt(c4), sqrt(c5) from ct1")
|
self.check_result_auto_sqrt( "select c1, c2, c3 , c4, c5 from ct1", "select sqrt(c1), sqrt(c2) ,sqrt(c3), sqrt(c4), sqrt(c5) from ct1")
|
||||||
|
|
||||||
# nest query for sqrt functions
|
# nest query for sqrt functions
|
||||||
tdSql.query("select c4 , sqrt(c4) ,sqrt(sqrt(c4)) , sqrt(sqrt(sqrt(c4))) from ct1;")
|
tdSql.query("select c4 , sqrt(c4) ,sqrt(sqrt(c4)) , sqrt(sqrt(sqrt(c4))) from ct1;")
|
||||||
tdSql.checkData(0 , 0 , 88)
|
tdSql.checkData(0 , 0 , 88)
|
||||||
|
@ -283,18 +283,18 @@ class TDTestCase:
|
||||||
tdSql.checkData(11 , 2 , None)
|
tdSql.checkData(11 , 2 , None)
|
||||||
tdSql.checkData(11 , 3 , None)
|
tdSql.checkData(11 , 3 , None)
|
||||||
|
|
||||||
# used for stable table
|
# used for stable table
|
||||||
|
|
||||||
tdSql.query("select sqrt(c1) from stb1")
|
tdSql.query("select sqrt(c1) from stb1")
|
||||||
tdSql.checkRows(25)
|
tdSql.checkRows(25)
|
||||||
|
|
||||||
|
|
||||||
# used for not exists table
|
# used for not exists table
|
||||||
tdSql.error("select sqrt(c1) from stbbb1")
|
tdSql.error("select sqrt(c1) from stbbb1")
|
||||||
tdSql.error("select sqrt(c1) from tbname")
|
tdSql.error("select sqrt(c1) from tbname")
|
||||||
tdSql.error("select sqrt(c1) from ct5")
|
tdSql.error("select sqrt(c1) from ct5")
|
||||||
|
|
||||||
# mix with common col
|
# mix with common col
|
||||||
tdSql.query("select c1, sqrt(c1) from ct1")
|
tdSql.query("select c1, sqrt(c1) from ct1")
|
||||||
tdSql.checkData(0 , 0 ,8)
|
tdSql.checkData(0 , 0 ,8)
|
||||||
tdSql.checkData(0 , 1 ,2.828427125)
|
tdSql.checkData(0 , 1 ,2.828427125)
|
||||||
|
@ -314,7 +314,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0 , 1 ,None)
|
tdSql.checkData(0 , 1 ,None)
|
||||||
tdSql.checkData(0 , 2 ,None)
|
tdSql.checkData(0 , 2 ,None)
|
||||||
tdSql.checkData(0 , 3 ,None)
|
tdSql.checkData(0 , 3 ,None)
|
||||||
|
|
||||||
tdSql.checkData(3 , 0 , 6)
|
tdSql.checkData(3 , 0 , 6)
|
||||||
tdSql.checkData(3 , 1 ,2.449489743)
|
tdSql.checkData(3 , 1 ,2.449489743)
|
||||||
tdSql.checkData(3 , 2 ,2.449489743)
|
tdSql.checkData(3 , 2 ,2.449489743)
|
||||||
|
@ -335,7 +335,7 @@ class TDTestCase:
|
||||||
tdSql.query("select max(c5), count(c5) from stb1")
|
tdSql.query("select max(c5), count(c5) from stb1")
|
||||||
tdSql.query("select max(c5), count(c5) from ct1")
|
tdSql.query("select max(c5), count(c5) from ct1")
|
||||||
|
|
||||||
|
|
||||||
# bug fix for count
|
# bug fix for count
|
||||||
tdSql.query("select count(c1) from ct4 ")
|
tdSql.query("select count(c1) from ct4 ")
|
||||||
tdSql.checkData(0,0,9)
|
tdSql.checkData(0,0,9)
|
||||||
|
@ -346,7 +346,7 @@ class TDTestCase:
|
||||||
tdSql.query("select count(*) from stb1 ")
|
tdSql.query("select count(*) from stb1 ")
|
||||||
tdSql.checkData(0,0,25)
|
tdSql.checkData(0,0,25)
|
||||||
|
|
||||||
# # bug fix for compute
|
# # bug fix for compute
|
||||||
tdSql.query("select c1, sqrt(c1) -0 ,sqrt(c1-4)-0 from ct4 ")
|
tdSql.query("select c1, sqrt(c1) -0 ,sqrt(c1-4)-0 from ct4 ")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
tdSql.checkData(0, 1, None)
|
tdSql.checkData(0, 1, None)
|
||||||
|
@ -397,16 +397,16 @@ class TDTestCase:
|
||||||
tdSql.checkRows(13)
|
tdSql.checkRows(13)
|
||||||
|
|
||||||
# # bug for compute in functions
|
# # bug for compute in functions
|
||||||
# tdSql.query("select c1, abs(1/0) from ct1")
|
# tdSql.query("select c1, abs(1/0) from ct1")
|
||||||
# tdSql.checkData(0, 0, 8)
|
# tdSql.checkData(0, 0, 8)
|
||||||
# tdSql.checkData(0, 1, 1)
|
# tdSql.checkData(0, 1, 1)
|
||||||
|
|
||||||
tdSql.query("select c1, sqrt(1) from ct1")
|
tdSql.query("select c1, sqrt(1) from ct1")
|
||||||
tdSql.checkData(0, 1, 1.000000000)
|
tdSql.checkData(0, 1, 1.000000000)
|
||||||
tdSql.checkRows(13)
|
tdSql.checkRows(13)
|
||||||
|
|
||||||
# two cols start sqrt(x,y)
|
# two cols start sqrt(x,y)
|
||||||
tdSql.query("select c1,c2, sqrt(c2) from ct1")
|
tdSql.query("select c1,c2, sqrt(c2) from ct1")
|
||||||
tdSql.checkData(0, 2, 298.140906284)
|
tdSql.checkData(0, 2, 298.140906284)
|
||||||
tdSql.checkData(1, 2, 278.885281074)
|
tdSql.checkData(1, 2, 278.885281074)
|
||||||
tdSql.checkData(4, 2, 0.000000000)
|
tdSql.checkData(4, 2, 0.000000000)
|
||||||
|
@ -445,10 +445,10 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,3,1.000000000)
|
tdSql.checkData(0,3,1.000000000)
|
||||||
tdSql.checkData(0,4,0.900000000)
|
tdSql.checkData(0,4,0.900000000)
|
||||||
tdSql.checkData(0,5,1.000000000)
|
tdSql.checkData(0,5,1.000000000)
|
||||||
|
|
||||||
def pow_Arithmetic(self):
|
def pow_Arithmetic(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def check_boundary_values(self):
|
def check_boundary_values(self):
|
||||||
|
|
||||||
tdSql.execute("drop database if exists bound_test")
|
tdSql.execute("drop database if exists bound_test")
|
||||||
|
@ -475,11 +475,11 @@ class TDTestCase:
|
||||||
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
f"insert into sub1_bound values ( now()+1s, 2147483648, 9223372036854775808, 32768, 128, 3.40E+38, 1.7e+308, True, 'binary_tb1', 'nchar_tb1', now() )"
|
||||||
)
|
)
|
||||||
self.check_result_auto_sqrt( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from sub1_bound ", "select sqrt(abs(c1)), sqrt(abs(c2)) ,sqrt(abs(c3)), sqrt(abs(c4)), sqrt(abs(c5)) from sub1_bound")
|
self.check_result_auto_sqrt( "select abs(c1), abs(c2), abs(c3) , abs(c4), abs(c5) from sub1_bound ", "select sqrt(abs(c1)), sqrt(abs(c2)) ,sqrt(abs(c3)), sqrt(abs(c4)), sqrt(abs(c5)) from sub1_bound")
|
||||||
|
|
||||||
self.check_result_auto_sqrt( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select sqrt(c1), sqrt(c2) ,sqrt(c3), sqrt(c3), sqrt(c2) ,sqrt(c1) from sub1_bound")
|
self.check_result_auto_sqrt( "select c1, c2, c3 , c3, c2 ,c1 from sub1_bound ", "select sqrt(c1), sqrt(c2) ,sqrt(c3), sqrt(c3), sqrt(c2) ,sqrt(c1) from sub1_bound")
|
||||||
|
|
||||||
self.check_result_auto_sqrt("select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from sub1_bound" , "select sqrt(abs(c1)) from sub1_bound" )
|
self.check_result_auto_sqrt("select abs(abs(abs(abs(abs(abs(abs(abs(abs(c1))))))))) nest_col_func from sub1_bound" , "select sqrt(abs(c1)) from sub1_bound" )
|
||||||
|
|
||||||
# check basic elem for table per row
|
# check basic elem for table per row
|
||||||
tdSql.query("select sqrt(abs(c1)) ,sqrt(abs(c2)) , sqrt(abs(c3)) , sqrt(abs(c4)), sqrt(abs(c5)), sqrt(abs(c6)) from sub1_bound ")
|
tdSql.query("select sqrt(abs(c1)) ,sqrt(abs(c2)) , sqrt(abs(c3)) , sqrt(abs(c4)), sqrt(abs(c5)), sqrt(abs(c6)) from sub1_bound ")
|
||||||
tdSql.checkData(0,0,math.sqrt(2147483647))
|
tdSql.checkData(0,0,math.sqrt(2147483647))
|
||||||
|
@ -504,7 +504,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,1,math.sqrt(9223372036854775807))
|
tdSql.checkData(0,1,math.sqrt(9223372036854775807))
|
||||||
tdSql.checkData(0,2,math.sqrt(32767.000000000))
|
tdSql.checkData(0,2,math.sqrt(32767.000000000))
|
||||||
tdSql.checkData(0,3,math.sqrt(63.500000000))
|
tdSql.checkData(0,3,math.sqrt(63.500000000))
|
||||||
|
|
||||||
def support_super_table_test(self):
|
def support_super_table_test(self):
|
||||||
tdSql.execute(" use db ")
|
tdSql.execute(" use db ")
|
||||||
self.check_result_auto_sqrt( " select c5 from stb1 order by ts " , "select sqrt(c5) from stb1 order by ts" )
|
self.check_result_auto_sqrt( " select c5 from stb1 order by ts " , "select sqrt(c5) from stb1 order by ts" )
|
||||||
|
@ -522,42 +522,42 @@ class TDTestCase:
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step1:create table ==============")
|
tdLog.printNoPrefix("==========step1:create table ==============")
|
||||||
|
|
||||||
self.prepare_datas()
|
self.prepare_datas()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step2:test errors ==============")
|
tdLog.printNoPrefix("==========step2:test errors ==============")
|
||||||
|
|
||||||
self.test_errors()
|
self.test_errors()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step3:support types ============")
|
tdLog.printNoPrefix("==========step3:support types ============")
|
||||||
|
|
||||||
self.support_types()
|
self.support_types()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step4: sqrt basic query ============")
|
tdLog.printNoPrefix("==========step4: sqrt basic query ============")
|
||||||
|
|
||||||
self.basic_sqrt_function()
|
self.basic_sqrt_function()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step5: big number sqrt query ============")
|
tdLog.printNoPrefix("==========step5: big number sqrt query ============")
|
||||||
|
|
||||||
self.test_big_number()
|
self.test_big_number()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step6: base number for sqrt query ============")
|
tdLog.printNoPrefix("==========step6: base number for sqrt query ============")
|
||||||
|
|
||||||
self.pow_base_test()
|
self.pow_base_test()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step7: sqrt boundary query ============")
|
tdLog.printNoPrefix("==========step7: sqrt boundary query ============")
|
||||||
|
|
||||||
self.check_boundary_values()
|
self.check_boundary_values()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step8: sqrt filter query ============")
|
tdLog.printNoPrefix("==========step8: sqrt filter query ============")
|
||||||
|
|
||||||
self.abs_func_filter()
|
self.abs_func_filter()
|
||||||
|
|
||||||
tdLog.printNoPrefix("==========step9: check sqrt result of stable query ============")
|
tdLog.printNoPrefix("==========step9: check sqrt result of stable query ============")
|
||||||
|
|
||||||
self.support_super_table_test()
|
self.support_super_table_test()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
|
|
|
@ -11,7 +11,7 @@ from util.sql import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
updatecfgDict = {'debugFlag': 143 ,"cDebugFlag":143,"uDebugFlag":143 ,"rpcDebugFlag":143 , "tmrDebugFlag":143 ,
|
||||||
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
"jniDebugFlag":143 ,"simDebugFlag":143,"dDebugFlag":143, "dDebugFlag":143,"vDebugFlag":143,"mDebugFlag":143,"qDebugFlag":143,
|
||||||
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
"wDebugFlag":143,"sDebugFlag":143,"tsdbDebugFlag":143,"tqDebugFlag":143 ,"fsDebugFlag":143 ,"udfDebugFlag":143}
|
||||||
|
|
||||||
|
@ -476,7 +476,7 @@ class TDTestCase:
|
||||||
|
|
||||||
self.check_unit_time()
|
self.check_unit_time()
|
||||||
self.query_precision()
|
self.query_precision()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
|
|
@ -25,10 +25,10 @@ class TDTestCase:
|
||||||
def run(self):
|
def run(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
# timestamp = 1ms , time_unit = 1s
|
# timestamp = 1ms , time_unit = 1s
|
||||||
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
||||||
for i in range(self.row_num):
|
for i in range(self.row_num):
|
||||||
tdSql.execute("insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
integer_list = [1,2,3,4,11,12,13,14]
|
integer_list = [1,2,3,4,11,12,13,14]
|
||||||
float_list = [5,6]
|
float_list = [5,6]
|
||||||
|
@ -72,10 +72,10 @@ class TDTestCase:
|
||||||
tdSql.error(f"select stateduration(col1,{i},5) from test")
|
tdSql.error(f"select stateduration(col1,{i},5) from test")
|
||||||
|
|
||||||
# timestamp = 1s, time_unit =1s
|
# timestamp = 1s, time_unit =1s
|
||||||
tdSql.execute('''create table test1(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
tdSql.execute('''create table test1(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
|
||||||
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
|
||||||
for i in range(self.row_num):
|
for i in range(self.row_num):
|
||||||
tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
tdSql.execute("insert into test1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
|
||||||
% (self.ts + i*1000, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
% (self.ts + i*1000, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
|
||||||
|
|
||||||
for i in integer_list:
|
for i in integer_list:
|
||||||
|
|
|
@ -18,24 +18,24 @@ class TDTestCase:
|
||||||
self.arithmetic_operators = ['+','-','*','/']
|
self.arithmetic_operators = ['+','-','*','/']
|
||||||
self.arithmetic_values = [0,1,100,15.5]
|
self.arithmetic_values = [0,1,100,15.5]
|
||||||
# name of normal table
|
# name of normal table
|
||||||
self.ntbname = 'ntb'
|
self.ntbname = 'ntb'
|
||||||
# name of stable
|
# name of stable
|
||||||
self.stbname = 'stb'
|
self.stbname = 'stb'
|
||||||
# structure of column
|
# structure of column
|
||||||
self.column_dict = {
|
self.column_dict = {
|
||||||
'ts':'timestamp',
|
'ts':'timestamp',
|
||||||
'c1':'int',
|
'c1':'int',
|
||||||
'c2':'float',
|
'c2':'float',
|
||||||
'c3':'double'
|
'c3':'double'
|
||||||
}
|
}
|
||||||
# structure of tag
|
# structure of tag
|
||||||
self.tag_dict = {
|
self.tag_dict = {
|
||||||
't0':'int'
|
't0':'int'
|
||||||
}
|
}
|
||||||
# number of child tables
|
# number of child tables
|
||||||
self.tbnum = 2
|
self.tbnum = 2
|
||||||
# values of tag,the number of values should equal to tbnum
|
# values of tag,the number of values should equal to tbnum
|
||||||
self.tag_values = [
|
self.tag_values = [
|
||||||
f'10',
|
f'10',
|
||||||
f'100'
|
f'100'
|
||||||
]
|
]
|
||||||
|
@ -62,7 +62,7 @@ class TDTestCase:
|
||||||
time_zone = time_zone_1 + " " + time_zone_2
|
time_zone = time_zone_1 + " " + time_zone_2
|
||||||
print("expected time zone: " + time_zone)
|
print("expected time zone: " + time_zone)
|
||||||
return time_zone
|
return time_zone
|
||||||
|
|
||||||
def tb_type_check(self,tb_type):
|
def tb_type_check(self,tb_type):
|
||||||
if tb_type in ['normal_table','child_table']:
|
if tb_type in ['normal_table','child_table']:
|
||||||
tdSql.checkRows(len(self.values_list))
|
tdSql.checkRows(len(self.values_list))
|
||||||
|
@ -115,7 +115,7 @@ class TDTestCase:
|
||||||
timezone = self.get_system_timezone()
|
timezone = self.get_system_timezone()
|
||||||
self.timezone_check_ntb(timezone)
|
self.timezone_check_ntb(timezone)
|
||||||
self.timezone_check_stb(timezone)
|
self.timezone_check_stb(timezone)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success(f"{__file__} successfully executed")
|
tdLog.success(f"{__file__} successfully executed")
|
||||||
|
|
|
@ -45,7 +45,7 @@ class TDTestCase:
|
||||||
'col12': 'binary(20)',
|
'col12': 'binary(20)',
|
||||||
'col13': 'nchar(20)'
|
'col13': 'nchar(20)'
|
||||||
}
|
}
|
||||||
|
|
||||||
self.param_list = [1,100]
|
self.param_list = [1,100]
|
||||||
|
|
||||||
def insert_data(self,column_dict,tbname,row_num):
|
def insert_data(self,column_dict,tbname,row_num):
|
||||||
|
@ -107,7 +107,7 @@ class TDTestCase:
|
||||||
tdSql.execute(f"create database if not exists {dbname} vgroups 2")
|
tdSql.execute(f"create database if not exists {dbname} vgroups 2")
|
||||||
tdSql.execute(f'use {dbname}')
|
tdSql.execute(f'use {dbname}')
|
||||||
tdSql.execute(self.setsql.set_create_stable_sql(stbname,self.column_dict,tag_dict))
|
tdSql.execute(self.setsql.set_create_stable_sql(stbname,self.column_dict,tag_dict))
|
||||||
|
|
||||||
for i in range(self.tbnum):
|
for i in range(self.tbnum):
|
||||||
tdSql.execute(f"create table {stbname}_{i} using {stbname} tags({tag_values[0]})")
|
tdSql.execute(f"create table {stbname}_{i} using {stbname} tags({tag_values[0]})")
|
||||||
self.insert_data(self.column_dict,f'{stbname}_{i}',self.rowNum)
|
self.insert_data(self.column_dict,f'{stbname}_{i}',self.rowNum)
|
||||||
|
@ -141,7 +141,7 @@ class TDTestCase:
|
||||||
self.top_check_ntb()
|
self.top_check_ntb()
|
||||||
self.top_check_stb()
|
self.top_check_stb()
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
Loading…
Reference in New Issue