Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ca55fc52
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ca55fc52
编写于
8月 06, 2022
作者:
C
cpwu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add case for rest API
上级
2c2b8d70
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
121 addition
and
139 deletion
+121
-139
tests/system-test/2-query/distribute_agg_spread.py
tests/system-test/2-query/distribute_agg_spread.py
+1
-3
tests/system-test/2-query/distribute_agg_stddev.py
tests/system-test/2-query/distribute_agg_stddev.py
+55
-67
tests/system-test/2-query/distribute_agg_sum.py
tests/system-test/2-query/distribute_agg_sum.py
+56
-63
tests/system-test/fulltest.sh
tests/system-test/fulltest.sh
+9
-6
未找到文件。
tests/system-test/2-query/distribute_agg_spread.py
浏览文件 @
ca55fc52
...
...
@@ -6,6 +6,7 @@ import random
class
TDTestCase
:
updatecfgDict
=
{
"maxTablesPerVnode"
:
2
,
"minTablesPerVnode"
:
2
,
"tableIncStepPerVnode"
:
2
}
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
f
"start to execute
{
__file__
}
"
)
...
...
@@ -183,9 +184,6 @@ class TDTestCase:
for
colname
in
colnames
:
if
colname
.
startswith
(
f
"c"
):
self
.
check_spread_distribute_diff_vnode
(
colname
)
else
:
# self.check_spread_distribute_diff_vnode(colname) # bug for tag
pass
def
distribute_agg_query
(
self
,
dbname
=
"testdb"
):
# basic filter
...
...
tests/system-test/2-query/distribute_agg_stddev.py
浏览文件 @
ca55fc52
...
...
@@ -7,10 +7,7 @@ import platform
import
math
class
TDTestCase
:
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
,
"wDebugFlag"
:
143
,
"sDebugFlag"
:
143
,
"tsdbDebugFlag"
:
143
,
"tqDebugFlag"
:
143
,
"fsDebugFlag"
:
143
,
"udfDebugFlag"
:
143
,
"maxTablesPerVnode"
:
2
,
"minTablesPerVnode"
:
2
,
"tableIncStepPerVnode"
:
2
}
updatecfgDict
=
{
"maxTablesPerVnode"
:
2
,
"minTablesPerVnode"
:
2
,
"tableIncStepPerVnode"
:
2
}
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
...
...
@@ -45,55 +42,56 @@ class TDTestCase:
else
:
tdLog
.
exit
(
" sql:%s; row:0 col:0 data:%d , expect:%d"
%
(
stddev_sql
,
tdSql
.
queryResult
[
0
][
0
],
stddev_result
))
def
prepare_datas_of_distribute
(
self
):
def
prepare_datas_of_distribute
(
self
,
dbname
=
"testdb"
):
# 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
(
" use testdb
"
)
tdSql
.
execute
(
f
"create database if not exists
{
dbname
}
keep 3650 duration 1000 vgroups 5"
)
tdSql
.
execute
(
f
" use
{
dbname
}
"
)
tdSql
.
execute
(
'''create table
stb1
f
'''create table
{
dbname
}
.
stb1
(ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp)
tags (t0 timestamp, t1 int, t2 bigint, t3 smallint, t4 tinyint, t5 float, t6 double, t7 bool, t8 binary(16),t9 nchar(32))
'''
)
tdSql
.
execute
(
'''
create table t1
f
'''
create table
{
dbname
}
.
t1
(ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp)
'''
)
for
i
in
range
(
20
):
tdSql
.
execute
(
f
'create table
ct
{
i
+
1
}
using
stb1 tags ( now(),
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
1
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, "binary
{
i
}
", "nchar
{
i
}
" )'
)
tdSql
.
execute
(
f
'create table
{
dbname
}
.ct
{
i
+
1
}
using
{
dbname
}
.
stb1 tags ( now(),
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
1
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, "binary
{
i
}
", "nchar
{
i
}
" )'
)
for
i
in
range
(
9
):
tdSql
.
execute
(
f
"insert into ct1 values ( now()-
{
i
*
10
}
s,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
f
"insert into
{
dbname
}
.
ct1 values ( now()-
{
i
*
10
}
s,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
)
tdSql
.
execute
(
f
"insert into ct4 values ( now()-
{
i
*
90
}
d,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
f
"insert into
{
dbname
}
.
ct4 values ( now()-
{
i
*
90
}
d,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
)
for
i
in
range
(
1
,
21
):
if
i
==
1
or
i
==
4
:
continue
else
:
tbname
=
"ct"
+
f
'
{
i
}
'
tbname
=
f
"ct
{
i
}
"
for
j
in
range
(
9
):
tdSql
.
execute
(
f
"insert into
{
tbname
}
values ( now()-
{
(
i
+
j
)
*
10
}
s,
{
1
*
(
j
+
i
)
}
,
{
11111
*
(
j
+
i
)
}
,
{
111
*
(
j
+
i
)
}
,
{
11
*
(
j
)
}
,
{
1.11
*
(
j
+
i
)
}
,
{
11.11
*
(
j
+
i
)
}
,
{
(
j
+
i
)
%
2
}
, 'binary
{
j
}
', 'nchar
{
j
}
', now()+
{
1
*
j
}
a )"
f
"insert into
{
dbname
}
.
{
tbname
}
values ( now()-
{
(
i
+
j
)
*
10
}
s,
{
1
*
(
j
+
i
)
}
,
{
11111
*
(
j
+
i
)
}
,
{
111
*
(
j
+
i
)
}
,
{
11
*
(
j
)
}
,
{
1.11
*
(
j
+
i
)
}
,
{
11.11
*
(
j
+
i
)
}
,
{
(
j
+
i
)
%
2
}
, 'binary
{
j
}
', 'nchar
{
j
}
', now()+
{
1
*
j
}
a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()-45s, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar0', now()+8a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+10s, 9, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+15s, 9, -99999, -999, -99, -9.99, NULL, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+20s, 9, -99999, -999, NULL, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct4 values (now()-810d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
"insert into ct4 values (now()-400d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
"insert into ct4 values (now()+90d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()-45s, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar0', now()+8a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+10s, 9, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+15s, 9, -99999, -999, -99, -9.99, NULL, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+20s, 9, -99999, -999, NULL, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()-810d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()-400d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()+90d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
'''insert into t1 values
f
'''insert into
{
dbname
}
.
t1 values
( '2020-04-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
( '2020-10-21 01:01:01.000', 1, 11111, 111, 11, 1.11, 11.11, 1, "binary1", "nchar1", now()+1a )
( '2020-12-31 01:01:01.000', 2, 22222, 222, 22, 2.22, 22.22, 0, "binary2", "nchar2", now()+2a )
...
...
@@ -109,11 +107,11 @@ class TDTestCase:
'''
)
tdLog
.
info
(
" prepare data for distributed_aggregate done! "
)
tdLog
.
info
(
f
" prepare data for distributed_aggregate done! "
)
def
check_distribute_datas
(
self
):
def
check_distribute_datas
(
self
,
dbname
=
"testdb"
):
# get vgroup_ids of all
tdSql
.
query
(
"show
vgroups "
)
tdSql
.
query
(
f
"show
{
dbname
}
.
vgroups "
)
vgroups
=
tdSql
.
queryResult
vnode_tables
=
{}
...
...
@@ -121,9 +119,8 @@ class TDTestCase:
for
vgroup_id
in
vgroups
:
vnode_tables
[
vgroup_id
[
0
]]
=
[]
# check sub_table of per vnode ,make sure sub_table has been distributed
tdSql
.
query
(
"show
tables like 'ct%'"
)
tdSql
.
query
(
f
"show
{
dbname
}
.
tables like 'ct%'"
)
table_names
=
tdSql
.
queryResult
tablenames
=
[]
for
table_name
in
table_names
:
...
...
@@ -135,9 +132,9 @@ class TDTestCase:
if
len
(
v
)
>=
2
:
count
+=
1
if
count
<
2
:
tdLog
.
exit
(
" the datas of all not satisfy sub_table has been distributed "
)
tdLog
.
exit
(
f
" the datas of all not satisfy sub_table has been distributed "
)
def
check_stddev_distribute_diff_vnode
(
self
,
col_name
):
def
check_stddev_distribute_diff_vnode
(
self
,
col_name
,
dbname
=
"testdb"
):
vgroup_ids
=
[]
for
k
,
v
in
self
.
vnode_disbutes
.
items
():
...
...
@@ -155,9 +152,9 @@ class TDTestCase:
tbname_filters
=
tbname_ins
[:
-
1
]
stddev_sql
=
f
"select stddev(
{
col_name
}
) from stb1 where tbname in (
{
tbname_filters
}
);"
stddev_sql
=
f
"select stddev(
{
col_name
}
) from
{
dbname
}
.
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
{
dbname
}
.
stb1 where tbname in (
{
tbname_filters
}
) and
{
col_name
}
is not null "
tdSql
.
query
(
same_sql
)
pre_data
=
np
.
array
(
tdSql
.
queryResult
)[
np
.
array
(
tdSql
.
queryResult
)
!=
None
]
...
...
@@ -175,17 +172,16 @@ class TDTestCase:
tdSql
.
query
(
stddev_sql
)
tdSql
.
checkData
(
0
,
0
,
stddev_result
)
def
check_stddev_status
(
self
):
def
check_stddev_status
(
self
,
dbname
=
"testdb"
):
# check max function work status
tdSql
.
query
(
"show
tables like 'ct%'"
)
tdSql
.
query
(
f
"show
{
dbname
}
.
tables like 'ct%'"
)
table_names
=
tdSql
.
queryResult
tablenames
=
[]
for
table_name
in
table_names
:
tablenames
.
append
(
table_name
[
0
]
)
tablenames
.
append
(
f
"
{
dbname
}
.
{
table_name
[
0
]
}
"
)
tdSql
.
query
(
"desc
stb1"
)
tdSql
.
query
(
f
"desc
{
dbname
}
.
stb1"
)
col_names
=
tdSql
.
queryResult
colnames
=
[]
...
...
@@ -197,50 +193,42 @@ class TDTestCase:
for
colname
in
colnames
:
if
colname
.
startswith
(
"c"
):
self
.
check_stddev_functions
(
tablename
,
colname
)
else
:
# self.check_stddev_functions(tablename,colname)
pass
# check max function for different vnode
for
colname
in
colnames
:
if
colname
.
startswith
(
"c"
):
self
.
check_stddev_distribute_diff_vnode
(
colname
)
else
:
# self.check_stddev_distribute_diff_vnode(colname) # bug for tag
pass
def
distribute_agg_query
(
self
):
def
distribute_agg_query
(
self
,
dbname
=
"testdb"
):
# basic filter
tdSql
.
query
(
" select stddev(c1) from
stb1 "
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 "
)
tdSql
.
checkData
(
0
,
0
,
6.694663959
)
tdSql
.
query
(
" select stddev(a) from (select stddev(c1) a from
stb1 partition by tbname) "
)
tdSql
.
query
(
f
"select stddev(a) from (select stddev(c1) a from
{
dbname
}
.
stb1 partition by tbname) "
)
tdSql
.
checkData
(
0
,
0
,
0.156797505
)
tdSql
.
query
(
" select stddev(c1) from
stb1 where t1=1"
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 where t1=1"
)
tdSql
.
checkData
(
0
,
0
,
2.581988897
)
tdSql
.
query
(
"select stddev(c1+c2) from
stb1 where c1 =1 "
)
tdSql
.
query
(
f
"select stddev(c1+c2) from
{
dbname
}
.
stb1 where c1 =1 "
)
tdSql
.
checkData
(
0
,
0
,
0.000000000
)
tdSql
.
query
(
"select stddev(c1) from
stb1 where tbname=
\"
ct2
\"
"
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 where tbname=
\"
ct2
\"
"
)
tdSql
.
checkData
(
0
,
0
,
2.581988897
)
tdSql
.
query
(
"select stddev(c1) from
stb1 partition by tbname"
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 partition by tbname"
)
tdSql
.
checkRows
(
20
)
tdSql
.
query
(
"select stddev(c1) from
stb1 where t1> 4 partition by tbname"
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 where t1> 4 partition by tbname"
)
tdSql
.
checkRows
(
15
)
# union all
tdSql
.
query
(
"select stddev(c1) from stb1 union all select stddev(c1) from
stb1 "
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.stb1 union all select stddev(c1) from
{
dbname
}
.
stb1 "
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkData
(
0
,
0
,
6.694663959
)
tdSql
.
query
(
"select stddev(a) from (select stddev(c1) a from stb1 union all select stddev(c1) a from
stb1)"
)
tdSql
.
query
(
f
"select stddev(a) from (select stddev(c1) a from
{
dbname
}
.stb1 union all select stddev(c1) a from
{
dbname
}
.
stb1)"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
0
,
0.000000000
)
...
...
@@ -248,38 +236,38 @@ class TDTestCase:
tdSql
.
execute
(
" create database if not exists db "
)
tdSql
.
execute
(
" use db "
)
tdSql
.
execute
(
" create stable st (ts timestamp , c1 int ,c2 float) tags(t1 int) "
)
tdSql
.
execute
(
" create table
tb1 using
st tags(1) "
)
tdSql
.
execute
(
" create table
tb2 using
st tags(2) "
)
tdSql
.
execute
(
" create stable
db.
st (ts timestamp , c1 int ,c2 float) tags(t1 int) "
)
tdSql
.
execute
(
" create table
db.tb1 using db.
st tags(1) "
)
tdSql
.
execute
(
" create table
db.tb2 using db.
st tags(2) "
)
for
i
in
range
(
10
):
ts
=
i
*
10
+
self
.
ts
tdSql
.
execute
(
f
" insert into tb1 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into tb2 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into
db.
tb1 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into
db.
tb2 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
query
(
"select stddev(tb1.c1), stddev(tb2.c2) from
tb1,
tb2 where tb1.ts=tb2.ts"
)
tdSql
.
query
(
"select stddev(tb1.c1), stddev(tb2.c2) from
db.tb1 tb1, db.tb2
tb2 where tb1.ts=tb2.ts"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
0
,
2.872281323
)
tdSql
.
checkData
(
0
,
1
,
2.872281323
)
# group by
tdSql
.
execute
(
" use testdb
"
)
tdSql
.
execute
(
f
" use
{
dbname
}
"
)
# partition by tbname or partition by tag
tdSql
.
query
(
"select stddev(c1) from
stb1 partition by tbname"
)
tdSql
.
query
(
f
"select stddev(c1) from
{
dbname
}
.
stb1 partition by tbname"
)
tdSql
.
checkRows
(
20
)
# nest query for support max
tdSql
.
query
(
"select stddev(c2+2)+1 from (select stddev(c1) c2 from
stb1)"
)
tdSql
.
query
(
f
"select stddev(c2+2)+1 from (select stddev(c1) c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
1.000000000
)
tdSql
.
query
(
"select stddev(c1+2) as c2 from (select ts ,c1 ,c2 from
stb1)"
)
tdSql
.
query
(
f
"select stddev(c1+2) as c2 from (select ts ,c1 ,c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
6.694663959
)
tdSql
.
query
(
"select stddev(a+2) as c2 from (select ts ,abs(c1) a ,c2 from
stb1)"
)
tdSql
.
query
(
f
"select stddev(a+2) as c2 from (select ts ,abs(c1) a ,c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
6.694663959
)
# mixup with other functions
tdSql
.
query
(
"select max(c1),count(c1),last(c2,c3),sum(c1+c2),avg(c1),stddev(c1) from
stb1"
)
tdSql
.
query
(
f
"select max(c1),count(c1),last(c2,c3),sum(c1+c2),avg(c1),stddev(c1) from
{
dbname
}
.
stb1"
)
tdSql
.
checkData
(
0
,
0
,
28
)
tdSql
.
checkData
(
0
,
1
,
184
)
tdSql
.
checkData
(
0
,
2
,
-
99999
)
...
...
tests/system-test/2-query/distribute_agg_sum.py
浏览文件 @
ca55fc52
...
...
@@ -7,10 +7,7 @@ import platform
class
TDTestCase
:
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
,
"wDebugFlag"
:
143
,
"sDebugFlag"
:
143
,
"tsdbDebugFlag"
:
143
,
"tqDebugFlag"
:
143
,
"fsDebugFlag"
:
143
,
"udfDebugFlag"
:
143
,
"maxTablesPerVnode"
:
2
,
"minTablesPerVnode"
:
2
,
"tableIncStepPerVnode"
:
2
}
updatecfgDict
=
{
"maxTablesPerVnode"
:
2
,
"minTablesPerVnode"
:
2
,
"tableIncStepPerVnode"
:
2
}
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
...
...
@@ -34,55 +31,56 @@ class TDTestCase:
tdSql
.
query
(
sum_sql
)
tdSql
.
checkData
(
0
,
0
,
pre_sum
)
def
prepare_datas_of_distribute
(
self
):
def
prepare_datas_of_distribute
(
self
,
dbname
=
"testdb"
):
# 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
(
" use testdb
"
)
tdSql
.
execute
(
f
"create database if not exists
{
dbname
}
keep 3650 duration 1000 vgroups 5"
)
tdSql
.
execute
(
f
" use
{
dbname
}
"
)
tdSql
.
execute
(
'''create table
stb1
f
'''create table
{
dbname
}
.
stb1
(ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp)
tags (t0 timestamp, t1 int, t2 bigint, t3 smallint, t4 tinyint, t5 float, t6 double, t7 bool, t8 binary(16),t9 nchar(32))
'''
)
tdSql
.
execute
(
'''
create table t1
f
'''
create table
{
dbname
}
.
t1
(ts timestamp, c1 int, c2 bigint, c3 smallint, c4 tinyint, c5 float, c6 double, c7 bool, c8 binary(16),c9 nchar(32), c10 timestamp)
'''
)
for
i
in
range
(
20
):
tdSql
.
execute
(
f
'create table
ct
{
i
+
1
}
using
stb1 tags ( now(),
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
1
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, "binary
{
i
}
", "nchar
{
i
}
" )'
)
tdSql
.
execute
(
f
'create table
{
dbname
}
.ct
{
i
+
1
}
using
{
dbname
}
.
stb1 tags ( now(),
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
1
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, "binary
{
i
}
", "nchar
{
i
}
" )'
)
for
i
in
range
(
9
):
tdSql
.
execute
(
f
"insert into ct1 values ( now()-
{
i
*
10
}
s,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
f
"insert into
{
dbname
}
.
ct1 values ( now()-
{
i
*
10
}
s,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
)
tdSql
.
execute
(
f
"insert into ct4 values ( now()-
{
i
*
90
}
d,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
f
"insert into
{
dbname
}
.
ct4 values ( now()-
{
i
*
90
}
d,
{
1
*
i
}
,
{
11111
*
i
}
,
{
111
*
i
}
,
{
11
*
i
}
,
{
1.11
*
i
}
,
{
11.11
*
i
}
,
{
i
%
2
}
, 'binary
{
i
}
', 'nchar
{
i
}
', now()+
{
1
*
i
}
a )"
)
for
i
in
range
(
1
,
21
):
if
i
==
1
or
i
==
4
:
continue
else
:
tbname
=
"ct"
+
f
'
{
i
}
'
tbname
=
f
"ct
{
i
}
"
for
j
in
range
(
9
):
tdSql
.
execute
(
f
"insert into
{
tbname
}
values ( now()-
{
(
i
+
j
)
*
10
}
s,
{
1
*
(
j
+
i
)
}
,
{
11111
*
(
j
+
i
)
}
,
{
111
*
(
j
+
i
)
}
,
{
11
*
(
j
)
}
,
{
1.11
*
(
j
+
i
)
}
,
{
11.11
*
(
j
+
i
)
}
,
{
(
j
+
i
)
%
2
}
, 'binary
{
j
}
', 'nchar
{
j
}
', now()+
{
1
*
j
}
a )"
f
"insert into
{
dbname
}
.
{
tbname
}
values ( now()-
{
(
i
+
j
)
*
10
}
s,
{
1
*
(
j
+
i
)
}
,
{
11111
*
(
j
+
i
)
}
,
{
111
*
(
j
+
i
)
}
,
{
11
*
(
j
)
}
,
{
1.11
*
(
j
+
i
)
}
,
{
11.11
*
(
j
+
i
)
}
,
{
(
j
+
i
)
%
2
}
, 'binary
{
j
}
', 'nchar
{
j
}
', now()+
{
1
*
j
}
a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()-45s, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar0', now()+8a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+10s, 9, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+15s, 9, -99999, -999, -99, -9.99, NULL, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct1 values (now()+20s, 9, -99999, -999, NULL, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
"insert into ct4 values (now()-810d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
"insert into ct4 values (now()-400d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
"insert into ct4 values (now()+90d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()-45s, 0, 0, 0, 0, 0, 0, 0, 'binary0', 'nchar0', now()+8a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+10s, 9, -99999, -999, -99, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+15s, 9, -99999, -999, -99, -9.99, NULL, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct1 values (now()+20s, 9, -99999, -999, NULL, -9.99, -99.99, 1, 'binary9', 'nchar9', now()+9a )"
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()-810d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()-400d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
"insert into
{
dbname
}
.ct4 values (now()+90d, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) "
)
tdSql
.
execute
(
f
'''insert into t1 values
f
'''insert into
{
dbname
}
.
t1 values
( '2020-04-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
( '2020-10-21 01:01:01.000', 1, 11111, 111, 11, 1.11, 11.11, 1, "binary1", "nchar1", now()+1a )
( '2020-12-31 01:01:01.000', 2, 22222, 222, 22, 2.22, 22.22, 0, "binary2", "nchar2", now()+2a )
...
...
@@ -98,11 +96,11 @@ class TDTestCase:
'''
)
tdLog
.
info
(
" prepare data for distributed_aggregate done! "
)
tdLog
.
info
(
f
" prepare data for distributed_aggregate done! "
)
def
check_distribute_datas
(
self
):
def
check_distribute_datas
(
self
,
dbname
=
"testdb"
):
# get vgroup_ids of all
tdSql
.
query
(
"show
vgroups "
)
tdSql
.
query
(
f
"show
{
dbname
}
.
vgroups "
)
vgroups
=
tdSql
.
queryResult
vnode_tables
=
{}
...
...
@@ -110,9 +108,8 @@ class TDTestCase:
for
vgroup_id
in
vgroups
:
vnode_tables
[
vgroup_id
[
0
]]
=
[]
# check sub_table of per vnode ,make sure sub_table has been distributed
tdSql
.
query
(
"show
tables like 'ct%'"
)
tdSql
.
query
(
f
"show
{
dbname
}
.
tables like 'ct%'"
)
table_names
=
tdSql
.
queryResult
tablenames
=
[]
for
table_name
in
table_names
:
...
...
@@ -124,9 +121,9 @@ class TDTestCase:
if
len
(
v
)
>=
2
:
count
+=
1
if
count
<
2
:
tdLog
.
exit
(
" the datas of all not satisfy sub_table has been distributed "
)
tdLog
.
exit
(
f
" the datas of all not satisfy sub_table has been distributed "
)
def
check_sum_distribute_diff_vnode
(
self
,
col_name
):
def
check_sum_distribute_diff_vnode
(
self
,
col_name
,
dbname
=
"testdb"
):
vgroup_ids
=
[]
for
k
,
v
in
self
.
vnode_disbutes
.
items
():
...
...
@@ -144,9 +141,9 @@ class TDTestCase:
tbname_filters
=
tbname_ins
[:
-
1
]
sum_sql
=
f
"select sum(
{
col_name
}
) from stb1 where tbname in (
{
tbname_filters
}
);"
sum_sql
=
f
"select sum(
{
col_name
}
) from
{
dbname
}
.
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
{
dbname
}
.
stb1 where tbname in (
{
tbname_filters
}
) and
{
col_name
}
is not null "
tdSql
.
query
(
same_sql
)
pre_data
=
np
.
array
(
tdSql
.
queryResult
)[
np
.
array
(
tdSql
.
queryResult
)
!=
None
]
...
...
@@ -157,16 +154,16 @@ class TDTestCase:
tdSql
.
query
(
sum_sql
)
tdSql
.
checkData
(
0
,
0
,
pre_sum
)
def
check_sum_status
(
self
):
def
check_sum_status
(
self
,
dbname
=
"testdb"
):
# check max function work status
tdSql
.
query
(
"show
tables like 'ct%'"
)
tdSql
.
query
(
f
"show
{
dbname
}
.
tables like 'ct%'"
)
table_names
=
tdSql
.
queryResult
tablenames
=
[]
for
table_name
in
table_names
:
tablenames
.
append
(
table_name
[
0
]
)
tablenames
.
append
(
f
"
{
dbname
}
.
{
table_name
[
0
]
}
"
)
tdSql
.
query
(
"desc
stb1"
)
tdSql
.
query
(
f
"desc
{
dbname
}
.
stb1"
)
col_names
=
tdSql
.
queryResult
colnames
=
[]
...
...
@@ -183,79 +180,75 @@ class TDTestCase:
for
colname
in
colnames
:
if
colname
.
startswith
(
"c"
):
self
.
check_sum_distribute_diff_vnode
(
colname
)
else
:
# self.check_sum_distribute_diff_vnode(colname) # bug for tag
pass
def
distribute_agg_query
(
self
):
def
distribute_agg_query
(
self
,
dbname
=
"testdb"
):
# basic filter
tdSql
.
query
(
" select sum(c1) from
stb1 "
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 "
)
tdSql
.
checkData
(
0
,
0
,
2592
)
tdSql
.
query
(
" select sum(a) from (select sum(c1) a from
stb1 partition by tbname) "
)
tdSql
.
query
(
f
"select sum(a) from (select sum(c1) a from
{
dbname
}
.
stb1 partition by tbname) "
)
tdSql
.
checkData
(
0
,
0
,
2592
)
tdSql
.
query
(
" select sum(c1) from
stb1 where t1=1"
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 where t1=1"
)
tdSql
.
checkData
(
0
,
0
,
54
)
tdSql
.
query
(
"select sum(c1+c2) from
stb1 where c1 =1 "
)
tdSql
.
query
(
f
"select sum(c1+c2) from
{
dbname
}
.
stb1 where c1 =1 "
)
tdSql
.
checkData
(
0
,
0
,
22224.000000000
)
tdSql
.
query
(
"select sum(c1) from
stb1 where tbname=
\"
ct2
\"
"
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 where tbname=
\"
ct2
\"
"
)
tdSql
.
checkData
(
0
,
0
,
54
)
tdSql
.
query
(
"select sum(c1) from
stb1 partition by tbname"
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 partition by tbname"
)
tdSql
.
checkRows
(
20
)
tdSql
.
query
(
"select sum(c1) from
stb1 where t1> 4 partition by tbname"
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 where t1> 4 partition by tbname"
)
tdSql
.
checkRows
(
15
)
# union all
tdSql
.
query
(
"select sum(c1) from stb1 union all select sum(c1) from
stb1 "
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.stb1 union all select sum(c1) from
{
dbname
}
.
stb1 "
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkData
(
0
,
0
,
2592
)
tdSql
.
query
(
"select sum(a) from (select sum(c1) a from stb1 union all select sum(c1) a from
stb1)"
)
tdSql
.
query
(
f
"select sum(a) from (select sum(c1) a from
{
dbname
}
.stb1 union all select sum(c1) a from
{
dbname
}
.
stb1)"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
0
,
5184
)
# join
tdSql
.
execute
(
" create database if not exists db "
)
tdSql
.
execute
(
" use db "
)
tdSql
.
execute
(
" create stable st (ts timestamp , c1 int ,c2 float) tags(t1 int) "
)
tdSql
.
execute
(
" create table
tb1 using
st tags(1) "
)
tdSql
.
execute
(
" create table
tb2 using
st tags(2) "
)
tdSql
.
execute
(
" create stable
db.
st (ts timestamp , c1 int ,c2 float) tags(t1 int) "
)
tdSql
.
execute
(
" create table
db.tb1 using db.
st tags(1) "
)
tdSql
.
execute
(
" create table
db.tb2 using db.
st tags(2) "
)
for
i
in
range
(
10
):
ts
=
i
*
10
+
self
.
ts
tdSql
.
execute
(
f
" insert into tb1 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into tb2 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into db.tb1 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
execute
(
f
" insert into db.tb2 values(
{
ts
}
,
{
i
}
,
{
i
}
.0)"
)
tdSql
.
query
(
"select sum(tb1.c1), sum(tb2.c2) from
tb1,
tb2 where tb1.ts=tb2.ts"
)
tdSql
.
query
(
"select sum(tb1.c1), sum(tb2.c2) from
db.tb1 tb1, db.tb2
tb2 where tb1.ts=tb2.ts"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
0
,
45
)
tdSql
.
checkData
(
0
,
1
,
45.000000000
)
# group by
tdSql
.
execute
(
" use testdb
"
)
tdSql
.
execute
(
f
"use
{
dbname
}
"
)
# partition by tbname or partition by tag
tdSql
.
query
(
"select sum(c1) from
stb1 partition by tbname"
)
tdSql
.
query
(
f
"select sum(c1) from
{
dbname
}
.
stb1 partition by tbname"
)
tdSql
.
checkRows
(
20
)
# nest query for support max
tdSql
.
query
(
"select abs(c2+2)+1 from (select sum(c1) c2 from
stb1)"
)
tdSql
.
query
(
f
"select abs(c2+2)+1 from (select sum(c1) c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
2595.000000000
)
tdSql
.
query
(
"select sum(c1+2) as c2 from (select ts ,c1 ,c2 from
stb1)"
)
tdSql
.
query
(
f
"select sum(c1+2) as c2 from (select ts ,c1 ,c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
2960.000000000
)
tdSql
.
query
(
"select sum(a+2) as c2 from (select ts ,abs(c1) a ,c2 from
stb1)"
)
tdSql
.
query
(
f
"select sum(a+2) as c2 from (select ts ,abs(c1) a ,c2 from
{
dbname
}
.
stb1)"
)
tdSql
.
checkData
(
0
,
0
,
2960.000000000
)
# mixup with other functions
tdSql
.
query
(
"select max(c1),count(c1),last(c2,c3),sum(c1+c2) from
stb1"
)
tdSql
.
query
(
f
"select max(c1),count(c1),last(c2,c3),sum(c1+c2) from
{
dbname
}
.
stb1"
)
tdSql
.
checkData
(
0
,
0
,
28
)
tdSql
.
checkData
(
0
,
1
,
184
)
tdSql
.
checkData
(
0
,
2
,
-
99999
)
...
...
tests/system-test/fulltest.sh
浏览文件 @
ca55fc52
...
...
@@ -90,6 +90,12 @@ python3 ./test.py -f 2-query/distribute_agg_max.py
python3 ./test.py
-f
2-query/distribute_agg_max.py
-R
python3 ./test.py
-f
2-query/distribute_agg_min.py
python3 ./test.py
-f
2-query/distribute_agg_min.py
-R
python3 ./test.py
-f
2-query/distribute_agg_spread.py
python3 ./test.py
-f
2-query/distribute_agg_spread.py
-R
python3 ./test.py
-f
2-query/distribute_agg_stddev.py
python3 ./test.py
-f
2-query/distribute_agg_stddev.py
-R
python3 ./test.py
-f
2-query/distribute_agg_sum.py
python3 ./test.py
-f
2-query/distribute_agg_sum.py
-R
...
...
@@ -156,9 +162,6 @@ python3 ./test.py -f 2-query/function_stateduration.py
python3 ./test.py
-f
2-query/statecount.py
python3 ./test.py
-f
2-query/tail.py
python3 ./test.py
-f
2-query/ttl_comment.py
python3 ./test.py
-f
2-query/distribute_agg_sum.py
python3 ./test.py
-f
2-query/distribute_agg_spread.py
python3 ./test.py
-f
2-query/distribute_agg_stddev.py
python3 ./test.py
-f
2-query/twa.py
python3 ./test.py
-f
2-query/irate.py
python3 ./test.py
-f
2-query/function_null.py
...
...
@@ -195,7 +198,7 @@ python3 ./test.py -f 6-cluster/5dnode3mnodeRecreateMnode.py -N 5 -M 3
python3 ./test.py
-f
6-cluster/5dnode3mnodeStopFollowerLeader.py
-N
5
-M
3
python3 ./test.py
-f
6-cluster/5dnode3mnodeStop2Follower.py
-N
5
-M
3
# vnode case
# vnode case
python3 test.py
-f
6-cluster/vnode/4dnode1mnode_basic_createDb_replica1.py
-N
4
-M
1
python3 test.py
-f
6-cluster/vnode/4dnode1mnode_basic_replica1_insertdatas.py
-N
4
-M
1
python3 test.py
-f
6-cluster/vnode/4dnode1mnode_basic_replica1_insertdatas_querys.py
-N
4
-M
1
...
...
@@ -214,8 +217,8 @@ python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_insertdatas_query
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_mnode3_insertdatas_querys.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_follower_force_stop.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_follower.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_leader_force_stop.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_leader.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_leader_force_stop.py -N 4 -M 1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_querydatas_stop_leader.py -N 4 -M 1
python3 test.py
-f
6-cluster/vnode/4dnode1mnode_basic_replica3_vgroups.py
-N
4
-M
1
# python3 test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_vgroups_stopOne.py -N 4 -M 1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录