177 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| ###################################################################
 | |
| #           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
 | |
| from util.log import *
 | |
| from util.cases import *
 | |
| from util.sql import *
 | |
| from util.dnodes import *
 | |
| 
 | |
| 
 | |
| class TDTestCase:
 | |
|     def init(self, conn, logSql):
 | |
|         tdLog.debug(f"start to execute {__file__}")
 | |
|         tdSql.init(conn.cursor(), logSql)
 | |
| 
 | |
|     def inertnow(self):
 | |
|         tsp1 = 0
 | |
|         tsp2 = -28800000
 | |
|         tsp3 = -946800000000
 | |
| 
 | |
|         tdSql.execute(
 | |
|             "create table stbts (ts timestamp, ts1 timestamp, c1 int, ts2 timestamp) TAGS(t1 int)"
 | |
|         )
 | |
|         tdSql.execute("create table tts1 using stbts tags(1)")
 | |
| 
 | |
|         tdSql.execute("insert into tts1 values (now+1d, now+1d, 6, now+1d)")
 | |
|         tdSql.execute("insert into tts1 values (now, now, 5, now)")
 | |
|         tdSql.execute("insert into tts1 values (now-1d, now-1d, 4, now-1d)")
 | |
|         tdSql.execute(f"insert into tts1 values ({tsp1}, {tsp1}, 3, {tsp1})")
 | |
|         tdSql.execute(f"insert into tts1 values ({tsp2}, {tsp2}, 2, {tsp2})")
 | |
|         tdSql.execute(f"insert into tts1 values ({tsp3}, {tsp3}, 1, {tsp3})")
 | |
| 
 | |
|     def querynow(self):
 | |
|         interval_day1 = (datetime.date.today() - datetime.date(1970, 1, 1)).days
 | |
|         interval_day2 = (datetime.date.today() - datetime.date(1940, 1, 1)).days
 | |
| 
 | |
|         tdLog.printNoPrefix("==========step query: execute query operation")
 | |
|         time.sleep(1)
 | |
|         tdSql.execute(" select * from tts1 where ts > now+1d ")
 | |
|         ts_len1 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(" select * from tts1 where ts < now+1d ")
 | |
|         ts_len2 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(" select * from tts1 where ts > now-1d ")
 | |
|         ts_len3 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(" select * from tts1 where ts < now-1d ")
 | |
|         ts_len4 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts > now-{interval_day1+1}d ")
 | |
|         ts_len5 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts < now-{interval_day1+1}d ")
 | |
|         ts_len6 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts > now-{interval_day1-1}d ")
 | |
|         ts_len7 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts < now-{interval_day1-1}d ")
 | |
|         ts_len8 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts > now-{interval_day2+1}d ")
 | |
|         ts_len9 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts < now-{interval_day2+1}d ")
 | |
|         ts_len10 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts > now-{interval_day2-1}d ")
 | |
|         ts_len11 = len(tdSql.cursor.fetchall())
 | |
|         tdSql.execute(f" select * from tts1 where ts < now-{interval_day2-1}d ")
 | |
|         ts_len12 = len(tdSql.cursor.fetchall())
 | |
| 
 | |
|         tdSql.query(" select * from tts1 where ts1 > now+1d ")
 | |
|         tdSql.checkRows(ts_len1)
 | |
|         tdSql.query(" select * from tts1 where ts2 > now+1440m ")
 | |
|         tdSql.checkRows(ts_len1)
 | |
| 
 | |
|         tdSql.query(" select * from tts1 where ts1 < now+1d ")
 | |
|         tdSql.checkRows(ts_len2)
 | |
|         tdSql.query(" select * from tts1 where ts2 < now+1440m ")
 | |
|         tdSql.checkRows(ts_len2)
 | |
| 
 | |
|         tdSql.query(" select * from tts1 where ts1 > now-1d ")
 | |
|         tdSql.checkRows(ts_len3)
 | |
|         tdSql.query(" select * from tts1 where ts2 > now-1440m ")
 | |
|         tdSql.checkRows(ts_len3)
 | |
| 
 | |
|         tdSql.query(" select * from tts1 where ts1 < now-1d ")
 | |
|         tdSql.checkRows(ts_len4)
 | |
