fix(query): fix test cases
This commit is contained in:
parent
3ad89e5240
commit
7332b50838
|
@ -2,11 +2,11 @@ from util.log import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
from util.sql import *
|
from util.sql import *
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
||||||
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 }
|
||||||
|
@ -18,7 +18,7 @@ class TDTestCase:
|
||||||
self.ts = 1537146000000
|
self.ts = 1537146000000
|
||||||
|
|
||||||
def prepare_datas_of_distribute(self):
|
def prepare_datas_of_distribute(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 ")
|
||||||
|
@ -89,17 +89,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])
|
||||||
self.vnode_disbutes = vnode_tables
|
self.vnode_disbutes = vnode_tables
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
|
@ -108,7 +108,7 @@ class TDTestCase:
|
||||||
count+=1
|
count+=1
|
||||||
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 ")
|
||||||
|
|
||||||
def distribute_agg_query(self):
|
def distribute_agg_query(self):
|
||||||
# basic filter
|
# basic filter
|
||||||
tdSql.query("select apercentile(c1 , 20) from stb1 where c1 is null")
|
tdSql.query("select apercentile(c1 , 20) from stb1 where c1 is null")
|
||||||
|
@ -129,12 +129,12 @@ class TDTestCase:
|
||||||
tdSql.query("select apercentile(c1,20) from stb1 where t1> 4 partition by tbname")
|
tdSql.query("select apercentile(c1,20) from stb1 where t1> 4 partition by tbname")
|
||||||
tdSql.checkRows(15)
|
tdSql.checkRows(15)
|
||||||
|
|
||||||
# union all
|
# union all
|
||||||
tdSql.query("select apercentile(c1,20) from stb1 union all select apercentile(c1,20) from stb1 ")
|
tdSql.query("select apercentile(c1,20) from stb1 union all select apercentile(c1,20) from stb1 ")
|
||||||
tdSql.checkRows(2)
|
tdSql.checkRows(2)
|
||||||
tdSql.checkData(0,0,7.389181281)
|
tdSql.checkData(0,0,7.389181281)
|
||||||
|
|
||||||
# join
|
# join
|
||||||
|
|
||||||
tdSql.execute(" create database if not exists db ")
|
tdSql.execute(" create database if not exists db ")
|
||||||
tdSql.execute(" use db ")
|
tdSql.execute(" use db ")
|
||||||
|
@ -142,7 +142,7 @@ class TDTestCase:
|
||||||
tdSql.execute(" create table tb1 using st tags(1) ")
|
tdSql.execute(" create table tb1 using st tags(1) ")
|
||||||
tdSql.execute(" create table tb2 using st tags(2) ")
|
tdSql.execute(" create table tb2 using st tags(2) ")
|
||||||
|
|
||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
ts = i*10 + self.ts
|
ts = i*10 + self.ts
|
||||||
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
||||||
|
@ -153,7 +153,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,9.000000000)
|
tdSql.checkData(0,0,9.000000000)
|
||||||
tdSql.checkData(0,0,9.000000000)
|
tdSql.checkData(0,0,9.000000000)
|
||||||
|
|
||||||
# group by
|
# group by
|
||||||
tdSql.execute(" use testdb ")
|
tdSql.execute(" use testdb ")
|
||||||
tdSql.query(" select max(c1),c1 from stb1 group by t1 ")
|
tdSql.query(" select max(c1),c1 from stb1 group by t1 ")
|
||||||
tdSql.checkRows(20)
|
tdSql.checkRows(20)
|
||||||
|
@ -189,7 +189,7 @@ class TDTestCase:
|
||||||
self.check_distribute_datas()
|
self.check_distribute_datas()
|
||||||
self.distribute_agg_query()
|
self.distribute_agg_query()
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
|
@ -7,7 +7,7 @@ import platform
|
||||||
|
|
||||||
|
|
||||||
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 }
|
||||||
|
@ -24,7 +24,7 @@ class TDTestCase:
|
||||||
avg_sql = f"select avg({col_name}) from {tbname};"
|
avg_sql = f"select avg({col_name}) from {tbname};"
|
||||||
|
|
||||||
same_sql = f"select {col_name} from {tbname} where {col_name} is not null "
|
same_sql = f"select {col_name} from {tbname} where {col_name} is not null "
|
||||||
|
|
||||||
tdSql.query(same_sql)
|
tdSql.query(same_sql)
|
||||||
pre_data = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None]
|
pre_data = np.array(tdSql.queryResult)[np.array(tdSql.queryResult) != None]
|
||||||
if (platform.system().lower() == 'windows' and pre_data.dtype == 'int32'):
|
if (platform.system().lower() == 'windows' and pre_data.dtype == 'int32'):
|
||||||
|
@ -35,7 +35,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,pre_avg)
|
tdSql.checkData(0,0,pre_avg)
|
||||||
|
|
||||||
def prepare_datas_of_distribute(self):
|
def prepare_datas_of_distribute(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 ")
|
||||||
|
@ -106,17 +106,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])
|
||||||
self.vnode_disbutes = vnode_tables
|
self.vnode_disbutes = vnode_tables
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
|
@ -127,14 +127,14 @@ class TDTestCase:
|
||||||
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 ")
|
||||||
|
|
||||||
def check_avg_distribute_diff_vnode(self,col_name):
|
def check_avg_distribute_diff_vnode(self,col_name):
|
||||||
|
|
||||||
vgroup_ids = []
|
vgroup_ids = []
|
||||||
for k ,v in self.vnode_disbutes.items():
|
for k ,v in self.vnode_disbutes.items():
|
||||||
if len(v)>=2:
|
if len(v)>=2:
|
||||||
vgroup_ids.append(k)
|
vgroup_ids.append(k)
|
||||||
|
|
||||||
distribute_tbnames = []
|
distribute_tbnames = []
|
||||||
|
|
||||||
for vgroup_id in vgroup_ids:
|
for vgroup_id in vgroup_ids:
|
||||||
vnode_tables = self.vnode_disbutes[vgroup_id]
|
vnode_tables = self.vnode_disbutes[vgroup_id]
|
||||||
distribute_tbnames.append(random.sample(vnode_tables,1)[0])
|
distribute_tbnames.append(random.sample(vnode_tables,1)[0])
|
||||||
|
@ -143,7 +143,7 @@ class TDTestCase:
|
||||||
tbname_ins += "'%s' ,"%tbname
|
tbname_ins += "'%s' ,"%tbname
|
||||||
|
|
||||||
tbname_filters = tbname_ins[:-1]
|
tbname_filters = tbname_ins[:-1]
|
||||||
|
|
||||||
avg_sql = f"select avg({col_name}) from stb1 where tbname in ({tbname_filters});"
|
avg_sql = f"select avg({col_name}) from stb1 where tbname in ({tbname_filters});"
|
||||||
|
|
||||||
same_sql = f"select {col_name} from stb1 where tbname in ({tbname_filters}) and {col_name} is not null "
|
same_sql = f"select {col_name} from stb1 where tbname in ({tbname_filters}) and {col_name} is not null "
|
||||||
|
@ -158,8 +158,8 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,pre_avg)
|
tdSql.checkData(0,0,pre_avg)
|
||||||
|
|
||||||
def check_avg_status(self):
|
def check_avg_status(self):
|
||||||
# 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 = []
|
||||||
|
@ -168,26 +168,26 @@ 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_avg_functions(tablename,colname)
|
self.check_avg_functions(tablename,colname)
|
||||||
|
|
||||||
# check max function for different vnode
|
# check max function for different vnode
|
||||||
|
|
||||||
for colname in colnames:
|
for colname in colnames:
|
||||||
if colname.startswith("c"):
|
if colname.startswith("c"):
|
||||||
self.check_avg_distribute_diff_vnode(colname)
|
self.check_avg_distribute_diff_vnode(colname)
|
||||||
else:
|
else:
|
||||||
# self.check_avg_distribute_diff_vnode(colname) # bug for tag
|
# self.check_avg_distribute_diff_vnode(colname) # bug for tag
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def distribute_agg_query(self):
|
def distribute_agg_query(self):
|
||||||
# basic filter
|
# basic filter
|
||||||
tdSql.query(" select avg(c1) from stb1 ")
|
tdSql.query(" select avg(c1) from stb1 ")
|
||||||
|
@ -211,7 +211,7 @@ class TDTestCase:
|
||||||
tdSql.query("select avg(c1) from stb1 where t1> 4 partition by tbname")
|
tdSql.query("select avg(c1) from stb1 where t1> 4 partition by tbname")
|
||||||
tdSql.checkRows(15)
|
tdSql.checkRows(15)
|
||||||
|
|
||||||
# union all
|
# union all
|
||||||
tdSql.query("select avg(c1) from stb1 union all select avg(c1) from stb1 ")
|
tdSql.query("select avg(c1) from stb1 union all select avg(c1) from stb1 ")
|
||||||
tdSql.checkRows(2)
|
tdSql.checkRows(2)
|
||||||
tdSql.checkData(0,0,14.086956522)
|
tdSql.checkData(0,0,14.086956522)
|
||||||
|
@ -220,7 +220,7 @@ class TDTestCase:
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
tdSql.checkData(0,0,14.086956522)
|
tdSql.checkData(0,0,14.086956522)
|
||||||
|
|
||||||
# join
|
# join
|
||||||
|
|
||||||
tdSql.execute(" create database if not exists db ")
|
tdSql.execute(" create database if not exists db ")
|
||||||
tdSql.execute(" use db ")
|
tdSql.execute(" use db ")
|
||||||
|
@ -228,7 +228,7 @@ class TDTestCase:
|
||||||
tdSql.execute(" create table tb1 using st tags(1) ")
|
tdSql.execute(" create table tb1 using st tags(1) ")
|
||||||
tdSql.execute(" create table tb2 using st tags(2) ")
|
tdSql.execute(" create table tb2 using st tags(2) ")
|
||||||
|
|
||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
ts = i*10 + self.ts
|
ts = i*10 + self.ts
|
||||||
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
||||||
|
@ -239,7 +239,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,4.500000000)
|
tdSql.checkData(0,0,4.500000000)
|
||||||
tdSql.checkData(0,1,4.500000000)
|
tdSql.checkData(0,1,4.500000000)
|
||||||
|
|
||||||
# group by
|
# group by
|
||||||
tdSql.execute(" use testdb ")
|
tdSql.execute(" use testdb ")
|
||||||
|
|
||||||
# partition by tbname or partition by tag
|
# partition by tbname or partition by tag
|
||||||
|
@ -270,7 +270,7 @@ class TDTestCase:
|
||||||
self.check_avg_status()
|
self.check_avg_status()
|
||||||
self.distribute_agg_query()
|
self.distribute_agg_query()
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
|
@ -2,11 +2,11 @@ from util.log import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
from util.sql import *
|
from util.sql import *
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
||||||
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 }
|
||||||
|
@ -25,7 +25,7 @@ class TDTestCase:
|
||||||
same_sql = f"select sum(c) from (select {col_name} ,1 as c from {tbname} where {col_name} is not null) "
|
same_sql = f"select sum(c) from (select {col_name} ,1 as c from {tbname} where {col_name} is not null) "
|
||||||
|
|
||||||
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
|
||||||
|
@ -37,7 +37,7 @@ class TDTestCase:
|
||||||
|
|
||||||
|
|
||||||
def prepare_datas_of_distribute(self):
|
def prepare_datas_of_distribute(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 ")
|
||||||
|
@ -108,17 +108,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])
|
||||||
self.vnode_disbutes = vnode_tables
|
self.vnode_disbutes = vnode_tables
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
|
@ -129,14 +129,14 @@ class TDTestCase:
|
||||||
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 ")
|
||||||
|
|
||||||
def check_count_distribute_diff_vnode(self,col_name):
|
def check_count_distribute_diff_vnode(self,col_name):
|
||||||
|
|
||||||
vgroup_ids = []
|
vgroup_ids = []
|
||||||
for k ,v in self.vnode_disbutes.items():
|
for k ,v in self.vnode_disbutes.items():
|
||||||
if len(v)>=2:
|
if len(v)>=2:
|
||||||
vgroup_ids.append(k)
|
vgroup_ids.append(k)
|
||||||
|
|
||||||
distribute_tbnames = []
|
distribute_tbnames = []
|
||||||
|
|
||||||
for vgroup_id in vgroup_ids:
|
for vgroup_id in vgroup_ids:
|
||||||
vnode_tables = self.vnode_disbutes[vgroup_id]
|
vnode_tables = self.vnode_disbutes[vgroup_id]
|
||||||
distribute_tbnames.append(random.sample(vnode_tables,1)[0])
|
distribute_tbnames.append(random.sample(vnode_tables,1)[0])
|
||||||
|
@ -145,13 +145,13 @@ class TDTestCase:
|
||||||
tbname_ins += "'%s' ,"%tbname
|
tbname_ins += "'%s' ,"%tbname
|
||||||
|
|
||||||
tbname_filters = tbname_ins[:-1]
|
tbname_filters = tbname_ins[:-1]
|
||||||
|
|
||||||
max_sql = f"select count({col_name}) from stb1 where tbname in ({tbname_filters});"
|
max_sql = f"select count({col_name}) from stb1 where tbname in ({tbname_filters});"
|
||||||
|
|
||||||
same_sql = f"select sum(c) from (select {col_name} ,1 as c from stb1 where tbname in ({tbname_filters}) and {col_name} is not null) "
|
same_sql = f"select sum(c) from (select {col_name} ,1 as c from stb1 where tbname in ({tbname_filters}) and {col_name} is not null) "
|
||||||
|
|
||||||
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
|
||||||
|
@ -162,8 +162,8 @@ class TDTestCase:
|
||||||
tdLog.info(" count function work as expected, sql : %s "% max_sql)
|
tdLog.info(" count function work as expected, sql : %s "% max_sql)
|
||||||
|
|
||||||
def check_count_status(self):
|
def check_count_status(self):
|
||||||
# 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 = []
|
||||||
|
@ -172,26 +172,26 @@ 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_count_functions(tablename,colname)
|
self.check_count_functions(tablename,colname)
|
||||||
|
|
||||||
# check max function for different vnode
|
# check max function for different vnode
|
||||||
|
|
||||||
for colname in colnames:
|
for colname in colnames:
|
||||||
if colname.startswith("c"):
|
if colname.startswith("c"):
|
||||||
self.check_count_distribute_diff_vnode(colname)
|
self.check_count_distribute_diff_vnode(colname)
|
||||||
else:
|
else:
|
||||||
# self.check_count_distribute_diff_vnode(colname) # bug for tag
|
# self.check_count_distribute_diff_vnode(colname) # bug for tag
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def distribute_agg_query(self):
|
def distribute_agg_query(self):
|
||||||
# basic filter
|
# basic filter
|
||||||
tdSql.query("select count(c1) from stb1 ")
|
tdSql.query("select count(c1) from stb1 ")
|
||||||
|
@ -212,12 +212,12 @@ class TDTestCase:
|
||||||
tdSql.query("select count(c1) from stb1 where t1> 4 partition by tbname")
|
tdSql.query("select count(c1) from stb1 where t1> 4 partition by tbname")
|
||||||
tdSql.checkRows(15)
|
tdSql.checkRows(15)
|
||||||
|
|
||||||
# union all
|
# union all
|
||||||
tdSql.query("select count(c1) from stb1 union all select count(c1) from stb1 ")
|
tdSql.query("select count(c1) from stb1 union all select count(c1) from stb1 ")
|
||||||
tdSql.checkRows(2)
|
tdSql.checkRows(2)
|
||||||
tdSql.checkData(0,0,184)
|
tdSql.checkData(0,0,184)
|
||||||
|
|
||||||
# join
|
# join
|
||||||
|
|
||||||
tdSql.execute(" create database if not exists db ")
|
tdSql.execute(" create database if not exists db ")
|
||||||
tdSql.execute(" use db ")
|
tdSql.execute(" use db ")
|
||||||
|
@ -225,7 +225,7 @@ class TDTestCase:
|
||||||
tdSql.execute(" create table tb1 using st tags(1) ")
|
tdSql.execute(" create table tb1 using st tags(1) ")
|
||||||
tdSql.execute(" create table tb2 using st tags(2) ")
|
tdSql.execute(" create table tb2 using st tags(2) ")
|
||||||
|
|
||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
ts = i*10 + self.ts
|
ts = i*10 + self.ts
|
||||||
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
tdSql.execute(f" insert into tb1 values({ts},{i},{i}.0)")
|
||||||
|
@ -236,7 +236,7 @@ class TDTestCase:
|
||||||
tdSql.checkData(0,0,10)
|
tdSql.checkData(0,0,10)
|
||||||
tdSql.checkData(0,1,10)
|
tdSql.checkData(0,1,10)
|
||||||
|
|
||||||
# group by
|
# group by
|
||||||
tdSql.execute(" use testdb ")
|
tdSql.execute(" use testdb ")
|
||||||
|
|
||||||
tdSql.query(" select count(*) from stb1 ")
|
tdSql.query(" select count(*) from stb1 ")
|
||||||
|
@ -251,7 +251,7 @@ class TDTestCase:
|
||||||
# partition by tbname or partition by tag
|
# partition by tbname or partition by tag
|
||||||
tdSql.query("select max(c1),tbname from stb1 partition by tbname")
|
tdSql.query("select max(c1),tbname from stb1 partition by tbname")
|
||||||
query_data = tdSql.queryResult
|
query_data = tdSql.queryResult
|
||||||
|
|
||||||
for row in query_data:
|
for row in query_data:
|
||||||
tbname = row[1]
|
tbname = row[1]
|
||||||
tdSql.query(" select max(c1) from %s "%tbname)
|
tdSql.query(" select max(c1) from %s "%tbname)
|
||||||
|
@ -259,7 +259,7 @@ class TDTestCase:
|
||||||
|
|
||||||
tdSql.query("select max(c1),tbname from stb1 partition by t1")
|
tdSql.query("select max(c1),tbname from stb1 partition by t1")
|
||||||
query_data = tdSql.queryResult
|
query_data = tdSql.queryResult
|
||||||
|
|
||||||
for row in query_data:
|
for row in query_data:
|
||||||
tbname = row[1]
|
tbname = row[1]
|
||||||
tdSql.query(" select max(c1) from %s "%tbname)
|
tdSql.query(" select max(c1) from %s "%tbname)
|
||||||
|
@ -287,7 +287,7 @@ class TDTestCase:
|
||||||
self.check_count_status()
|
self.check_count_status()
|
||||||
self.distribute_agg_query()
|
self.distribute_agg_query()
|
||||||
|
|
||||||
|
|
||||||
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