From 79ef5c580e1a0fa2c709cafe5ae7a0f05364a698 Mon Sep 17 00:00:00 2001 From: cpwu Date: Thu, 23 Sep 2021 11:36:33 +0800 Subject: [PATCH] [TD-6108] add case for apercentile function --- tests/pytest/functions/queryTestCases.py | 451 ++++++++++++++++++++++- 1 file changed, 433 insertions(+), 18 deletions(-) diff --git a/tests/pytest/functions/queryTestCases.py b/tests/pytest/functions/queryTestCases.py index a20b89d47c..e82b5dc2a5 100644 --- a/tests/pytest/functions/queryTestCases.py +++ b/tests/pytest/functions/queryTestCases.py @@ -71,7 +71,6 @@ class TDTestCase: def td4082(self): tdLog.printNoPrefix("==========TD-4082==========") - tdSql.prepare() cfgfile = self.getCfgFile() @@ -122,12 +121,8 @@ class TDTestCase: def td4097(self): tdLog.printNoPrefix("==========TD-4097==========") - tdSql.execute("drop database if exists db") tdSql.execute("drop database if exists db1") - tdDnodes.stop(1) - tdDnodes.start(1) - tdSql.execute("create database if not exists db keep 3650") tdSql.execute("create database if not exists db1 keep 3650") tdSql.execute("create database if not exists new keep 3650") @@ -143,7 +138,7 @@ class TDTestCase: tdSql.execute("create table db.t20 using db.stb2 tags(3)") tdSql.execute("create table db1.t30 using db1.stb3 tags(4)") - tdLog.printNoPrefix("==========TD-4097==========") + # tdLog.printNoPrefix("==========TD-4097==========") # 插入数据,然后进行show create 操作 # p1 不进入指定数据库 @@ -329,7 +324,6 @@ class TDTestCase: tdSql.checkData(0, 7, 36500) tdSql.execute("drop database if exists db") - tdSql.execute("create database if not exists db1") tdSql.query("show databases") if ("community" in selfPath): @@ -398,28 +392,36 @@ class TDTestCase: def td4889(self): tdLog.printNoPrefix("==========TD-4889==========") tdSql.execute("drop database if exists db") - tdSql.execute("create database if not exists db keep 3650") + tdSql.execute("create database if not exists db keep 3650 blocks 3") tdSql.execute("use db") tdSql.execute("create stable db.stb1 (ts timestamp, c1 int) tags(t1 int)") for i in range(1000): tdSql.execute(f"create table db.t1{i} using db.stb1 tags({i})") - for j in range(100): + for j in range(60): tdSql.execute(f"insert into db.t1{i} values (now-100d, {i+j})") + tdSql.query("show dnodes") + index = tdSql.getData(0,0) + tdDnodes.stop(index) + tdDnodes.start(index) + tdSql.query("show vgroups") index = tdSql.getData(0,0) tdSql.checkData(0, 6, 0) tdSql.execute(f"compact vnodes in({index})") - for i in range(3): + start_time = time.time() + while True: tdSql.query("show vgroups") - if tdSql.getData(0, 6) == 1: + if tdSql.getData(0, 6) != 0: tdLog.printNoPrefix("show vgroups row:0 col:6 data:1 == expect:1") break - if i == 3: + run_time = time.time()-start_time + if run_time > 3: tdLog.exit("compacting not occured") - time.sleep(0.5) + time.sleep(0.1) + pass @@ -769,7 +771,7 @@ class TDTestCase: tdSql.query(f"select distinct c1,c2 from (select * from t1 where c1 < {tbnum}) ") tdSql.checkRows(3) tdSql.query(f"select distinct c1,c2 from (select * from stb1 where t2 !=0 and t2 != 1) ") - tdSql.checkRows(0) + tdSql.checkRows(4) tdSql.error("select distinct c1, c2 from (select distinct c1, c2 from stb1 where t0 > 2 and t1 < 3) ") tdSql.error("select c1, c2 from (select distinct c1, c2 from stb1 where t0 > 2 and t1 < 3) ") tdSql.query("select distinct c1, c2 from (select c2, c1 from stb1 where c1 > 2 ) where c1 < 4") @@ -1118,9 +1120,421 @@ class TDTestCase: tdSql.error("select ts as t, top(t1, 1) from stb1") tdSql.error("select ts as t, top(t1, 3) from stb1 order by c3") tdSql.error("select ts as t, top(t1, 3) from t1 order by c3") + pass + + def apercentile_query_form(self, col="c1", p=0, com=',', algo=1, alias="", table_expr="t1", condition=""): + + ''' + apercentile function: + :param col: string, column name, required parameters; + :param p: float, percentile interval, [0,100], required parameters; + :param algo: string, alforithm, real form like: ', algorithm' , algorithm: {type:int, data:[0, 1]}; + :param alias: string, result column another name; + :param table_expr: string or expression, data source(eg,table/stable name, result set), required parameters; + :param condition: expression; + :param args: other funtions,like: ', last(col)' + :return: apercentile query statement,default: select apercentile(c1, 0, 1) from t1 + ''' + + if alias: + return f"select apercentile({col}, {p}{com} {algo}) {alias} from {table_expr} {condition}" + else: + return f"select apercentile({col}, {p}{com} {algo}) from {table_expr} {condition}" + + def checkapert(self,col="c1", p=0, com=',', algo=1, alias="", table_expr="t1", condition="" ): + + tdSql.query(f"select count({col}) from {table_expr} {condition}") + if tdSql.queryRows == 0: + tdSql.query(self.apercentile_query_form( + col=col, p=p, com=com, algo=algo, alias=alias, table_expr=table_expr, condition=condition + )) + tdSql.checkRows(0) + return + + # if 'stb' in table_expr or '(' in table_expr: + # tdSql.query(f"select {col} from {table_expr} {condition}") + # query_result = tdSql.queryResult + # tdSql.query(self.apercentile_query_form( + # col=col, p=p, com=com, algo=algo, alias=alias, table_expr=table_expr, condition=condition + # )) + # tdSql.checkDeviaRation(0, 0, np.percentile(query_result, p), p) + # return + + tdSql.query(f"select {col} from {table_expr} {condition}") + query_result = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None] + pset = [0, 50,100] + + for pi in pset: + tdSql.query(self.apercentile_query_form( + col=col, p=pi, com=com, algo=algo, alias=alias, table_expr=table_expr, condition=condition + )) + + tdSql.checkDeviaRation(0, 0, np.percentile(query_result, pi), 0.001) + if algo == 1: + tdSql.query(self.apercentile_query_form( + col=col, p=pi, com=com, algo=0, alias=alias, table_expr=table_expr, condition=condition + )) + tdSql.checkDeviaRation(0, 0, np.percentile(query_result, pi), 0.001) + + def apercentile_query(self): + + # table schema :ts timestamp, c1 int, c2 float, c3 timestamp, c4 binary(16), c5 double, c6 bool + # c7 bigint, c8 smallint, c9 tinyint, c10 nchar(16) + + # case1: int col + self.checkapert() + # case2: float col + case2 = {'col':'c2'} + self.checkapert(**case2) + # case3: double col + case3 = {'col':'c5'} + self.checkapert(**case3) + # case4: bigint col + case4 = {'col':'c7'} + self.checkapert(**case4) + # case5: smallint col + case5 = {'col':'c8'} + self.checkapert(**case5) + # case6: tinyint col + case6 = {'col':'c9'} + self.checkapert(**case6) + # case7: stable + case7 = {'table_expr':'stb1'} + self.checkapert(**case7) + # case8: nest query, outquery + case8 = {'table_expr':'(select c1 from t1)'} + self.checkapert(**case8) + # case9: nest query, inquery and out query + case9 = {'table_expr':'(select apercentile(c1, 0) as c1 from t1)'} + self.checkapert(**case9) + + # case10: nest query, inquery + tdSql.query("select * from (select c1 from stb1)") + if tdSql.queryRows == 0: + tdSql.query("select * from (select apercentile(c1,0) c1 from stb1)") + tdSql.checkRows(0) + else: + query_result = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None] + tdSql.query("select * from (select apercentile(c1, 0) c1 from stb1)") + tdSql.checkDeviaRation(0, 0, np.percentile(query_result, 0), 0.001) + tdSql.query("select * from (select apercentile(c1,100) c1 from stb1)") + tdSql.checkDeviaRation(0, 0, np.percentile(query_result, 100), 0.001) + tdSql.query("select * from (select apercentile(c1,50) c1 from stb1)") + tdSql.checkDeviaRation(0, 0, np.percentile(query_result, 50), 0.001) + + # case11: no algorithm = algo:0 + case11 = {'com':'', 'algo': ''} + self.checkapert(**case11) + + # case12~14: p/algorithm : bin/oct/hex + case12 = {'p': 0b1100100} + self.checkapert(**case12) + case13 = {'algo':0o1} + self.checkapert(**case13) + case14 = {'p':0x32, 'algo':0o0} + self.checkapert(**case14) + + # case15~21: mix with aggregate function + case15 = {'alias':', count(*)'} + self.checkapert(**case15) + case16 = {'alias':', avg(c1)'} + self.checkapert(**case16) + case17 = {'alias':', twa(c1)'} + self.checkapert(**case17) + case18 = {'alias':', irate(c1)'} + self.checkapert(**case18) + case19 = {'alias':', sum(c1)'} + self.checkapert(**case19) + case20 = {'alias':', stddev(c1)'} + self.checkapert(**case20) + case21 = {'alias':', leastsquares(c1, 1, 1)'} + self.checkapert(**case21) + + # case22~27:mix with selector function + case22 = {'alias':', min(c1)'} + self.checkapert(**case22) + case23 = {'alias':', max(c1)'} + self.checkapert(**case23) + case24 = {'alias':', first(c1)'} + self.checkapert(**case24) + case25 = {'alias':', last(c1)'} + self.checkapert(**case25) + case26 = {'alias':', percentile(c1, 0)'} + self.checkapert(**case26) + case27 = {'alias':', apercentile(c1, 0, 0)'} + self.checkapert(**case27) + + # case28: mix with computing function + case28 = {'alias':', spread(c1)'} + self.checkapert(**case28) + # case29: mix with four operation + case29 = {'alias':'+ spread(c1)'} + self.checkapert(**case29) + + # case30~35: with condition + case30 = {'condition':'where ts > now'} + self.checkapert(**case30) + case31 = {'condition':'where c1 between 1 and 200'} + self.checkapert(**case31) + case32 = {'condition':f'where c1 in {tuple(i for i in range(200))}'} + self.checkapert(**case32) + case33 = {'condition':'where c1>100 and c2<100'} + self.checkapert(**case33) + case34 = {'condition':'where c1 is not null'} + self.checkapert(**case34) + case35 = {'condition':'where c4 like "_inary%"'} + self.checkapert(**case35) + case36 = {'table_expr':'stb1' ,'condition':'where tbname like "t_"'} + self.checkapert(**case36) + + # case37~38: with join + case37 = {'col':'t1.c1','table_expr':'t1, t2 ','condition':'where t1.ts=t2.ts'} + self.checkapert(**case37) + case38 = {'col':'stb1.c1', 'table_expr':'stb1, stb2', 'condition':'where stb1.ts=stb2.ts and stb1.st1=stb2.st2'} + # self.checkapert(**case38) + + # case39: with group by + tdSql.query('select min(c1) from stb1 group by tbname') + min_result = tdSql.queryResult + min_len = tdSql.queryRows + tdSql.query('select max(c1) from stb1 group by tbname') + max_result = tdSql.queryResult + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname', p=0)) + tdSql.checkRows(min_len) + for i in range(min_len): + tdSql.checkDeviaRation(i, 0, min_result[i][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname', p=0)) + # tdSql.checkRows(min_len) + # for i in range(min_len): + # tdSql.checkDeviaRation(i, 0, min_result[i][0]) + + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname', p=100)) + tdSql.checkRows(min_len) + for i in range(min_len): + tdSql.checkDeviaRation(i, 0, max_result[i][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname', p=100)) + # tdSql.checkRows(min_len) + # for i in range(min_len): + # tdSql.checkDeviaRation(i, 0, max_result[i][0]) + + # case40: with slimit + if min_len == 0: + tdSql.query( + self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname slimit 1', p=0)) + tdSql.checkRows(0) + + tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname slimit 1', p=0)) + tdSql.checkRows(0) + + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname slimit 1', p=100)) + tdSql.checkRows(0) + + tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname slimit 1', p=100)) + tdSql.checkRows(0) + else: + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname slimit 1', p=0)) + tdSql.checkRows(1) + tdSql.checkDeviaRation(0, 0, min_result[0][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname slimit 1', p=0)) + # tdSql.checkRows(1) + # tdSql.checkDeviaRation(0, 0, min_result[0][0]) + + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname slimit 1', p=100)) + tdSql.checkRows(1) + tdSql.checkDeviaRation(0, 0, max_result[0][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname slimit 1', p=100)) + # tdSql.checkRows(1) + # tdSql.checkDeviaRation(0, 0, max_result[0][0]) + + # case41: with soffset + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname slimit 1 soffset 1', p=0)) + tdSql.checkRows(1) + tdSql.checkDeviaRation(0, 0, min_result[1][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname slimit 1', p=100)) + # tdSql.checkRows(1) + # tdSql.checkDeviaRation(0, 0, max_result[1][0]) + + # case42: with order by + case42 = {'table_expr':'stb1' ,'condition':'order by ts'} + self.checkapert(**case42) + case43 = {'table_expr':'t1' ,'condition':'order by ts'} + self.checkapert(**case43) + + # case43: with limit offset + tdSql.query(self.apercentile_query_form(algo=0, table_expr='stb1', condition='group by tbname limit 1 ', p=0)) + tdSql.checkRows(min_len) + if min_len != 0: + tdSql.checkDeviaRation(0, 0, min_result[1][0]) + + # tdSql.query(self.apercentile_query_form(table_expr='stb1', condition='group by tbname limit 1 offset 1', p=100)) + # tdSql.checkRows(0) + pass + + def error_apercentile(self): + + # unusual test + # + # table schema :ts timestamp, c1 int, c2 float, c3 timestamp, c4 binary(16), c5 double, c6 bool + # c7 bigint, c8 smallint, c9 tinyint, c10 nchar(16) + # + # form test + tdSql.error(self.apercentile_query_form(col="",com='',algo='')) # no col , no algorithm + tdSql.error(self.apercentile_query_form(col="")) # no col , algorithm + tdSql.error(self.apercentile_query_form(p='',com='',algo='')) # no p , no algorithm + # tdSql.error(self.apercentile_query_form(p='')) # no p , algorithm + # tdSql.error(self.apercentile_query_form(algo='')) # no algorithm + tdSql.error("apercentile( c1, 100) from t1") # no select + tdSql.error("select apercentile from t1") # no algorithm condition + tdSql.error("select apercentile c1,0 from t1") # no brackets + # tdSql.error("select apercentile (c1,0) from t1") # space betweem appercentile and left bracket + tdSql.error("select apercentile (c1,0) t1") # no from + tdSql.error(self.apercentile_query_form(col='(c1,0)',p='',com='',algo='')) # no p , no algorithm + tdSql.error("select apercentile( (c1,0) ) from t1") # no table_expr + tdSql.error("select apercentile{ (c1,0) } from t1") # sql form error 1 + tdSql.error("select apercentile[ (c1,0) ] from t1") # sql form error 2 + tdSql.error("select [apercentile(c1,0) ] from t1") # sql form error 3 + # tdSql.error("select (apercentile(c1,0) ) from t1") # sql form error 4 + tdSql.error("select apercentile((c1, 0), 1) from t1") # sql form error 5 + tdSql.error("select apercentile(c1, (0, 1)) from t1") # sql form error 6 + # tdSql.error("select apercentile(c1, (0), 1) from t1") # sql form error 7 + tdSql.error("select apercentile([c1, 0], 0) from t1") # sql form error 8 + tdSql.error("select apercentile(c1, [0, 0]) from t1") # sql form error 9 + tdSql.error("select apercentile(c1, {0, 0}) from t1") # sql form error 10 + tdSql.error("select apercentile([c1, 0]) from t1") # sql form error 11 + tdSql.error("select apercentile({c1, 0}) from t1") # sql form error 12 + tdSql.error("select apercentile(c1) from t1") # agrs: 1 + tdSql.error("select apercentile(c1, 0, 0, 0) from t1") # agrs: 4 + tdSql.error("select apercentile() from t1") # agrs: null 1 + tdSql.error("select apercentile from t1") # agrs: null 2 + tdSql.error("select apercentile( , , ) from t1") # agrs: null 3 + tdSql.error(self.apercentile_query_form(col='', p='', algo='')) # agrs: null 4 + tdSql.error(self.apercentile_query_form(col="st1")) # col:tag column + tdSql.error(self.apercentile_query_form(col=123)) # col:numerical + tdSql.error(self.apercentile_query_form(col=True)) # col:bool + tdSql.error(self.apercentile_query_form(col='')) # col:'' + tdSql.error(self.apercentile_query_form(col="last(c1)")) # col:expr + tdSql.error(self.apercentile_query_form(col="t%")) # col:non-numerical + tdSql.error(self.apercentile_query_form(col="c3")) # col-type: timestamp + tdSql.error(self.apercentile_query_form(col="c4")) # col-type: binary + tdSql.error(self.apercentile_query_form(col="c6")) # col-type: bool + tdSql.error(self.apercentile_query_form(col="c10")) # col-type: nchar + # tdSql.error(self.apercentile_query_form(p=True)) # p:bool + tdSql.error(self.apercentile_query_form(p='a')) # p:str + # tdSql.error(self.apercentile_query_form(p=0x32)) # p:hex + # tdSql.error(self.apercentile_query_form(p=0b1100100)) # p:bin + # tdSql.error(self.apercentile_query_form(p=0o144)) # p:oct + tdSql.error(self.apercentile_query_form(p='last(*)')) # p:expr + tdSql.error(self.apercentile_query_form(p="2021-08-01 00:00:00.000")) # p:timestamp + # tdSql.error(self.apercentile_query_form(algo='"tdigest"')) # algorithm:str + tdSql.error(self.apercentile_query_form(algo='tdigest')) # algorithm:str + tdSql.error(self.apercentile_query_form(algo=2.0)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=1.9999)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=-0.9999)) # algorithm:float + tdSql.error(self.apercentile_query_form(algo=-1.0)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=0b1)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=0x1)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=0o1)) # algorithm:float + # tdSql.error(self.apercentile_query_form(algo=True)) # algorithm:bool + # tdSql.error(self.apercentile_query_form(algo="True")) # algorithm:bool + tdSql.error(self.apercentile_query_form(algo='2021-08-01 00:00:00.000')) # algorithm:timestamp + # tdSql.error(self.apercentile_query_form(algo="")) # algorithm:"" + tdSql.error(self.apercentile_query_form(algo='last(c1)')) # algorithm:expr + + # boundary test + tdSql.error(self.apercentile_query_form(p=-1)) # p left out of [0, 100] + # tdSql.error(self.apercentile_query_form(p=-9223372036854775809)) # p left out of bigint + tdSql.error(self.apercentile_query_form(p=100.1)) # p right out of [0, 100] + # tdSql.error(self.apercentile_query_form(p=18446744073709551616)) # p right out of unsigned-bigint + tdSql.error(self.apercentile_query_form(algo=-1)) # algorithm left out of [0, 1] + # tdSql.error(self.apercentile_query_form(algo=-9223372036854775809)) # algorithm left out of unsigned-bigint + tdSql.error(self.apercentile_query_form(algo=2)) # algorithm right out of [0, 1] + # tdSql.error(self.apercentile_query_form(algo=18446744073709551616)) # algorithm right out of unsigned-bigint + + # mix function test + tdSql.error(self.apercentile_query_form(alias=', top(c1,1)')) # mix with top function + tdSql.error(self.apercentile_query_form(alias=', top(c1,1)')) # mix with bottom function + tdSql.error(self.apercentile_query_form(alias=', last_row(c1)')) # mix with last_row function + tdSql.error(self.apercentile_query_form(alias=', distinct c1 ')) # mix with distinct function + tdSql.error(self.apercentile_query_form(alias=', *')) # mix with * + tdSql.error(self.apercentile_query_form(alias=', diff(c1)')) # mix with diff function + tdSql.error(self.apercentile_query_form(alias=', interp(c1)', condition='ts="2021-10-10 00:00:00.000"')) # mix with interp function + tdSql.error(self.apercentile_query_form(alias=', derivative(c1, 10m, 0)')) # mix with derivative function + tdSql.error(self.apercentile_query_form(alias=', diff(c1)')) # mix with diff function + tdSql.error(self.apercentile_query_form(alias='+ c1)')) # mix with four operation + + def apercentile_data(self, basetime): + # nowtime = int(round(time.time() * 1000)) + for i in range(10): + for j in range(10): + tdSql.execute( + f"insert into t{i} values (" + f"{basetime + j*10}, {random.randint(-200, -1)}, {random.uniform(200, -1)}, {basetime + random.randint(-200, -1)}, " + f"'binary_{j}', {random.uniform(-200, -1)}, {random.choice([0,1])}, {random.randint(-200,-1)}, " + f"{random.randint(-200, -1)}, {random.randint(-127, -1)}, 'nchar_{j}' )" + ) + + tdSql.execute( + f"insert into t{i} values (" + f"{basetime - (j+1) * 10}, {random.randint(1, 200)}, {random.uniform(1, 200)}, {basetime - random.randint(1, 200)}, " + f"'binary_{j}_1', {random.uniform(1, 200)}, {random.choice([0, 1])}, {random.randint(1,200)}, " + f"{random.randint(1,200)}, {random.randint(1,127)}, 'nchar_{j}_1' )" + ) + tdSql.execute( + f"insert into tt{i} values ( {basetime-(j+1) * 10}, {random.randint(1, 200)} )" + ) pass + def td6108(self): + tdLog.printNoPrefix("==========TD-6108==========") + tdSql.execute("drop database if exists db") + tdSql.execute("create database if not exists db keep 3650") + tdSql.execute("use db") + + tdSql.execute( + "create stable db.stb1 (\ + ts timestamp, c1 int, c2 float, c3 timestamp, c4 binary(16), c5 double, c6 bool, \ + c7 bigint, c8 smallint, c9 tinyint, c10 nchar(16)\ + ) \ + tags(st1 int)" + ) + tdSql.execute( + "create stable db.stb2 (ts timestamp, c1 int) tags(st2 int)" + ) + for i in range(100): + tdSql.execute(f"create table t{i} using stb1 tags({i})") + tdSql.execute(f"create table tt{i} using stb2 tags({i})") + + tdLog.printNoPrefix("######## no data test:") + self.apercentile_query() + self.error_apercentile() + + tdLog.printNoPrefix("######## insert data test:") + nowtime = int(round(time.time() * 1000)) + self.apercentile_data(nowtime) + self.apercentile_query() + self.error_apercentile() + + tdLog.printNoPrefix("######## insert data with NULL test:") + tdSql.execute(f"insert into t1(ts) values ({nowtime-5})") + tdSql.execute(f"insert into t1(ts) values ({nowtime+5})") + self.apercentile_query() + self.error_apercentile() + + tdLog.printNoPrefix("######## check after WAL test:") + tdSql.query("show dnodes") + index = tdSql.getData(0, 0) + tdDnodes.stop(index) + tdDnodes.start(index) + + self.apercentile_query() + self.error_apercentile() + def run(self): @@ -1133,11 +1547,12 @@ class TDTestCase: # self.td6068() # develop branch - self.td4097() - self.td4889() - self.td5798() + # self.td4097() + # self.td4889() # self.td5168() - self.td5433() + # self.td5798() + # self.td5433() + self.td6108() def stop(self): tdSql.close() -- GitLab