|         tdSql.query(" select * from tts1 where ts2 < now-1440m ")
 | |
|         tdSql.checkRows(ts_len4)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 > now-{interval_day1+1}d ")
 | |
|         tdSql.checkRows(ts_len5)
 | |
|         tdSql.query(f" select * from tts1 where ts2 > now-{(interval_day1+1)*1440}m " )
 | |
|         tdSql.checkRows(ts_len5)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 < now-{interval_day1+1}d ")
 | |
|         tdSql.checkRows(ts_len6)
 | |
|         tdSql.query(f" select * from tts1 where ts2 < now-{(interval_day1+1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len6)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 > now-{interval_day1-1}d ")
 | |
|         tdSql.checkRows(ts_len7)
 | |
|         tdSql.query(f" select * from tts1 where ts2 > now-{(interval_day1-1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len7)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 < now-{interval_day1-1}d ")
 | |
|         tdSql.checkRows(ts_len8)
 | |
|         tdSql.query(f" select * from tts1 where ts2 < now-{(interval_day1-1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len8)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 > now-{interval_day2 + 1}d ")
 | |
|         tdSql.checkRows(ts_len9)
 | |
|         tdSql.query(f" select * from tts1 where ts2 > now-{(interval_day2 + 1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len9)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 < now-{interval_day2 + 1}d ")
 | |
|         tdSql.checkRows(ts_len10)
 | |
|         tdSql.query(f" select * from tts1 where ts2 < now-{(interval_day2 + 1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len10)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 > now-{interval_day2 - 1}d ")
 | |
|         tdSql.checkRows(ts_len11)
 | |
|         tdSql.query(f" select * from tts1 where ts2 > now-{(interval_day2 - 1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len11)
 | |
| 
 | |
|         tdSql.query(f" select * from tts1 where ts1 < now-{interval_day2 - 1}d ")
 | |
|         tdSql.checkRows(ts_len12)
 | |
|         tdSql.query(f" select * from tts1 where ts2 < now-{(interval_day2 - 1)*1440}m ")
 | |
|         tdSql.checkRows(ts_len12)
 | |
| 
 | |
| 
 | |
| 
 | |
|     def run(self):
 | |
|         tdSql.execute("drop database if exists dbms")
 | |
|         tdSql.execute("drop database if exists dbus")
 | |
| 
 | |
|         # timestamp list:
 | |
|         #   0 -> "1970-01-01 08:00:00" | -28800000 -> "1970-01-01 00:00:00" | -946800000000 -> "1940-01-01 00:00:00"
 | |
|         #   -631180800000 -> "1950-01-01 00:00:00"
 | |
| 
 | |
|         tdLog.printNoPrefix("==========step1:create table precision ms && insert data && query")
 | |
|         # create databases precision is ms
 | |
|         tdSql.execute("create database  if not exists dbms keep 36500")
 | |
|         tdSql.execute("use dbms")
 | |
|         self.inertnow()
 | |
|         self.querynow()
 | |
| 
 | |
|         tdLog.printNoPrefix("==========step2:create table precision us && insert data && query")
 | |
|         # create databases precision is us
 | |
|         tdSql.execute("create database  if not exists dbus keep 36500 precision 'us' ")
 | |
|         tdSql.execute("use dbus")
 | |
|         self.inertnow()
 | |
|         self.querynow()
 | |
| 
 | |
|         tdSql.query("show dnodes")
 | |
|         index = tdSql.getData(0, 0)
 | |
|         tdDnodes.stop(index)
 | |
|         tdDnodes.start(index)
 | |
| 
 | |
|         tdLog.printNoPrefix("==========step3:after wal, query table precision ms")
 | |
|         tdSql.execute("use dbus")
 | |
|         self.querynow()
 | |
| 
 | |
|         tdLog.printNoPrefix("==========step4: query table precision us")
 | |
|         tdSql.execute("use dbus")
 | |
|         self.querynow()
 | |
| 
 | |
|     def stop(self):
 | |
|         tdSql.close()
 | |
|         tdLog.success(f"{__file__} successfully executed")
 | |
| 
 | |
| 
 | |
| tdCases.addWindows(__file__, TDTestCase())
 | |
| tdCases.addLinux(__file__, TDTestCase()) |