From 9c219df20607fe33aafee87c99884b032b08de90 Mon Sep 17 00:00:00 2001 From: Bomin Zhang Date: Wed, 16 Sep 2020 16:39:32 +0800 Subject: [PATCH] td-1245: add test cases for interval offset --- tests/pytest/query/intervalOffset.py | 225 +++++++++++++++++++++++++++ tests/pytest/query/natualInterval.py | 8 +- 2 files changed, 229 insertions(+), 4 deletions(-) create mode 100644 tests/pytest/query/intervalOffset.py diff --git a/tests/pytest/query/intervalOffset.py b/tests/pytest/query/intervalOffset.py new file mode 100644 index 0000000000..6d4dd720ee --- /dev/null +++ b/tests/pytest/query/intervalOffset.py @@ -0,0 +1,225 @@ +################################################################### +# Copyright (c) 2020 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 general(self): + tdSql.execute("create table meters(ts timestamp, s int) tags(id int)") + tdSql.execute("create table t0 using meters tags(0)") + tdSql.execute("create table t1 using meters tags(1)") + tdSql.execute("create table t2 using meters tags(2)") + tdSql.execute("create table t3 using meters tags(3)") + tdSql.execute("create table t4 using meters tags(4)") + + tdSql.execute("insert into t0 values('2019-01-01 00:00:00', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:00:01', 1)") + tdSql.execute("insert into t2 values('2019-01-01 00:01:00', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:01:01', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:01:02', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:01:03', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:01:30', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:01:50', 1)") + tdSql.execute("insert into t2 values('2019-01-01 00:02:00', 1)") + tdSql.execute("insert into t3 values('2019-01-01 00:02:02', 1)") + tdSql.execute("insert into t3 values('2019-01-01 00:02:59', 1)") + tdSql.execute("insert into t4 values('2019-01-01 00:02:59', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:03:10', 1)") + tdSql.execute("insert into t2 values('2019-01-01 00:08:00', 1)") + tdSql.execute("insert into t1 values('2019-01-01 00:08:00', 1)") + + tdSql.query("select count(*) from meters interval(1m, 1s)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 2) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 1) + tdSql.checkData(5, 1, 2) + + tdSql.query("select count(*) from meters interval(1m, 2s)") + tdSql.checkData(0, 1, 2) + tdSql.checkData(1, 1, 2) + tdSql.checkData(2, 1, 5) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 1) + tdSql.checkData(5, 1, 2) + + tdSql.query("select count(*) from meters interval(90s, 1500a)") + tdSql.checkData(0, 1, 2) + tdSql.checkData(1, 1, 5) + tdSql.checkData(2, 1, 5) + tdSql.checkData(3, 1, 1) + tdSql.checkData(4, 1, 2) + + def singleTable(self): + tdSql.execute("create table car(ts timestamp, s int)") + tdSql.execute("insert into car values('2019-01-01 00:00:00', 1)") + tdSql.execute("insert into car values('2019-05-13 12:00:00', 1)") + tdSql.execute("insert into car values('2019-12-31 23:59:59', 1)") + tdSql.execute("insert into car values('2020-01-01 12:00:00', 1)") + tdSql.execute("insert into car values('2020-01-02 12:00:00', 1)") + tdSql.execute("insert into car values('2020-01-03 12:00:00', 1)") + tdSql.execute("insert into car values('2020-01-04 12:00:00', 1)") + tdSql.execute("insert into car values('2020-01-05 12:00:00', 1)") + tdSql.execute("insert into car values('2020-01-31 12:00:00', 1)") + tdSql.execute("insert into car values('2020-02-01 12:00:00', 1)") + tdSql.execute("insert into car values('2020-02-02 12:00:00', 1)") + tdSql.execute("insert into car values('2020-02-29 12:00:00', 1)") + tdSql.execute("insert into car values('2020-03-01 12:00:00', 1)") + tdSql.execute("insert into car values('2020-03-02 12:00:00', 1)") + tdSql.execute("insert into car values('2020-03-15 12:00:00', 1)") + tdSql.execute("insert into car values('2020-03-31 12:00:00', 1)") + tdSql.execute("insert into car values('2020-05-01 12:00:00', 1)") + + tdSql.query("select count(*) from car interval(1n, 10d)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 1) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 3) + tdSql.checkData(5, 1, 2) + tdSql.checkData(6, 1, 1) + + tdSql.query("select count(*) from car interval(1n, 10d) order by ts desc") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 2) + tdSql.checkData(2, 1, 3) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 6) + tdSql.checkData(5, 1, 1) + tdSql.checkData(6, 1, 1) + + tdSql.query("select count(*) from car interval(2n, 5d)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 1) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 6) + tdSql.checkData(4, 1, 3) + + tdSql.query("select count(*) from car interval(2n) order by ts desc") + tdSql.checkData(0, 1, 3) + tdSql.checkData(1, 1, 6) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 1) + tdSql.checkData(4, 1, 1) + + tdSql.query("select count(*) from car interval(1y, 1n)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 8) + tdSql.checkData(2, 1, 8) + + tdSql.query("select count(*) from car interval(1y, 2n)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 11) + tdSql.checkData(2, 1, 5) + + tdSql.query("select count(*) from car where ts > '2019-05-14 00:00:00' interval(1y, 5d)") + tdSql.checkData(0, 1, 6) + tdSql.checkData(1, 1, 9) + + def superTable(self): + tdSql.execute("create table cars(ts timestamp, s int) tags(id int)") + tdSql.execute("create table car0 using cars tags(0)") + tdSql.execute("create table car1 using cars tags(1)") + tdSql.execute("create table car2 using cars tags(2)") + tdSql.execute("create table car3 using cars tags(3)") + tdSql.execute("create table car4 using cars tags(4)") + + tdSql.execute("insert into car0 values('2019-01-01 00:00:00', 1)") + tdSql.execute("insert into car1 values('2019-05-13 12:00:00', 1)") + tdSql.execute("insert into car2 values('2019-12-31 23:59:59', 1)") + tdSql.execute("insert into car1 values('2020-01-01 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-01-02 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-01-03 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-01-04 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-01-05 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-01-31 12:00:00', 1)") + tdSql.execute("insert into car1 values('2020-02-01 12:00:00', 1)") + tdSql.execute("insert into car2 values('2020-02-02 12:00:00', 1)") + tdSql.execute("insert into car2 values('2020-02-29 12:00:00', 1)") + tdSql.execute("insert into car3 values('2020-03-01 12:00:00', 1)") + tdSql.execute("insert into car3 values('2020-03-02 12:00:00', 1)") + tdSql.execute("insert into car3 values('2020-03-15 12:00:00', 1)") + tdSql.execute("insert into car4 values('2020-03-31 12:00:00', 1)") + tdSql.execute("insert into car3 values('2020-05-01 12:00:00', 1)") + + tdSql.query("select count(*) from cars interval(1n, 10d)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 1) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 3) + tdSql.checkData(5, 1, 2) + tdSql.checkData(6, 1, 1) + + tdSql.query("select count(*) from cars interval(1n, 10d) order by ts desc") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 2) + tdSql.checkData(2, 1, 3) + tdSql.checkData(3, 1, 3) + tdSql.checkData(4, 1, 6) + tdSql.checkData(5, 1, 1) + tdSql.checkData(6, 1, 1) + + tdSql.query("select count(*) from cars interval(2n, 5d)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 1) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 6) + tdSql.checkData(4, 1, 3) + + tdSql.query("select count(*) from cars interval(2n) order by ts desc") + tdSql.checkData(0, 1, 3) + tdSql.checkData(1, 1, 6) + tdSql.checkData(2, 1, 6) + tdSql.checkData(3, 1, 1) + tdSql.checkData(4, 1, 1) + + tdSql.query("select count(*) from cars interval(1y, 1n)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 8) + tdSql.checkData(2, 1, 8) + + tdSql.query("select count(*) from cars interval(1y, 2n)") + tdSql.checkData(0, 1, 1) + tdSql.checkData(1, 1, 11) + tdSql.checkData(2, 1, 5) + + tdSql.query("select count(*) from cars where ts > '2019-05-14 00:00:00' interval(1y, 5d)") + tdSql.checkData(0, 1, 6) + tdSql.checkData(1, 1, 9) + + def run(self): + tdSql.prepare() + self.general() + self.singleTable() + self.superTable() + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) + diff --git a/tests/pytest/query/natualInterval.py b/tests/pytest/query/natualInterval.py index 1ed91e1c68..434cd392bb 100644 --- a/tests/pytest/query/natualInterval.py +++ b/tests/pytest/query/natualInterval.py @@ -89,10 +89,10 @@ class TDTestCase: def superTable(self): tdSql.execute("create table cars(ts timestamp, s int) tags(id int)") tdSql.execute("create table car0 using cars tags(0)") - tdSql.execute("create table car1 using cars tags(0)") - tdSql.execute("create table car2 using cars tags(0)") - tdSql.execute("create table car3 using cars tags(0)") - tdSql.execute("create table car4 using cars tags(0)") + tdSql.execute("create table car1 using cars tags(1)") + tdSql.execute("create table car2 using cars tags(2)") + tdSql.execute("create table car3 using cars tags(3)") + tdSql.execute("create table car4 using cars tags(4)") tdSql.execute("insert into car0 values('2019-01-01 00:00:00', 1)") tdSql.execute("insert into car1 values('2019-05-13 12:00:00', 1)") -- GitLab