TDengine/tests/system-test/2-query/diff.py

151 lines
6.4 KiB
Python
Raw Normal View History

2022-05-09 08:50:59 +00:00
from wsgiref.headers import tspecials
2022-05-07 07:15:36 +00:00
from util.log import *
from util.cases import *
from util.sql import *
import numpy as np
class TDTestCase:
def init(self, conn, logSql, replicaVar=1):
self.replicaVar = int(replicaVar)
2022-05-07 07:15:36 +00:00
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor())
self.rowNum = 10
self.ts = 1537146000000
self.perfix = 'dev'
self.tables = 10
def run(self):
tdSql.prepare()
2022-07-21 09:05:31 +00:00
dbname = "db"
2022-05-26 03:30:38 +00:00
tdSql.execute(
2022-07-21 09:05:31 +00:00
f"create table {dbname}.ntb(ts timestamp,c1 int,c2 double,c3 float)")
2022-05-26 03:30:38 +00:00
tdSql.execute(
2022-07-21 09:05:31 +00:00
f"insert into {dbname}.ntb values(now,1,1.0,10.5)(now+1s,10,-100.0,5.1)(now+10s,-1,15.1,5.0)")
2022-05-09 08:50:59 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c1,0) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, 9)
tdSql.checkData(1, 0, -11)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c1,1) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, 9)
tdSql.checkData(1, 0, None)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c2,0) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, -101)
tdSql.checkData(1, 0, 115.1)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c2,1) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, None)
tdSql.checkData(1, 0, 115.1)
2022-05-09 08:50:59 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c3,0) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, -5.4)
tdSql.checkData(1, 0, -0.1)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(c3,1) from {dbname}.ntb")
2022-05-09 08:50:59 +00:00
tdSql.checkRows(2)
2022-05-26 03:30:38 +00:00
tdSql.checkData(0, 0, None)
tdSql.checkData(1, 0, None)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.execute(f'''create table {dbname}.stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
2022-05-07 07:15:36 +00:00
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
2022-07-21 09:05:31 +00:00
tdSql.execute(f"create table {dbname}.stb_1 using {dbname}.stb tags('beijing')")
2022-05-26 03:30:38 +00:00
tdSql.execute(
2022-07-21 09:05:31 +00:00
f"insert into {dbname}.stb_1 values(%d, 0, 0, 0, 0, 0.0, 0.0, False, ' ', ' ', 0, 0, 0, 0)" % (self.ts - 1))
2022-05-26 03:30:38 +00:00
# diff verifacation
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col1) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-26 03:30:38 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col2) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col3) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col4) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col5) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col6) from {dbname}.stb_1")
2022-05-07 08:22:11 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col7) from {dbname}.stb_1")
2022-05-10 02:15:16 +00:00
tdSql.checkRows(0)
2022-05-07 07:15:36 +00:00
for i in range(self.rowNum):
2022-07-21 09:05:31 +00:00
tdSql.execute(f"insert into {dbname}.stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
2022-05-26 03:30:38 +00:00
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
2022-07-21 09:05:31 +00:00
# tdSql.error(f"select diff(col7) from {dbname}.stb")
2022-05-26 03:30:38 +00:00
2022-07-21 09:05:31 +00:00
tdSql.error(f"select diff(col8) from {dbname}.stb")
tdSql.error(f"select diff(col8) from {dbname}.stb_1")
tdSql.error(f"select diff(col9) from {dbname}.stb")
tdSql.error(f"select diff(col9) from {dbname}.stb_1")
tdSql.error(f"select diff(col11) from {dbname}.stb_1")
tdSql.error(f"select diff(col12) from {dbname}.stb_1")
tdSql.error(f"select diff(col13) from {dbname}.stb_1")
tdSql.error(f"select diff(col14) from {dbname}.stb_1")
tdSql.error(f"select diff(col14) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,col1,col1) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,1,col1) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,col1,col) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,col1) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,'123') from {dbname}.stb_1")
tdSql.error(f"select diff(col1,1.23) from {dbname}.stb_1")
tdSql.error(f"select diff(col1,-1) from {dbname}.stb_1")
2022-07-27 06:38:34 +00:00
tdSql.query(f"select ts,diff(col1),ts from {dbname}.stb_1")
2022-05-09 01:38:05 +00:00
tdSql.query(f"select diff(ts) from {dbname}.stb_1")
tdSql.checkRows(10)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col1) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-09 01:38:05 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col2) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-09 01:38:05 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col3) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-09 01:38:05 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col4) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-09 01:38:05 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col5) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-09 01:38:05 +00:00
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col6) from {dbname}.stb_1")
2022-05-09 07:01:06 +00:00
tdSql.checkRows(10)
2022-05-26 03:30:38 +00:00
2022-07-21 09:05:31 +00:00
tdSql.execute(f'''create table {dbname}.stb1(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
2022-05-26 03:30:38 +00:00
col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''')
2022-07-21 09:05:31 +00:00
tdSql.execute(f"create table {dbname}.stb1_1 using {dbname}.stb tags('shanghai')")
2022-05-26 03:30:38 +00:00
for i in range(self.rowNum):
2022-07-21 09:05:31 +00:00
tdSql.execute(f"insert into {dbname}.stb1_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
2022-05-26 03:30:38 +00:00
% (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1))
for i in range(self.rowNum):
2022-07-21 09:05:31 +00:00
tdSql.execute(f"insert into {dbname}.stb1_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)"
2022-05-26 03:30:38 +00:00
% (self.ts - i-1, i-1, i-1, i-1, i-1, -i - 0.1, -i - 0.1, -i % 2, i - 1, i - 1, i + 1, i + 1, i + 1, i + 1))
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col1,0) from {dbname}.stb1_1")
2022-05-26 03:30:38 +00:00
tdSql.checkRows(19)
2022-07-21 09:05:31 +00:00
tdSql.query(f"select diff(col1,1) from {dbname}.stb1_1")
2022-05-26 03:30:38 +00:00
tdSql.checkRows(19)
tdSql.checkData(0,0,None)
2022-05-07 07:15:36 +00:00
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
2022-05-26 03:30:38 +00:00
2022-05-07 07:15:36 +00:00
tdCases.addWindows(__file__, TDTestCase())
2022-05-26 03:30:38 +00:00
tdCases.addLinux(__file__, TDTestCase())