Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
313be267
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
313be267
编写于
7月 12, 2022
作者:
H
Hui Li
提交者:
GitHub
7月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #14642 from taosdata/3.0test/jcy
test:update test cases
上级
75d7dd33
da9edd87
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
295 addition
and
175 deletion
+295
-175
tests/pytest/util/sqlset.py
tests/pytest/util/sqlset.py
+26
-2
tests/system-test/1-insert/alter_table.py
tests/system-test/1-insert/alter_table.py
+25
-2
tests/system-test/2-query/apercentile.py
tests/system-test/2-query/apercentile.py
+101
-73
tests/system-test/2-query/bottom.py
tests/system-test/2-query/bottom.py
+3
-24
tests/system-test/2-query/percentile.py
tests/system-test/2-query/percentile.py
+135
-47
tests/system-test/2-query/top.py
tests/system-test/2-query/top.py
+5
-27
未找到文件。
tests/pytest/util/sqlset.py
浏览文件 @
313be267
...
@@ -41,6 +41,30 @@ class TDSetSql:
...
@@ -41,6 +41,30 @@ class TDSetSql:
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
set_insertsql
(
self
,
column_dict
,
tbname
,
binary_str
,
nchar_str
):
sql
=
''
for
k
,
v
in
column_dict
.
items
():
if
v
.
lower
()
==
'timestamp'
or
v
.
lower
()
==
'tinyint'
or
v
.
lower
()
==
'smallint'
or
v
.
lower
()
==
'int'
or
v
.
lower
()
==
'bigint'
or
\
v
.
lower
()
==
'tinyint unsigned'
or
v
.
lower
()
==
'smallint unsigned'
or
v
.
lower
()
==
'int unsigned'
or
v
.
lower
()
==
'bigint unsigned'
or
v
.
lower
()
==
'bool'
:
sql
+=
'%d,'
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
sql
+=
'%f,'
elif
'binary'
in
v
.
lower
():
sql
+=
f
'"
{
binary_str
}
%d",'
elif
'nchar'
in
v
.
lower
():
sql
+=
f
'"
{
nchar_str
}
%d",'
return
(
f
'insert into
{
tbname
}
values(
{
sql
[:
-
1
]
}
)'
)
def
insert_values
(
self
,
column_dict
,
i
,
insert_sql
,
insert_list
,
ts
):
for
k
,
v
in
column_dict
.
items
():
\ No newline at end of file
if
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]
or
\
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
insert_list
.
append
(
0
+
i
)
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
insert_list
.
append
(
0.1
+
i
)
elif
v
.
lower
()
==
'bool'
:
insert_list
.
append
(
i
%
2
)
elif
v
.
lower
()
==
'timestamp'
:
insert_list
.
append
(
ts
+
i
)
tdSql
.
execute
(
insert_sql
%
(
tuple
(
insert_list
)))
\ No newline at end of file
tests/system-test/1-insert/alter_table.py
浏览文件 @
313be267
...
@@ -184,20 +184,36 @@ class TDTestCase:
...
@@ -184,20 +184,36 @@ class TDTestCase:
for
k
,
v
in
self
.
tag_dict
.
items
():
for
k
,
v
in
self
.
tag_dict
.
items
():
if
v
.
lower
()
==
'tinyint'
:
if
v
.
lower
()
==
'tinyint'
:
self
.
tag_check
(
i
,
k
,
tag_tinyint
)
self
.
tag_check
(
i
,
k
,
tag_tinyint
)
for
error
in
[
constant
.
TINYINT_MIN
-
1
,
constant
.
TINYINT_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'smallint'
:
elif
v
.
lower
()
==
'smallint'
:
self
.
tag_check
(
i
,
k
,
tag_smallint
)
self
.
tag_check
(
i
,
k
,
tag_smallint
)
for
error
in
[
constant
.
SMALLINT_MIN
-
1
,
constant
.
SMALLINT_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'int'
:
elif
v
.
lower
()
==
'int'
:
self
.
tag_check
(
i
,
k
,
tag_int
)
self
.
tag_check
(
i
,
k
,
tag_int
)
for
error
in
[
constant
.
INT_MIN
-
1
,
constant
.
INT_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'bigint'
:
elif
v
.
lower
()
==
'bigint'
:
self
.
tag_check
(
i
,
k
,
tag_bigint
)
self
.
tag_check
(
i
,
k
,
tag_bigint
)
for
error
in
[
constant
.
BIGINT_MIN
-
1
,
constant
.
BIGINT_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'tinyint unsigned'
:
elif
v
.
lower
()
==
'tinyint unsigned'
:
self
.
tag_check
(
i
,
k
,
tag_untinyint
)
self
.
tag_check
(
i
,
k
,
tag_untinyint
)
for
error
in
[
constant
.
TINYINT_UN_MIN
-
1
,
constant
.
TINYINT_UN_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'smallint unsigned'
:
elif
v
.
lower
()
==
'smallint unsigned'
:
self
.
tag_check
(
i
,
k
,
tag_unsmallint
)
self
.
tag_check
(
i
,
k
,
tag_unsmallint
)
for
error
in
[
constant
.
SMALLINT_UN_MIN
-
1
,
constant
.
SMALLINT_UN_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'int unsigned'
:
elif
v
.
lower
()
==
'int unsigned'
:
self
.
tag_check
(
i
,
k
,
tag_unint
)
self
.
tag_check
(
i
,
k
,
tag_unint
)
for
error
in
[
constant
.
INT_UN_MIN
-
1
,
constant
.
INT_UN_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'bigint unsigned'
:
elif
v
.
lower
()
==
'bigint unsigned'
:
self
.
tag_check
(
i
,
k
,
tag_unbigint
)
self
.
tag_check
(
i
,
k
,
tag_unbigint
)
for
error
in
[
constant
.
BIGINT_UN_MIN
-
1
,
constant
.
BIGINT_UN_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
v
.
lower
()
==
'bool'
:
elif
v
.
lower
()
==
'bool'
:
self
.
tag_check
(
i
,
k
,
tag_bool
)
self
.
tag_check
(
i
,
k
,
tag_bool
)
elif
v
.
lower
()
==
'float'
:
elif
v
.
lower
()
==
'float'
:
...
@@ -207,6 +223,8 @@ class TDTestCase:
...
@@ -207,6 +223,8 @@ class TDTestCase:
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
0
],
tdSql
.
queryResult
[
0
][
0
])
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
0
],
tdSql
.
queryResult
[
0
][
0
])
else
:
else
:
tdLog
.
exit
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
,data check failure'
)
tdLog
.
exit
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
,data check failure'
)
# for error in [constant.FLOAT_MIN*10,constant.FLOAT_MAX*10]:
# tdSql.error(f'alter table {self.stbname}_{i} set tag {k} = {error}')
elif
v
.
lower
()
==
'double'
:
elif
v
.
lower
()
==
'double'
:
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
tag_double
}
'
)
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
tag_double
}
'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
...
@@ -214,12 +232,17 @@ class TDTestCase:
...
@@ -214,12 +232,17 @@ class TDTestCase:
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
0
],
tdSql
.
queryResult
[
0
][
0
])
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
0
],
tdSql
.
queryResult
[
0
][
0
])
else
:
else
:
tdLog
.
exit
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
,data check failure'
)
tdLog
.
exit
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
,data check failure'
)
for
error
in
[
constant
.
DOUBLE_MIN
-
1
,
constant
.
DOUBLE_MAX
+
1
]:
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
=
{
error
}
'
)
elif
'binary'
in
v
.
lower
():
elif
'binary'
in
v
.
lower
():
tag_binary_error
=
tdCom
.
getLongName
(
self
.
binary_length
+
1
)
tdSql
.
error
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
= "
{
tag_binary_error
}
"'
)
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
= "
{
tag_binary
}
"'
)
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
= "
{
tag_binary
}
"'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
checkData
(
0
,
0
,
tag_binary
)
tdSql
.
checkData
(
0
,
0
,
tag_binary
)
elif
'nchar'
in
v
.
lower
():
elif
'nchar'
in
v
.
lower
():
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
= "
{
tag_nchar
}
"'
)
tag_nchar_error
=
tdCom
.
getLongName
(
self
.
nchar_length
+
1
)
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
set tag
{
k
}
= "
{
tag_nchar_error
}
"'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
query
(
f
'select
{
k
}
from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
checkData
(
0
,
0
,
tag_nchar
)
tdSql
.
checkData
(
0
,
0
,
tag_nchar
)
...
...
tests/system-test/2-query/apercentile.py
浏览文件 @
313be267
...
@@ -15,90 +15,118 @@ from util.log import *
...
@@ -15,90 +15,118 @@ 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
from
util.sqlset
import
TDSetSql
class
TDTestCase
:
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
())
tdSql
.
init
(
conn
.
cursor
()
,
logSql
)
self
.
rowNum
=
10
self
.
rowNum
=
10
self
.
ts
=
1537146000000
self
.
ts
=
1537146000000
self
.
setsql
=
TDSetSql
()
self
.
ntbname
=
'ntb'
self
.
stbname
=
'stb'
self
.
binary_length
=
20
# the length of binary for column_dict
self
.
nchar_length
=
20
# the length of nchar for column_dict
self
.
column_dict
=
{
'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'
:
f
'binary(
{
self
.
binary_length
}
)'
,
'col13'
:
f
'nchar(
{
self
.
nchar_length
}
)'
}
def
check_apercentile
(
self
,
data
,
expect_data
,
param
,
percent
,
column
):
self
.
tag_dict
=
{
if
param
==
"default"
:
'ts_tag'
:
'timestamp'
,
if
abs
((
expect_data
-
data
)
<=
expect_data
*
0.2
):
't1'
:
'tinyint'
,
tdLog
.
info
(
f
"apercentile function values check success with col
{
column
}
, param =
{
param
}
,percent =
{
percent
}
"
)
't2'
:
'smallint'
,
else
:
't3'
:
'int'
,
tdLog
.
notice
(
f
"apercentile function value has not as expected with col
{
column
}
, param =
{
param
}
,percent =
{
percent
}
"
)
't4'
:
'bigint'
,
sys
.
exit
(
1
)
't5'
:
'tinyint unsigned'
,
elif
param
==
"t-digest"
:
't6'
:
'smallint unsigned'
,
if
abs
((
expect_data
-
data
)
<=
expect_data
*
0.2
):
't7'
:
'int unsigned'
,
tdLog
.
info
(
f
"apercentile function values check success with col
{
column
}
, param =
{
param
}
,percent =
{
percent
}
"
)
't8'
:
'bigint unsigned'
,
else
:
't9'
:
'float'
,
tdLog
.
notice
(
f
"apercentile function value has not as expected with col
{
column
}
, param =
{
param
}
,percent =
{
percent
}
"
)
't10'
:
'double'
,
sys
.
exit
(
1
)
't11'
:
'bool'
,
't12'
:
f
'binary(
{
self
.
binary_length
}
)'
,
def
run
(
self
):
't13'
:
f
'nchar(
{
self
.
nchar_length
}
)'
tdSql
.
prepare
()
}
self
.
binary_str
=
'taosdata'
intData
=
[]
self
.
nchar_str
=
'涛思数据'
floatData
=
[]
self
.
tbnum
=
2
percent_list
=
[
0
,
50
,
100
]
self
.
tag_ts
=
self
.
ts
param_list
=
[
'default'
,
't-digest'
]
self
.
tag_tinyint
=
1
tdSql
.
execute
(
'''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
self
.
tag_smallint
=
2
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)'''
)
self
.
tag_int
=
3
for
i
in
range
(
self
.
rowNum
):
self
.
tag_bigint
=
4
tdSql
.
execute
(
"insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
self
.
tag_utint
=
5
%
(
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
.
tag_usint
=
6
intData
.
append
(
i
+
1
)
self
.
tag_uint
=
7
floatData
.
append
(
i
+
0.1
)
self
.
tag_ubint
=
8
self
.
tag_float
=
9.1
# percentile verifacation
self
.
tag_double
=
10.1
self
.
tag_bool
=
True
self
.
tag_values
=
[
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
}
"'
]
tdSql
.
error
(
"select apercentile(ts ,20) from test"
)
self
.
percent
=
[
1
,
50
,
100
]
tdSql
.
error
(
"select apercentile(col7 ,20) from test"
)
self
.
param_list
=
[
'default'
,
't-digest'
]
tdSql
.
error
(
"select apercentile(col8 ,20) from test"
)
def
insert_data
(
self
,
column_dict
,
tbname
,
row_num
):
tdSql
.
error
(
"select apercentile(col9 ,20) from test"
)
insert_sql
=
self
.
setsql
.
set_insertsql
(
column_dict
,
tbname
,
self
.
binary_str
,
self
.
nchar_str
)
for
i
in
range
(
row_num
):
insert_list
=
[]
self
.
setsql
.
insert_values
(
column_dict
,
i
,
insert_sql
,
insert_list
,
self
.
ts
)
column_list
=
[
1
,
2
,
3
,
4
,
5
,
6
,
11
,
12
,
13
,
14
]
for
i
in
column_list
:
def
function_check_ntb
(
self
):
for
j
in
percent_list
:
tdSql
.
prepare
()
for
k
in
param_list
:
tdSql
.
execute
(
self
.
setsql
.
set_create_normaltable_sql
(
self
.
ntbname
,
self
.
column_dict
))
tdSql
.
query
(
f
"select apercentile(col
{
i
}
,
{
j
}
,'
{
k
}
') from test"
)
self
.
insert_data
(
self
.
column_dict
,
self
.
ntbname
,
self
.
rowNum
)
data
=
tdSql
.
getData
(
0
,
0
)
for
k
,
v
in
self
.
column_dict
.
items
():
tdSql
.
query
(
f
"select percentile(col
{
i
}
,
{
j
}
) from test"
)
for
percent
in
self
.
percent
:
expect_data
=
tdSql
.
getData
(
0
,
0
)
for
param
in
self
.
param_list
:
self
.
check_apercentile
(
data
,
expect_data
,
k
,
j
,
i
)
if
v
.
lower
()
in
[
'timestamp'
,
'bool'
]
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select apercentile(
{
k
}
,
{
percent
}
,"
{
param
}
") from
{
self
.
ntbname
}
'
)
error_param_list
=
[
-
1
,
101
,
'"a"'
]
else
:
for
i
in
error_param_list
:
tdSql
.
query
(
f
"select apercentile(
{
k
}
,
{
percent
}
,'
{
param
}
') from
{
self
.
ntbname
}
"
)
tdSql
.
error
(
f
'select apercentile(col1,
{
i
}
) from test'
)
def
function_check_stb
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
"create table meters (ts timestamp, voltage int) tags(loc nchar(20))"
)
tdSql
.
execute
(
self
.
setsql
.
set_create_stable_sql
(
self
.
stbname
,
self
.
column_dict
,
self
.
tag_dict
))
tdSql
.
execute
(
"create table t0 using meters tags('beijing')"
)
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
"create table t1 using meters tags('shanghai')"
)
tdSql
.
execute
(
f
"create table
{
self
.
stbname
}
_
{
i
}
using
{
self
.
stbname
}
tags(
{
self
.
tag_values
[
0
]
}
)"
)
for
i
in
range
(
self
.
rowNum
):
self
.
insert_data
(
self
.
column_dict
,
f
'
{
self
.
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
tdSql
.
execute
(
"insert into t0 values(%d, %d)"
%
(
self
.
ts
+
i
,
i
+
1
))
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
"insert into t1 values(%d, %d)"
%
(
self
.
ts
+
i
,
i
+
1
))
for
k
,
v
in
self
.
column_dict
.
items
():
for
percent
in
self
.
percent
:
for
param
in
self
.
param_list
:
if
v
.
lower
()
in
[
'timestamp'
,
'bool'
]
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select apercentile(
{
k
}
,
{
percent
}
,"
{
param
}
") from
{
self
.
stbname
}
_
{
i
}
'
)
else
:
tdSql
.
query
(
f
"select apercentile(
{
k
}
,
{
percent
}
,'
{
param
}
') from
{
self
.
stbname
}
_
{
i
}
"
)
for
k
,
v
in
self
.
column_dict
.
items
():
for
percent
in
self
.
percent
:
for
param
in
self
.
param_list
:
if
v
.
lower
()
in
[
'timestamp'
,
'bool'
]
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select apercentile(
{
k
}
,
{
percent
}
,"
{
param
}
") from
{
self
.
stbname
}
'
)
else
:
tdSql
.
query
(
f
"select apercentile(
{
k
}
,
{
percent
}
,'
{
param
}
') from
{
self
.
stbname
}
"
)
def
run
(
self
):
self
.
function_check_ntb
()
self
.
function_check_stb
()
column_list
=
[
'voltage'
]
for
i
in
column_list
:
for
j
in
percent_list
:
for
k
in
param_list
:
tdSql
.
query
(
f
"select apercentile(
{
i
}
,
{
j
}
,'
{
k
}
') from t0"
)
data
=
tdSql
.
getData
(
0
,
0
)
tdSql
.
query
(
f
"select percentile(
{
i
}
,
{
j
}
) from t0"
)
expect_data
=
tdSql
.
getData
(
0
,
0
)
self
.
check_apercentile
(
data
,
expect_data
,
k
,
j
,
i
)
tdSql
.
query
(
f
"select apercentile(
{
i
}
,
{
j
}
,'
{
k
}
') from meters"
)
tdSql
.
checkRows
(
1
)
table_list
=
[
"meters"
,
"t0"
]
for
i
in
error_param_list
:
for
j
in
table_list
:
for
k
in
column_list
:
tdSql
.
error
(
f
'select apercentile(
{
k
}
,
{
i
}
) from
{
j
}
'
)
def
stop
(
self
):
def
stop
(
self
):
tdSql
.
close
()
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
...
...
tests/system-test/2-query/bottom.py
浏览文件 @
313be267
...
@@ -51,31 +51,10 @@ class TDTestCase:
...
@@ -51,31 +51,10 @@ class TDTestCase:
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
):
sql
=
''
insert_sql
=
self
.
setsql
.
set_insertsql
(
column_dict
,
tbname
,
self
.
binary_str
,
self
.
nchar_str
)
for
k
,
v
in
column_dict
.
items
():
if
v
.
lower
()
==
'timestamp'
or
v
.
lower
()
==
'tinyint'
or
v
.
lower
()
==
'smallint'
or
v
.
lower
()
==
'int'
or
v
.
lower
()
==
'bigint'
or
\
v
.
lower
()
==
'tinyint unsigned'
or
v
.
lower
()
==
'smallint unsigned'
or
v
.
lower
()
==
'int unsigned'
or
v
.
lower
()
==
'bigint unsigned'
or
v
.
lower
()
==
'bool'
:
sql
+=
'%d,'
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
sql
+=
'%f,'
elif
'binary'
in
v
.
lower
():
sql
+=
f
'"
{
self
.
binary_str
}
%d",'
elif
'nchar'
in
v
.
lower
():
sql
+=
f
'"
{
self
.
nchar_str
}
%d",'
insert_sql
=
f
'insert into
{
tbname
}
values(
{
sql
[:
-
1
]
}
)'
for
i
in
range
(
row_num
):
for
i
in
range
(
row_num
):
insert_list
=
[]
insert_list
=
[]
for
k
,
v
in
column_dict
.
items
():
self
.
setsql
.
insert_values
(
column_dict
,
i
,
insert_sql
,
insert_list
,
self
.
ts
)
if
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]
or
\
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
insert_list
.
append
(
0
+
i
)
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
insert_list
.
append
(
0.1
+
i
)
elif
v
.
lower
()
==
'bool'
:
insert_list
.
append
(
i
%
2
)
elif
v
.
lower
()
==
'timestamp'
:
insert_list
.
append
(
self
.
ts
+
i
)
tdSql
.
execute
(
insert_sql
%
(
tuple
(
insert_list
)))
def
bottom_check_data
(
self
,
tbname
,
tb_type
):
def
bottom_check_data
(
self
,
tbname
,
tb_type
):
new_column_dict
=
{}
new_column_dict
=
{}
for
param
in
self
.
param_list
:
for
param
in
self
.
param_list
:
...
@@ -129,7 +108,7 @@ class TDTestCase:
...
@@ -129,7 +108,7 @@ class TDTestCase:
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
]
}
)"
)
tdSql
.
execute
(
self
.
insert_data
(
self
.
column_dict
,
f
'
{
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
)
self
.
insert_data
(
self
.
column_dict
,
f
'
{
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
tdSql
.
query
(
'show tables'
)
tdSql
.
query
(
'show tables'
)
vgroup_list
=
[]
vgroup_list
=
[]
for
i
in
range
(
len
(
tdSql
.
queryResult
)):
for
i
in
range
(
len
(
tdSql
.
queryResult
)):
...
...
tests/system-test/2-query/percentile.py
浏览文件 @
313be267
...
@@ -11,12 +11,14 @@
...
@@ -11,12 +11,14 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from
platform
import
java_ver
from
util.log
import
*
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
from
util.sqlset
import
TDSetSql
class
TDTestCase
:
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
def
init
(
self
,
conn
,
logSql
):
...
@@ -25,55 +27,141 @@ class TDTestCase:
...
@@ -25,55 +27,141 @@ class TDTestCase:
self
.
rowNum
=
10
self
.
rowNum
=
10
self
.
ts
=
1537146000000
self
.
ts
=
1537146000000
self
.
setsql
=
TDSetSql
()
self
.
ntbname
=
'ntb'
self
.
stbname
=
'stb'
self
.
binary_length
=
20
# the length of binary for column_dict
self
.
nchar_length
=
20
# the length of nchar for column_dict
self
.
column_dict
=
{
'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'
:
f
'binary(
{
self
.
binary_length
}
)'
,
'col13'
:
f
'nchar(
{
self
.
nchar_length
}
)'
}
def
run
(
self
):
self
.
tag_dict
=
{
tdSql
.
prepare
()
'ts_tag'
:
'timestamp'
,
't1'
:
'tinyint'
,
intData
=
[]
't2'
:
'smallint'
,
floatData
=
[]
't3'
:
'int'
,
't4'
:
'bigint'
,
tdSql
.
execute
(
'''create table test(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
't5'
:
'tinyint unsigned'
,
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)'''
)
't6'
:
'smallint unsigned'
,
for
i
in
range
(
self
.
rowNum
):
't7'
:
'int unsigned'
,
tdSql
.
execute
(
"insert into test values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
't8'
:
'bigint unsigned'
,
%
(
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
))
't9'
:
'float'
,
intData
.
append
(
i
+
1
)
't10'
:
'double'
,
floatData
.
append
(
i
+
0.1
)
't11'
:
'bool'
,
't12'
:
f
'binary(
{
self
.
binary_length
}
)'
,
# percentile verifacation
't13'
:
f
'nchar(
{
self
.
nchar_length
}
)'
tdSql
.
error
(
"select percentile(ts ,20) from test"
)
}
tdSql
.
error
(
"select percentile(col7 ,20) from test"
)
self
.
binary_str
=
'taosdata'
tdSql
.
error
(
"select percentile(col8 ,20) from test"
)
self
.
nchar_str
=
'涛思数据'
tdSql
.
error
(
"select percentile(col9 ,20) from test"
)
self
.
tbnum
=
2
column_list
=
[
1
,
2
,
3
,
4
,
11
,
12
,
13
,
14
]
self
.
tag_ts
=
self
.
ts
percent_list
=
[
0
,
50
,
100
]
self
.
tag_tinyint
=
1
for
i
in
column_list
:
self
.
tag_smallint
=
2
for
j
in
percent_list
:
self
.
tag_int
=
3
tdSql
.
query
(
f
"select percentile(col
{
i
}
,
{
j
}
) from test"
)
self
.
tag_bigint
=
4
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
intData
,
j
))
self
.
tag_utint
=
5
self
.
tag_usint
=
6
for
i
in
[
5
,
6
]:
self
.
tag_uint
=
7
for
j
in
percent_list
:
self
.
tag_ubint
=
8
tdSql
.
query
(
f
"select percentile(col
{
i
}
,
{
j
}
) from test"
)
self
.
tag_float
=
9.1
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
floatData
,
j
))
self
.
tag_double
=
10.1
self
.
tag_bool
=
True
self
.
tag_values
=
[
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
}
"'
]
tdSql
.
execute
(
"create table meters (ts timestamp, voltage int) tags(loc nchar(20))"
)
self
.
param
=
[
1
,
50
,
100
]
tdSql
.
execute
(
"create table t0 using meters tags('beijing')"
)
tdSql
.
execute
(
"create table t1 using meters tags('shanghai')"
)
for
i
in
range
(
self
.
rowNum
):
tdSql
.
execute
(
"insert into t0 values(%d, %d)"
%
(
self
.
ts
+
i
,
i
+
1
))
tdSql
.
execute
(
"insert into t1 values(%d, %d)"
%
(
self
.
ts
+
i
,
i
+
1
))
# tdSql.error("select percentile(voltage, 20) from meters")
def
insert_data
(
self
,
column_dict
,
tbname
,
row_num
):
intData
=
[]
floatData
=
[]
insert_sql
=
self
.
setsql
.
set_insertsql
(
column_dict
,
tbname
,
self
.
binary_str
,
self
.
nchar_str
)
tdSql
.
execute
(
"create table st(ts timestamp, k int)"
)
for
i
in
range
(
row_num
):
tdSql
.
execute
(
"insert into st values(now, -100)(now+1a,-99)"
)
insert_list
=
[]
tdSql
.
query
(
"select apercentile(k, 20) from st"
)
self
.
setsql
.
insert_values
(
column_dict
,
i
,
insert_sql
,
insert_list
,
self
.
ts
)
tdSql
.
checkData
(
0
,
0
,
-
100.00
)
intData
.
append
(
i
)
floatData
.
append
(
i
+
0.1
)
return
intData
,
floatData
def
check_tags
(
self
,
tags
,
param
,
num
,
value
):
tdSql
.
query
(
f
'select percentile(
{
tags
}
,
{
param
}
) from
{
self
.
stbname
}
_
{
num
}
'
)
print
(
tdSql
.
queryResult
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
0
],
value
)
def
function_check_ntb
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
self
.
setsql
.
set_create_normaltable_sql
(
self
.
ntbname
,
self
.
column_dict
))
intData
,
floatData
=
self
.
insert_data
(
self
.
column_dict
,
self
.
ntbname
,
self
.
rowNum
)
for
k
,
v
in
self
.
column_dict
.
items
():
for
param
in
self
.
param
:
if
v
.
lower
()
in
[
'timestamp'
,
'bool'
]
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
ntbname
}
'
)
elif
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]:
tdSql
.
query
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
ntbname
}
'
)
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
intData
,
param
))
else
:
tdSql
.
query
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
ntbname
}
'
)
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
floatData
,
param
))
def
function_check_ctb
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
self
.
setsql
.
set_create_stable_sql
(
self
.
stbname
,
self
.
column_dict
,
self
.
tag_dict
))
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
"create table
{
self
.
stbname
}
_
{
i
}
using
{
self
.
stbname
}
tags(
{
self
.
tag_values
[
0
]
}
)"
)
intData
,
floatData
=
self
.
insert_data
(
self
.
column_dict
,
f
'
{
self
.
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
for
i
in
range
(
self
.
tbnum
):
for
k
,
v
in
self
.
column_dict
.
items
():
for
param
in
self
.
param
:
if
v
.
lower
()
in
[
'timestamp'
,
'bool'
]
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
stbname
}
_
{
i
}
'
)
elif
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]:
tdSql
.
query
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
intData
,
param
))
else
:
tdSql
.
query
(
f
'select percentile(
{
k
}
,
{
param
}
) from
{
self
.
stbname
}
_
{
i
}
'
)
tdSql
.
checkData
(
0
,
0
,
np
.
percentile
(
floatData
,
param
))
#!bug TD-17119
# for k,v in self.tag_dict.items():
# for param in self.param:
# if v.lower() in ['timestamp','bool'] or 'binary' in v.lower() or 'nchar' in v.lower():
# tdSql.error(f'select percentile({k},{param}) from {self.stbname}_{i}')
# elif v.lower() == 'tinyint':
# self.check_tags(k,param,i,self.tag_tinyint)
# elif v.lower() == 'smallint':
# self.check_tags(k,param,i,self.tag_smallint)
# elif v.lower() == 'int':
# self.check_tags(k,param,i,self.tag_int)
# elif v.lower() == 'bigint':
# self.check_tags(k,param,i,self.tag_bigint)
# elif v.lower() == 'tinyint unsigned':
# self.check_tags(k,param,i,self.tag_utint)
# elif v.lower() == 'smallint unsigned':
# self.check_tags(k,param,i,self.tag_usint)
# elif v.lower() == 'int unsigned':
# self.check_tags(k,param,i,self.tag_uint)
# elif v.lower() == 'bigint unsigned':
# self.check_tags(k,param,i,self.tag_ubint)
# elif v.lower() == 'float':
# self.check_tags(k,param,i,self.tag_float)
# elif v.lower() == 'double':
# self.check_tags(k,param,i,self.tag_double)
def
run
(
self
):
self
.
function_check_ntb
()
self
.
function_check_ctb
()
def
stop
(
self
):
def
stop
(
self
):
tdSql
.
close
()
tdSql
.
close
()
...
...
tests/system-test/2-query/top.py
浏览文件 @
313be267
...
@@ -49,32 +49,10 @@ class TDTestCase:
...
@@ -49,32 +49,10 @@ class TDTestCase:
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
):
sql
=
''
insert_sql
=
self
.
setsql
.
set_insertsql
(
column_dict
,
tbname
,
self
.
binary_str
,
self
.
nchar_str
)
for
k
,
v
in
column_dict
.
items
():
if
v
.
lower
()
==
'timestamp'
or
v
.
lower
()
==
'tinyint'
or
v
.
lower
()
==
'smallint'
or
v
.
lower
()
==
'int'
or
v
.
lower
()
==
'bigint'
or
\
v
.
lower
()
==
'tinyint unsigned'
or
v
.
lower
()
==
'smallint unsigned'
or
v
.
lower
()
==
'int unsigned'
or
v
.
lower
()
==
'bigint unsigned'
or
v
.
lower
()
==
'bool'
:
sql
+=
'%d,'
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
sql
+=
'%f,'
elif
'binary'
in
v
.
lower
():
sql
+=
f
'"
{
self
.
binary_str
}
%d",'
elif
'nchar'
in
v
.
lower
():
sql
+=
f
'"
{
self
.
nchar_str
}
%d",'
insert_sql
=
f
'insert into
{
tbname
}
values(
{
sql
[:
-
1
]
}
)'
for
i
in
range
(
row_num
):
for
i
in
range
(
row_num
):
insert_list
=
[]
insert_list
=
[]
for
k
,
v
in
column_dict
.
items
():
self
.
setsql
.
insert_values
(
column_dict
,
i
,
insert_sql
,
insert_list
,
self
.
ts
)
if
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]
or
\
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
insert_list
.
append
(
1
+
i
)
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
insert_list
.
append
(
0.1
+
i
)
elif
v
.
lower
()
==
'bool'
:
insert_list
.
append
(
i
%
2
)
elif
v
.
lower
()
==
'timestamp'
:
insert_list
.
append
(
self
.
ts
+
i
)
tdSql
.
execute
(
insert_sql
%
(
tuple
(
insert_list
)))
pass
def
top_check_data
(
self
,
tbname
,
tb_type
):
def
top_check_data
(
self
,
tbname
,
tb_type
):
new_column_dict
=
{}
new_column_dict
=
{}
for
param
in
self
.
param_list
:
for
param
in
self
.
param_list
:
...
@@ -86,7 +64,7 @@ class TDTestCase:
...
@@ -86,7 +64,7 @@ class TDTestCase:
tdSql
.
checkRows
(
self
.
rowNum
)
tdSql
.
checkRows
(
self
.
rowNum
)
values_list
=
[]
values_list
=
[]
for
i
in
range
(
self
.
rowNum
):
for
i
in
range
(
self
.
rowNum
):
tp
=
(
self
.
rowNum
-
i
,)
tp
=
(
self
.
rowNum
-
i
-
1
,)
values_list
.
insert
(
0
,
tp
)
values_list
.
insert
(
0
,
tp
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
elif
tb_type
==
'stable'
:
elif
tb_type
==
'stable'
:
...
@@ -96,7 +74,7 @@ class TDTestCase:
...
@@ -96,7 +74,7 @@ class TDTestCase:
tdSql
.
checkRows
(
param
)
tdSql
.
checkRows
(
param
)
values_list
=
[]
values_list
=
[]
for
i
in
range
(
param
):
for
i
in
range
(
param
):
tp
=
(
self
.
rowNum
-
i
,)
tp
=
(
self
.
rowNum
-
i
-
1
,)
values_list
.
insert
(
0
,
tp
)
values_list
.
insert
(
0
,
tp
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
elif
tb_type
==
'stable'
:
elif
tb_type
==
'stable'
:
...
@@ -132,7 +110,7 @@ class TDTestCase:
...
@@ -132,7 +110,7 @@ class TDTestCase:
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
]
}
)"
)
tdSql
.
execute
(
self
.
insert_data
(
self
.
column_dict
,
f
'
{
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
)
self
.
insert_data
(
self
.
column_dict
,
f
'
{
stbname
}
_
{
i
}
'
,
self
.
rowNum
)
tdSql
.
query
(
'show tables'
)
tdSql
.
query
(
'show tables'
)
vgroup_list
=
[]
vgroup_list
=
[]
for
i
in
range
(
len
(
tdSql
.
queryResult
)):
for
i
in
range
(
len
(
tdSql
.
queryResult
)):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录