Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5fd2f9a3
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
未验证
提交
5fd2f9a3
编写于
6月 25, 2022
作者:
H
Hui Li
提交者:
GitHub
6月 25, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #14239 from taosdata/3.0test/jcy
test:add test case for param ttl
上级
493dda04
ee672bee
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
190 addition
and
70 deletion
+190
-70
tests/system-test/1-insert/table_param_ttl.py
tests/system-test/1-insert/table_param_ttl.py
+79
-0
tests/system-test/2-query/bottom.py
tests/system-test/2-query/bottom.py
+110
-70
tests/system-test/fulltest.sh
tests/system-test/fulltest.sh
+1
-0
未找到文件。
tests/system-test/1-insert/table_param_ttl.py
0 → 100644
浏览文件 @
5fd2f9a3
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.common
import
*
class
TDTestCase
:
updatecfgDict
=
{
'ttlUnit'
:
5
,
'ttlPushInterval'
:
3
}
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
())
self
.
ntbname
=
'ntb'
self
.
stbname
=
'stb'
self
.
tbnum
=
10
self
.
ttl_param
=
1
self
.
default_ttl
=
100
self
.
modify_ttl
=
1
def
ttl_check_ntb
(
self
):
tdSql
.
prepare
()
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
'create table
{
self
.
ntbname
}
_
{
i
}
(ts timestamp,c0 int) ttl
{
self
.
ttl_param
}
'
)
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
self
.
tbnum
)
sleep
(
self
.
updatecfgDict
[
'ttlUnit'
]
*
self
.
ttl_param
+
self
.
updatecfgDict
[
'ttlPushInterval'
])
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
0
)
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
'create table
{
self
.
ntbname
}
_
{
i
}
(ts timestamp,c0 int) ttl
{
self
.
default_ttl
}
'
)
for
i
in
range
(
int
(
self
.
tbnum
/
2
)):
tdSql
.
execute
(
f
'alter table
{
self
.
ntbname
}
_
{
i
}
ttl
{
self
.
modify_ttl
}
'
)
sleep
(
self
.
updatecfgDict
[
'ttlUnit'
]
*
self
.
modify_ttl
+
self
.
updatecfgDict
[
'ttlPushInterval'
])
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
self
.
tbnum
-
int
(
self
.
tbnum
/
2
))
tdSql
.
execute
(
'drop database db'
)
def
ttl_check_ctb
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
f
'create table
{
self
.
stbname
}
(ts timestamp,c0 int) tags(t0 int)'
)
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
'create table
{
self
.
stbname
}
_
{
i
}
using
{
self
.
stbname
}
tags(
{
i
}
) ttl
{
self
.
ttl_param
}
'
)
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
self
.
tbnum
)
sleep
(
self
.
updatecfgDict
[
'ttlUnit'
]
*
self
.
ttl_param
+
self
.
updatecfgDict
[
'ttlPushInterval'
])
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
0
)
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
'create table
{
self
.
stbname
}
_
{
i
}
using
{
self
.
stbname
}
tags(
{
i
}
) ttl
{
self
.
default_ttl
}
'
)
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
self
.
tbnum
)
for
i
in
range
(
int
(
self
.
tbnum
/
2
)):
tdSql
.
execute
(
f
'alter table
{
self
.
stbname
}
_
{
i
}
ttl
{
self
.
modify_ttl
}
'
)
sleep
(
self
.
updatecfgDict
[
'ttlUnit'
]
*
self
.
modify_ttl
+
self
.
updatecfgDict
[
'ttlPushInterval'
])
tdSql
.
query
(
f
'show tables'
)
tdSql
.
checkRows
(
self
.
tbnum
-
int
(
self
.
tbnum
/
2
))
tdSql
.
execute
(
'drop database db'
)
def
run
(
self
):
self
.
ttl_check_ntb
()
self
.
ttl_check_ctb
()
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/system-test/2-query/bottom.py
浏览文件 @
5fd2f9a3
...
@@ -17,100 +17,140 @@ from util.log import *
...
@@ -17,100 +17,140 @@ from util.log import *
from
util.cases
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.sql
import
*
from
util.common
import
*
from
util.common
import
*
from
util.sqlset
import
*
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
())
self
.
dbname
=
'db_test'
self
.
setsql
=
TDSetSql
()
self
.
ntbname
=
'ntb'
self
.
rowNum
=
10
self
.
rowNum
=
10
self
.
tbnum
=
20
self
.
tbnum
=
20
self
.
ts
=
1537146000000
self
.
ts
=
1537146000000
self
.
binary_str
=
'taosdata'
self
.
binary_str
=
'taosdata'
self
.
nchar_str
=
'涛思数据'
self
.
nchar_str
=
'涛思数据'
def
bottom_check_base
(
self
):
self
.
column_dict
=
{
tdSql
.
prepare
()
'ts'
:
'timestamp'
,
tdSql
.
execute
(
'''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
'col1'
:
'tinyint'
,
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))'''
)
'col2'
:
'smallint'
,
tdSql
.
execute
(
"create table stb_1 using stb tags('beijing')"
)
'col3'
:
'int'
,
column_list
=
[
'col1'
,
'col2'
,
'col3'
,
'col4'
,
'col5'
,
'col6'
,
'col7'
,
'col8'
]
'col4'
:
'bigint'
,
error_column_list
=
[
'col11'
,
'col12'
,
'col13'
]
'col5'
:
'tinyint unsigned'
,
error_param_list
=
[
0
,
101
]
'col6'
:
'smallint unsigned'
,
for
i
in
range
(
self
.
rowNum
):
'col7'
:
'int unsigned'
,
tdSql
.
execute
(
f
"insert into stb_1 values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '
{
self
.
binary_str
}
%d', '
{
self
.
nchar_str
}
%d')"
'col8'
:
'bigint unsigned'
,
%
(
self
.
ts
+
i
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
0.1
,
i
+
0.1
,
i
%
2
,
i
+
1
,
i
+
1
))
'col9'
:
'float'
,
'col10'
:
'double'
,
'col11'
:
'bool'
,
'col12'
:
'binary(20)'
,
'col13'
:
'nchar(20)'
}
for
i
in
column_list
:
self
.
param_list
=
[
1
,
100
]
tdSql
.
query
(
f
'select bottom(
{
i
}
,2) from stb_1'
)
def
insert_data
(
self
,
column_dict
,
tbname
,
row_num
):
tdSql
.
checkRows
(
2
)
sql
=
''
tdSql
.
checkEqual
(
tdSql
.
queryResult
,[(
2
,),(
1
,)])
for
k
,
v
in
column_dict
.
items
():
for
j
in
error_param_list
:
if
v
.
lower
()
==
'timestamp'
or
v
.
lower
()
==
'tinyint'
or
v
.
lower
()
==
'smallint'
or
v
.
lower
()
==
'int'
or
v
.
lower
()
==
'bigint'
or
\
tdSql
.
error
(
f
'select bottom(
{
i
}
,
{
j
}
) from stb_1'
)
v
.
lower
()
==
'tinyint unsigned'
or
v
.
lower
()
==
'smallint unsigned'
or
v
.
lower
()
==
'int unsigned'
or
v
.
lower
()
==
'bigint unsigned'
or
v
.
lower
()
==
'bool'
:
for
i
in
error_column_list
:
sql
+=
'%d,'
tdSql
.
error
(
f
'select bottom(
{
i
}
,10) from stb_1'
)
elif
v
.
lower
()
==
'float'
or
v
.
lower
()
==
'double'
:
tdSql
.
query
(
"select ts,bottom(col1, 2),ts from stb_1 group by tbname"
)
sql
+=
'%f,'
tdSql
.
checkRows
(
2
)
elif
'binary'
in
v
.
lower
():
tdSql
.
query
(
'select bottom(col2,1) from stb_1 interval(1y) order by col2'
)
sql
+=
f
'"
{
self
.
binary_str
}
%d",'
tdSql
.
checkData
(
0
,
0
,
1
)
elif
'nchar'
in
v
.
lower
():
sql
+=
f
'"
{
self
.
nchar_str
}
%d",'
tdSql
.
error
(
'select * from stb_1 where bottom(col2,1)=1'
)
insert_sql
=
f
'insert into
{
tbname
}
values(
{
sql
[:
-
1
]
}
)'
tdSql
.
execute
(
'drop database db'
)
for
i
in
range
(
row_num
):
def
bottom_check_distribute
(
self
):
insert_list
=
[]
# prepare data for vgroup 4
for
k
,
v
in
column_dict
.
items
():
dbname
=
tdCom
.
getLongName
(
5
,
"letters"
)
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
):
new_column_dict
=
{}
for
param
in
self
.
param_list
:
for
k
,
v
in
self
.
column_dict
.
items
():
if
v
.
lower
()
in
[
'tinyint'
,
'smallint'
,
'int'
,
'bigint'
,
'tinyint unsigned'
,
'smallint unsigned'
,
'int unsigned'
,
'bigint unsigned'
]:
tdSql
.
query
(
f
'select bottom(
{
k
}
,
{
param
}
) from
{
tbname
}
order by
{
k
}
'
)
if
param
>=
self
.
rowNum
:
if
tb_type
in
[
'normal_table'
,
'child_table'
]:
tdSql
.
checkRows
(
self
.
rowNum
)
values_list
=
[]
for
i
in
range
(
self
.
rowNum
):
tp
=
(
i
,)
values_list
.
append
(
tp
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
elif
tb_type
==
'stable'
:
tdSql
.
checkRows
(
param
)
elif
param
<
self
.
rowNum
:
if
tb_type
in
[
'normal_table'
,
'child_table'
]:
tdSql
.
checkRows
(
param
)
values_list
=
[]
for
i
in
range
(
param
):
tp
=
(
i
,)
values_list
.
append
(
tp
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,
values_list
)
elif
tb_type
==
'stable'
:
tdSql
.
checkRows
(
param
)
for
i
in
[
self
.
param_list
[
0
]
-
1
,
self
.
param_list
[
-
1
]
+
1
]:
tdSql
.
error
(
f
'select top(
{
k
}
,
{
i
}
) from
{
tbname
}
'
)
new_column_dict
.
update
({
k
:
v
})
elif
v
.
lower
()
==
'bool'
or
'binary'
in
v
.
lower
()
or
'nchar'
in
v
.
lower
():
tdSql
.
error
(
f
'select top(
{
k
}
,
{
param
}
) from
{
tbname
}
'
)
tdSql
.
error
(
f
'select * from
{
tbname
}
where top(
{
k
}
,
{
param
}
)=1'
)
pass
def
bottom_check_ntb
(
self
):
tdSql
.
execute
(
f
'create database if not exists
{
self
.
dbname
}
vgroups 1'
)
tdSql
.
execute
(
f
'use
{
self
.
dbname
}
'
)
tdSql
.
execute
(
self
.
setsql
.
set_create_normaltable_sql
(
self
.
ntbname
,
self
.
column_dict
))
self
.
insert_data
(
self
.
column_dict
,
self
.
ntbname
,
self
.
rowNum
)
self
.
bottom_check_data
(
self
.
ntbname
,
'normal_table'
)
tdSql
.
execute
(
f
'drop database
{
self
.
dbname
}
'
)
def
bottom_check_stb
(
self
):
stbname
=
tdCom
.
getLongName
(
5
,
"letters"
)
stbname
=
tdCom
.
getLongName
(
5
,
"letters"
)
vgroup_num
=
2
tag_dict
=
{
child_table_num
=
20
't0'
:
'int'
tdSql
.
execute
(
f
"create database if not exists
{
dbname
}
vgroups
{
vgroup_num
}
"
)
}
tdSql
.
execute
(
f
'use
{
dbname
}
'
)
tag_values
=
[
# build 20 child tables,every table insert 10 rows
f
'1'
tdSql
.
execute
(
f
'''create table
{
stbname
}
(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 tinyint unsigned, col6 smallint unsigned,
]
col7 int unsigned, col8 bigint unsigned, col9 float, col10 double, col11 bool, col12 binary(20), col13 nchar(20)) tags(loc nchar(20))'''
)
tdSql
.
execute
(
f
"create database if not exists
{
self
.
dbname
}
vgroups 2"
)
for
i
in
range
(
child_table_num
):
tdSql
.
execute
(
f
'use
{
self
.
dbname
}
'
)
tdSql
.
execute
(
f
"create table
{
stbname
}
_
{
i
}
using
{
stbname
}
tags('beijing')"
)
tdSql
.
execute
(
self
.
setsql
.
set_create_stable_sql
(
stbname
,
self
.
column_dict
,
tag_dict
))
tdSql
.
execute
(
f
"insert into
{
stbname
}
_
{
i
}
(ts) values(%d)"
%
(
self
.
ts
-
1
-
i
))
for
i
in
range
(
self
.
tbnum
):
column_list
=
[
'col1'
,
'col2'
,
'col3'
,
'col4'
,
'col5'
,
'col6'
,
'col7'
,
'col8'
]
tdSql
.
execute
(
f
"create table
{
stbname
}
_
{
i
}
using
{
stbname
}
tags(
{
tag_values
[
0
]
}
)"
)
error_column_list
=
[
'col11'
,
'col12'
,
'col13'
]
tdSql
.
execute
(
self
.
insert_data
(
self
.
column_dict
,
f
'
{
stbname
}
_
{
i
}
'
,
self
.
rowNum
))
error_param_list
=
[
0
,
101
]
for
i
in
[
f
'
{
stbname
}
'
,
f
'
{
dbname
}
.
{
stbname
}
'
]:
for
j
in
column_list
:
tdSql
.
query
(
f
"select bottom(
{
j
}
,1) from
{
i
}
"
)
tdSql
.
checkRows
(
0
)
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
)):
vgroup_list
.
append
(
tdSql
.
queryResult
[
i
][
6
])
vgroup_list
.
append
(
tdSql
.
queryResult
[
i
][
6
])
vgroup_list_set
=
set
(
vgroup_list
)
vgroup_list_set
=
set
(
vgroup_list
)
for
i
in
vgroup_list_set
:
for
i
in
vgroup_list_set
:
vgroups_num
=
vgroup_list
.
count
(
i
)
vgroups_num
=
vgroup_list
.
count
(
i
)
if
vgroups_num
>=
2
:
if
vgroups_num
>=
2
:
tdLog
.
info
(
f
'This scene with
{
vgroups_num
}
vgroups is ok!'
)
tdLog
.
info
(
f
'This scene with
{
vgroups_num
}
vgroups is ok!'
)
continue
else
:
else
:
tdLog
.
exit
(
f
'This scene does not meet the requirements with
{
vgroups_num
}
vgroup!
\n
'
)
tdLog
.
exit
(
for
i
in
range
(
self
.
rowNum
):
'This scene does not meet the requirements with {vgroups_num} vgroup!
\n
'
)
for
j
in
range
(
child_table_num
):
for
i
in
range
(
self
.
tbnum
):
tdSql
.
execute
(
f
"insert into
{
stbname
}
_
{
j
}
values(%d, %d, %d, %d, %d, %d, %d, %d, %d, %f, %f, %d, '
{
self
.
binary_str
}
%d', '
{
self
.
nchar_str
}
%d')"
self
.
bottom_check_data
(
f
'
{
stbname
}
_
{
i
}
'
,
'child_table'
)
%
(
self
.
ts
+
i
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
1
,
i
+
0.1
,
i
+
0.1
,
i
%
2
,
i
+
1
,
i
+
1
))
self
.
bottom_check_data
(
f
'
{
stbname
}
'
,
'stable'
)
for
i
in
column_list
:
tdSql
.
execute
(
f
'drop database
{
self
.
dbname
}
'
)
tdSql
.
query
(
f
'select bottom(
{
i
}
,2) from
{
stbname
}
'
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
,[(
1
,),(
1
,)])
for
j
in
error_param_list
:
tdSql
.
error
(
f
'select bottom(
{
i
}
,
{
j
}
) from
{
stbname
}
'
)
for
i
in
error_column_list
:
tdSql
.
error
(
f
'select bottom(
{
i
}
,10) from
{
stbname
}
'
)
tdSql
.
execute
(
f
'drop database
{
dbname
}
'
)
def
run
(
self
):
def
run
(
self
):
self
.
bottom_check_ntb
()
self
.
bottom_check_base
()
self
.
bottom_check_stb
()
self
.
bottom_check_distribute
()
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/fulltest.sh
浏览文件 @
5fd2f9a3
...
@@ -23,6 +23,7 @@ python3 ./test.py -f 1-insert/alter_stable.py
...
@@ -23,6 +23,7 @@ python3 ./test.py -f 1-insert/alter_stable.py
python3 ./test.py
-f
1-insert/alter_table.py
python3 ./test.py
-f
1-insert/alter_table.py
python3 ./test.py
-f
1-insert/insertWithMoreVgroup.py
python3 ./test.py
-f
1-insert/insertWithMoreVgroup.py
python3 ./test.py
-f
1-insert/table_comment.py
python3 ./test.py
-f
1-insert/table_comment.py
python3 ./test.py
-f
1-insert/table_param_ttl.py
python3 ./test.py
-f
2-query/between.py
python3 ./test.py
-f
2-query/between.py
python3 ./test.py
-f
2-query/distinct.py
python3 ./test.py
-f
2-query/distinct.py
python3 ./test.py
-f
2-query/varchar.py
python3 ./test.py
-f
2-query/varchar.py
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录