Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
708216e6
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
708216e6
编写于
8月 12, 2021
作者:
B
bryanchang0603
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-5722]test testing one column distinct with subtable
上级
23e9739c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
281 addition
and
0 deletion
+281
-0
tests/pytest/fulltest.sh
tests/pytest/fulltest.sh
+1
-0
tests/pytest/query/distinctOneColTb.py
tests/pytest/query/distinctOneColTb.py
+280
-0
未找到文件。
tests/pytest/fulltest.sh
浏览文件 @
708216e6
...
...
@@ -212,6 +212,7 @@ python3 test.py -f tools/taosdemoAllTest/taosdemoTestInsertWithJson.py
python3 test.py
-f
tools/taosdemoAllTest/taosdemoTestQueryWithJson.py
#query
python3 test.py
-f
query/distinctOneColTb.py
python3 ./test.py
-f
query/filter.py
python3 ./test.py
-f
query/filterCombo.py
python3 ./test.py
-f
query/queryNormal.py
...
...
tests/pytest/query/distinctOneColTb.py
0 → 100644
浏览文件 @
708216e6
###################################################################
# 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 -*-
import
sys
import
taos
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
())
def
tb_all_query
(
self
,
num
,
sql
=
"tb_all"
,
where
=
""
):
tdSql
.
query
(
f
"select distinct(ts2) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cint) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cbigint) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(csmallint) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(ctinyint) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cfloat) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cdouble) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cbool) from
{
sql
}
{
where
}
"
)
if
num
<
2
:
tdSql
.
checkRows
(
num
)
else
:
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
f
"select distinct(cbinary) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cnchar) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(ts2) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cint) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cbigint) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(csmallint) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(ctinyint) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cfloat) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cdouble) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cbool) as a from
{
sql
}
{
where
}
"
)
if
num
<
2
:
tdSql
.
checkRows
(
num
)
else
:
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
f
"select distinct(cbinary) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
tdSql
.
query
(
f
"select distinct(cnchar) as a from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
def
tb_all_query_sub
(
self
,
num
,
sql
=
"tb_all"
,
where
=
""
,
colName
=
"c1"
):
tdSql
.
query
(
f
"select distinct(
{
colName
}
) from
{
sql
}
{
where
}
"
)
tdSql
.
checkRows
(
num
)
def
errorCheck
(
self
,
sql
=
'tb_all'
):
tdSql
.
error
(
f
"select distinct() from
{
sql
}
"
)
tdSql
.
error
(
f
"select distinct from
{
sql
}
"
)
tdSql
.
error
(
f
"distinct ts2 from
{
sql
}
"
)
tdSql
.
error
(
f
"distinct(ts2) from
{
sql
}
"
)
tdSql
.
error
(
f
"distinct c1 from"
)
tdSql
.
error
(
f
"distinct(c1) from"
)
tdSql
.
error
(
f
"select distinct(ts2), avg(cint) from
{
sql
}
"
)
tdSql
.
error
(
f
"select distinct ts2, avg(cint) from
{
sql
}
"
)
## the following line is going to core dump
#tdSql.error(f"select avg(cint), distinct(ts2) from {sql}")
#tdSql.error(f"select avg(cint), distinct ts2 from {sql}")
tdSql
.
error
(
f
"select distinct(ts2), cint from
{
sql
}
"
)
tdSql
.
error
(
f
"select distinct ts2, cint from
{
sql
}
"
)
tdSql
.
error
(
f
"select distinct(ts2) from
{
sql
}
group by cint"
)
tdSql
.
error
(
f
"select distinct ts2 from
{
sql
}
group by cint"
)
tdSql
.
error
(
f
"select distinct(ts2) from
{
sql
}
intervasl(1s)"
)
tdSql
.
error
(
f
"select distinct ts2 from
{
sql
}
interval(1s)"
)
tdSql
.
error
(
f
"select distinct(ts2) from
{
sql
}
slimit 1 soffset 1"
)
tdSql
.
error
(
f
"select distinct ts2 from
{
sql
}
slimit 1 soffset 1"
)
tdSql
.
error
(
f
"select distinct(ts2) from
{
sql
}
slimit 1"
)
tdSql
.
error
(
f
"select distinct ts2 from
{
sql
}
slimit 1"
)
##order by is not supported but not being prohibited
#tdSql.error(f"select distinct(ts2) from {sql} order by desc")
#tdSql.error(f"select distinct ts2 from {sql} order by desc")
#tdSql.error(f"select distinct(ts2) from {sql} order by asc")
#tdSql.error(f"select distinct ts2 from {sql} order by asc")
##distinct should not use on first ts, but it can be applied
#tdSql.error(f"select distinct(ts) from {sql}")
#tdSql.error(f"select distinct ts from {sql}")
##distinct should not be used in inner query, but error did not occur
# tdSql.error(f"select distinct(ts2) from (select distinct ts2 from {sql})")
# tdSql.error(f"select distinct ts2 from (select distinct ts2 from {sql})")
def
query_all_tb
(
self
,
whereNum
=
0
,
inNum
=
0
,
maxNum
=
0
,
tbName
=
"tb_all"
):
self
.
tb_all_query
(
maxNum
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where ts2 = '2021-08-06 18:01:50.550'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cint = 1073741820"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbigint = 1125899906842620"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where csmallint = 150"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where ctinyint = 10"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cfloat = 0.10"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cdouble = 0.130"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbool = true"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbinary = 'adc1'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cnchar = '双精度浮'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where ts2 in ( '2021-08-06 18:01:50.550' , '2021-08-06 18:01:50.551' )"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cint in (1073741820,1073741821)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbigint in (1125899906842620,1125899906842621)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where csmallint in (150,151)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where ctinyint in (10,11)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cfloat in (0.10,0.11)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cdouble in (0.130,0.131)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbinary in ('adc0','adc1')"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cnchar in ('双','双精度浮')"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbool in (0, 1)"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cnchar like '双__浮'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cnchar like '双%'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cbinary like 'adc_'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cbinary like 'a%'"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"limit 1"
,
sql
=
tbName
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"limit 1 offset 1"
,
sql
=
tbName
)
#subquery
self
.
tb_all_query
(
num
=
maxNum
,
sql
=
f
'(select * from
{
tbName
}
)'
)
#subquery with where in outer query
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where ts2 = '2021-08-06 18:01:50.550'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cint = 1073741820"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbigint = 1125899906842620"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where csmallint = 150"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where ctinyint = 10"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cfloat = 0.10"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cdouble = 0.130"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbool = true"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cbinary = 'adc1'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cnchar = '双精度浮'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where ts2 in ( '2021-08-06 18:01:50.550' , '2021-08-06 18:01:50.551' )"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cint in (1073741820,1073741821)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbigint in (1125899906842620,1125899906842621)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where csmallint in (150,151)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where ctinyint in (10,11)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cfloat in (0.10,0.11)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cdouble in (0.130,0.131)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbinary in ('adc0','adc1')"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cnchar in ('双','双精度浮')"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
inNum
,
where
=
"where cbool in (0, 1)"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"where cnchar like '双__浮'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cnchar like '双%'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cbinary like 'adc_'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
maxNum
,
where
=
"where cbinary like 'a%'"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"limit 1"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
self
.
tb_all_query
(
num
=
whereNum
,
where
=
"limit 1 offset 1"
,
sql
=
f
'(select * from
{
tbName
}
)'
)
#table query with inner query has error
tdSql
.
error
(
'select distinct ts2 from (select )'
)
#table query with error option
self
.
errorCheck
()
def
run
(
self
):
tdSql
.
prepare
()
tdLog
.
notice
(
"==============phase1 distinct(col1) with no values=========="
)
tdSql
.
execute
(
"create stable if not exists stb_all (ts timestamp, ts2 timestamp, cint int, cbigint bigint, csmallint smallint, ctinyint tinyint,cfloat float, cdouble double, cbool bool, cbinary binary(32), cnchar nchar(32)) tags(tint int)"
)
tdSql
.
execute
(
"create table if not exists tb_all using stb_all tags(1)"
)
self
.
query_all_tb
()
tdLog
.
notice
(
"==============phase1 finished ==========
\n\n\n
"
)
tdLog
.
notice
(
"==============phase2 distinct(col1) all values are null=========="
)
tdSql
.
execute
(
"insert into tb_all values(now,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)"
)
tdSql
.
execute
(
"insert into tb_all values(now,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)"
)
tdSql
.
execute
(
"insert into tb_all values(now,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)"
)
# normal query
self
.
query_all_tb
()
tdLog
.
notice
(
"==============phase2 finished ==========
\n\n\n
"
)
tdLog
.
notice
(
"==============phase3 distinct with distinct values ==========
\n\n\n
"
)
tdSql
.
execute
(
"insert into tb_all values(now+1s,'2021-08-06 18:01:50.550',1073741820,1125899906842620,150,10,0.10,0.130, true,'adc0','双')"
)
tdSql
.
execute
(
"insert into tb_all values(now+2s,'2021-08-06 18:01:50.551',1073741821,1125899906842621,151,11,0.11,0.131,false,'adc1','双精度浮')"
)
tdSql
.
execute
(
"insert into tb_all values(now+3s,'2021-08-06 18:01:50.552',1073741822,1125899906842622,152,12,0.12,0.132,NULL,'adc2','双精度')"
)
tdSql
.
execute
(
"insert into tb_all values(now+4s,'2021-08-06 18:01:50.553',1073741823,1125899906842623,153,13,0.13,0.133,NULL,'adc3','双精')"
)
tdSql
.
execute
(
"insert into tb_all values(now+5s,'2021-08-06 18:01:50.554',1073741824,1125899906842624,154,14,0.14,0.134,NULL,'adc4','双精度浮点型')"
)
# normal query
self
.
query_all_tb
(
maxNum
=
5
,
inNum
=
2
,
whereNum
=
1
)
tdLog
.
notice
(
"==============phase3 finishes ==========
\n\n\n
"
)
tdLog
.
notice
(
"==============phase4 distinct with some values the same values ==========
\n\n\n
"
)
tdSql
.
execute
(
"insert into tb_all values(now+10s,'2021-08-06 18:01:50.550',1073741820,1125899906842620,150,10,0.10,0.130, true,'adc0','双')"
)
tdSql
.
execute
(
"insert into tb_all values(now+20s,'2021-08-06 18:01:50.551',1073741821,1125899906842621,151,11,0.11,0.131,false,'adc1','双精度浮')"
)
tdSql
.
execute
(
"insert into tb_all values(now+30s,'2021-08-06 18:01:50.552',1073741822,1125899906842622,152,12,0.12,0.132,NULL,'adc2','双精度')"
)
tdSql
.
execute
(
"insert into tb_all values(now+40s,'2021-08-06 18:01:50.553',1073741823,1125899906842623,153,13,0.13,0.133,NULL,'adc3','双精')"
)
tdSql
.
execute
(
"insert into tb_all values(now+50s,'2021-08-06 18:01:50.554',1073741824,1125899906842624,154,14,0.14,0.134,NULL,'adc4','双精度浮点型')"
)
# normal query
self
.
query_all_tb
(
maxNum
=
5
,
inNum
=
2
,
whereNum
=
1
)
tdLog
.
notice
(
"==============phase4 finishes ==========
\n\n\n
"
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录