diff --git a/tests/pytest/query/queryStateWindow.py b/tests/pytest/query/queryStateWindow.py index 251dbef65841cc17b31046320a7e966426c5eeb1..19e30bd085f1a3dacdfa634a3b178f36cf3e3ab7 100644 --- a/tests/pytest/query/queryStateWindow.py +++ b/tests/pytest/query/queryStateWindow.py @@ -19,7 +19,8 @@ from util.sql import * import numpy as np -class TDTestCase: +class TDTestCase: + def init(self, conn, logSql): tdLog.debug("start to execute %s" % __file__) tdSql.init(conn.cursor()) @@ -42,8 +43,12 @@ class TDTestCase: tdSql.execute( "INSERT INTO dev_001 VALUES('2020-05-13 10:00:00.000', 1, '2020-05-13 10:00:00.000', 10, 3.1, 3.14, 'test', -10, -126, true, '测试', 15, 10, 65534, 254, 1)('2020-05-13 10:00:01.000', 1, '2020-05-13 10:00:01.000', 10, 3.1, 3.14, 'test', -10, -126, true, '测试', 15, 10, 65534, 253, 5)('2020-05-13 10:00:02.000', 10, '2020-05-13 10:00:00.000', 11, 3.1, 3.14, 'test', 10, -127, false, '测试', 15, 10, 65534, 253, 10)('2020-05-13 10:00:03.000', 1, '2020-05-13 10:00:00.000', 11, 3.1, 3.14, 'test', -10, -126, true, '测试', 14, 12, 65532, 254, 15)") - for i in range(self.rowNum): - tdSql.execute("insert into dev_002 (ts,t1) values(%d, %d,)" % (self.ts + i, i + 1)) + + for i in range(10): + sql = "insert into dev_002 (ts,t1) values " + for j in range(int(self.rowNum / 1000)): + sql += "(%d, %d,)" % (self.ts + i * 1000 + j, i * 1000 + j + 1) + tdSql.execute(sql) tdSql.query("select count(ts) from dev_001 state_window(t1)") tdSql.checkRows(3) @@ -70,7 +75,7 @@ class TDTestCase: tdSql.checkRows(3) tdSql.checkData(1, 0, 2) tdSql.query("select count(ts) from dev_002 state_window(t1)") - tdSql.checkRows(100000) + tdSql.checkRows(1000) # with all aggregate function tdSql.query("select count(*),sum(t1),avg(t1),twa(t1),stddev(t15),leastsquares(t15,1,1),first(t15),last(t15),spread(t15),percentile(t15,90),t9 from dev_001 state_window(t9);") @@ -100,7 +105,43 @@ class TDTestCase: tdSql.error("select count(*) from dev_001 state_window(t6)") tdSql.error("select count(*) from dev_001 state_window(t10)") tdSql.error("select count(*) from dev_001 state_window(tag2)") - + + # TD-15164, TD-15226, TD-15227, TD-15186 + tdSql.execute("drop database if exists dd") + tdSql.execute("create database dd keep 36500") + tdSql.execute("use dd") + tdSql.execute("create table table_1(ts timestamp , q_int int,q_bool bool)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000000000, 1,0)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000010000, 2,0)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000020000, 3,0)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000100000, 3,0)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000110000, 2,0)") + tdSql.execute("insert into table_1 (ts , q_int,q_bool) values(1630000120000, 1,0)") + + tdSql.query("select STDDEV(q_int) from table_1 STATE_WINDOW(q_bool) order by ts ") + tdSql.checkData(0, 0, 0.8164965) + + tdSql.query("select STDDEV(q_int) from table_1 STATE_WINDOW(q_bool) order by ts desc") + tdSql.checkData(0, 0, 0.8164965) + + tdSql.query("select MAX(q_int) from table_1 STATE_WINDOW(q_bool) order by ts;") + tdSql.checkData(0, 0, 3) + + tdSql.query("select MAX(q_int) from table_1 STATE_WINDOW(q_bool) order by ts desc;") + tdSql.checkData(0, 0, 3) + + tdSql.query("select MAX(q_int) from table_1 where q_bool in ( true , false) STATE_WINDOW(q_bool) order by ts desc") + tdSql.checkData(0, 0, 3) + + tdSql.query("select TOP(q_int,3) from table_1 STATE_WINDOW(q_bool) order by ts") + tdSql.checkData(0, 1, 2) + tdSql.checkData(1, 1, 3) + tdSql.checkData(2, 1, 3) + + tdSql.query("select TOP(q_int,3) from table_1 STATE_WINDOW(q_bool) order by ts desc") + tdSql.checkData(0, 1, 3) + tdSql.checkData(1, 1, 3) + tdSql.checkData(2, 1, 2) def stop(self): tdSql.close()