mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
169 lines
7.3 KiB
Python
169 lines
7.3 KiB
Python
from new_test_framework.utils import tdLog, tdSql, sc, clusterComCheck
|
|
|
|
|
|
class TestSession:
|
|
|
|
def setup_class(cls):
|
|
tdLog.debug(f"start to execute {__file__}")
|
|
|
|
def test_session(self):
|
|
"""Session: basic test
|
|
|
|
1. Test the basic usage of session window
|
|
2. Test some illegal statements
|
|
|
|
Catalog:
|
|
- Timeseries:SessionWindow
|
|
|
|
Since: v3.0.0.0
|
|
|
|
Labels: common,ci
|
|
|
|
Jira: None
|
|
|
|
History:
|
|
- 2025-5-8 Simon Guan Migrated from tsim/query/session.sim
|
|
|
|
"""
|
|
|
|
vgroups = 4
|
|
dbNamme = "d0"
|
|
|
|
tdLog.info(f"====> create database {dbNamme} vgroups {vgroups}")
|
|
tdSql.execute(f"create database {dbNamme} vgroups {vgroups}")
|
|
tdSql.query(f"select * from information_schema.ins_databases")
|
|
|
|
tdSql.execute(f"use {dbNamme}")
|
|
|
|
tdLog.info(f"=============== create super table, child table and insert data")
|
|
tdSql.execute(
|
|
f"create table if not exists st (ts timestamp, tagtype int) tags(dev nchar(50), tag2 binary(16))"
|
|
)
|
|
tdSql.execute(
|
|
f'create table if not exists dev_001 using st tags("dev_01", "tag_01")'
|
|
)
|
|
tdSql.execute(
|
|
f'create table if not exists dev_002 using st tags("dev_02", "tag_02")'
|
|
)
|
|
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:00.000', 1)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:00.005', 2)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:00.011', 3)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:01.011', 4)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:01.611', 5)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:00:02.612', 6)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:01:02.612', 7)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:02:02.612', 8)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 10:03:02.613', 9)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 11:00:00.000', 10)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 12:00:00.000', 11)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-13 13:00:00.001', 12)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-14 13:00:00.001', 13)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-15 14:00:00.000', 14)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-20 10:00:00.000', 15)")
|
|
tdSql.execute(f"INSERT INTO dev_001 VALUES('2020-05-27 10:00:00.001', 16)")
|
|
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.000', 1)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.005', 2)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.009', 3)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.0021', 4)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.031', 5)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.036', 6)")
|
|
tdSql.execute(f"INSERT INTO dev_002 VALUES('2020-05-13 10:00:00.51', 7)")
|
|
|
|
# vnode does not return the precision of the table
|
|
tdSql.execute(f"create database d1 precision 'us'")
|
|
tdSql.execute(f"use d1")
|
|
tdSql.execute(f"create table dev_001 (ts timestamp ,i timestamp ,j int)")
|
|
tdSql.execute(
|
|
f"insert into dev_001 values(1623046993681000,now,1)(1623046993681001,now+1s,2)(1623046993681002,now+2s,3)(1623046993681004,now+5s,4)"
|
|
)
|
|
tdSql.execute(f"create table secondts(ts timestamp,t2 timestamp,i int)")
|
|
tdSql.execute(
|
|
f"insert into secondts values(1623046993681000,now,1)(1623046993681001,now+1s,2)(1623046993681002,now+2s,3)(1623046993681004,now+5s,4)"
|
|
)
|
|
|
|
self.query()
|
|
tdLog.info(f"=============== stop and restart taosd")
|
|
sc.dnodeStop(1)
|
|
sc.dnodeStart(1)
|
|
clusterComCheck.checkDnodes(1)
|
|
|
|
self.query()
|
|
|
|
def query(self):
|
|
|
|
dbNamme = "d0"
|
|
tdSql.execute(f"use {dbNamme}")
|
|
|
|
# session(ts,5a)
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,5a)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,5a)")
|
|
tdLog.info(f"====> rows: {tdSql.getRows()})")
|
|
|
|
tdSql.checkRows(15)
|
|
tdSql.checkData(0, 1, 2)
|
|
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1s)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1s)")
|
|
tdSql.checkRows(12)
|
|
tdSql.checkData(0, 1, 5)
|
|
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1000a)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1000a)")
|
|
tdSql.checkRows(12)
|
|
tdSql.checkData(0, 1, 5)
|
|
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1m)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1m)")
|
|
tdSql.checkRows(9)
|
|
tdSql.checkData(0, 1, 8)
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1h)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1h)")
|
|
tdSql.checkRows(6)
|
|
tdSql.checkData(0, 1, 11)
|
|
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1d)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1d)")
|
|
tdSql.checkRows(4)
|
|
tdSql.checkData(0, 1, 13)
|
|
|
|
tdLog.info(f"====> select count(*) from dev_001 session(ts,1w)")
|
|
tdSql.query(f"select _wstart, count(*) from dev_001 session(ts,1w)")
|
|
tdSql.checkRows(2)
|
|
tdSql.checkData(0, 1, 15)
|
|
|
|
tdLog.info(
|
|
f"================> syntax error check not active ================> reactive"
|
|
)
|
|
tdSql.error(f"select * from dev_001 session(ts,1w)")
|
|
tdLog.info(
|
|
f"disable this temporarily, session can not be directly applied to super table."
|
|
)
|
|
# sql_error select count(*) from st session(ts,1w)
|
|
tdSql.error(f"select count(*) from dev_001 group by tagtype session(ts,1w)")
|
|
tdSql.error(f"sql select count(*) from dev_001 session(ts,1n)")
|
|
tdSql.error(f"sql select count(*) from dev_001 session(ts,1y)")
|
|
tdSql.error(f"sql select count(*) from dev_001 session(ts,0s)")
|
|
tdSql.error(f"select count(*) from dev_001 session(i,1y)")
|
|
tdSql.error(
|
|
f"select count(*) from dev_001 session(ts,1d) where ts <'2020-05-20 0:0:0'"
|
|
)
|
|
|
|
# print ====> select count(*) from dev_001 session(ts,1u)
|
|
# sql select _wstart, count(*) from dev_001 session(ts,1u)
|
|
# print rows: $rows
|
|
# print $tdSql.getData(0,0) $tdSql.getData(0,1) $tdSql.getData(0,2) $tdSql.getData(0,3)
|
|
# print $tdSql.getData(1,0) $tdSql.getData(1,1) $tdSql.getData(1,2) $tdSql.getData(1,3)
|
|
# print $tdSql.getData(2,0) $tdSql.getData(2,1) $tdSql.getData(2,2) $tdSql.getData(2,3)
|
|
# print $tdSql.getData(3,0) $tdSql.getData(3,1) $tdSql.getData(3,2) $tdSql.getData(3,3)
|
|
# if $rows != 4 then
|
|
# print expect 2, actual: $rows
|
|
# return -1
|
|
# endi
|
|
# if $tdSql.getData(0,1) != 1 then
|
|
# return -1
|
|
# endi
|
|
|
|
tdSql.error(f"select count(*) from dev_001 session(i,1s)")
|
|
tdSql.error(f"select count(*) from secondts session(t2,2s)")
|