nanoSecondCheck.py 7.9 KB
Newer Older
B
bryanchang0603 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
###################################################################
#           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 -*-

#TODO: after TD-4518 and TD-4510 is resolved, add the exception test case for these situations

import sys
from util.log import *
from util.cases import *
from util.sql import *
import time
from datetime import datetime
import os


class TDTestCase:
    def init(self, conn, logSql):
        tdLog.debug("start to execute %s" % __file__)
        tdSql.init(conn.cursor(), logSql)

    def run(self):
        tdSql.prepare()

        tdSql.execute('reset query cache')
        tdSql.execute('drop database if exists db')
        tdSql.execute('create database db precision "ns"')
        tdSql.query('show databases')
        tdSql.checkData(0,16,'ns')
        tdSql.execute('use db')
        tdSql.execute('create table tb (ts timestamp, speed int)')
        tdSql.execute('insert into tb values(\'2021-06-10 0:00:00.100000001\', 1)')
B
bryanchang0603 已提交
41 42 43 44
        tdSql.execute('insert into tb values(1623254400150000000, 2)')
        tdSql.execute('import into tb values(1623254400300000000, 3)')
        tdSql.execute('import into tb values(1623254400299999999, 4)')
        tdSql.execute('insert into tb values(1623254400300000001, 5)')
B
bryanchang0603 已提交
45 46
        os.system('sudo timedatectl set-ntp off')
        os.system('sudo timedatectl set-time 2021-06-10')
B
bryanchang0603 已提交
47 48 49
        tdSql.execute('insert into tb values(now + 500000000b, 6)')
        tdSql.execute('insert into tb values(1623254400999999999, 7)')

B
bryanchang0603 已提交
50 51

        ##TODO: after the connector is updated, run the following commented code
B
bryanchang0603 已提交
52 53 54
        ##TODO: due to the precision limit of double, spread currently cannot be tested since ns timestampe cannot be accurately represented

        # tdSql.query('select count(*) from tb where ts > 1623254400000000000 and ts < 1623254400110000000')
B
bryanchang0603 已提交
55
        # tdSql.checkData(0,0,1)
B
bryanchang0603 已提交
56
        # tdSql.query('select count(*) from tb where ts > \'2021-06-10 0:00:00.000000000\' and ts < \'2021-06-10 0:00:00.110000000\'')
B
bryanchang0603 已提交
57 58
        # tdSql.checkData(0,0,1)

B
bryanchang0603 已提交
59
        # tdSql.query('select count(*) from tb where ts > 1623254400100000000 and ts < 1623254400150000000')
B
bryanchang0603 已提交
60
        # tdSql.checkData(0,0,1)
B
bryanchang0603 已提交
61
        # tdSql.query('select count(*) from tb where ts > \'2021-06-10 0:00:00.100000000\' and ts < \'2021-06-10 0:00:00.150000000\'')
B
bryanchang0603 已提交
62 63 64
        # tdSql.checkData(0,0,1)

        # tdSql.query('select count(*) from tb where ts > 1623254400400000000')
B
bryanchang0603 已提交
65 66 67
        # tdSql.checkData(0,0,2)
        # tdSql.query('select count(*) from tb where ts < \'2021-06-10 00:00:00.400000000\'')
        # tdSql.checkData(0,0,5)
B
bryanchang0603 已提交
68 69 70

        # os.system('sudo timedatectl set-ntp off')
        # os.system('sudo timedatectl set-time 2021-06-10')
B
bryanchang0603 已提交
71 72
        # tdSql.query('select count(*) from tb where ts > now + 400000000b')
        # tdSql.checkData(0,0,2)
B
bryanchang0603 已提交
73 74

        # tdSql.query('select count(*) from tb where ts >= \'2021-06-10 0:00:00.100000001\'')
B
bryanchang0603 已提交
75
        # tdSql.checkData(0,0,7)
B
bryanchang0603 已提交
76

B
bryanchang0603 已提交
77 78
        # tdSql.query('select count(*) from tb where ts <= 1623254400300000000')
        # tdSql.checkData(0,0,4)
B
bryanchang0603 已提交
79 80 81 82

        # tdSql.query('select count(*) from tb where ts = \'2021-06-10 0:00:00.000000000\'')
        # tdSql.checkData(0,0,0)

B
bryanchang0603 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
        # tdSql.query('select count(*) from tb where ts between 1623254400000000000 and 1623254400400000000')
        # tdSql.checkData(0,0,5)

        # tdSql.query('select count(*) from tb where ts between \'2021-06-10 0:00:00.299999999\' and \'2021-06-10 0:00:00.300000001\'')
        # tdSql.checkData(0,0,3)

        #tdSql.query('select avg(speed) from tb interval(5000000000b)')
        # tdSql.checkRows(1)

        #tdSql.query('select avg(speed) from tb interval(100000000b)')
        #tdSql.checkRows(5)

        #tdSql.query('select avg(speed) from tb interval(100000000b) sliding (100000000b)')
        #tdSql.checkRows(5)

        #tdSql.query('select last(*) from tb')
        #tdSql.checkData(0,0, '2021-06-10 0:00:00.999999999')
        #tdSql.checkData(0,0, 1623254400999999999)

        #tdSql.query('select first(*) from tb')
        #tdSql.checkData(0,0, 1623254400100000001)
        #tdSql.checkData(0,0, 2021-06-10 0:00:00.100000001)

        tdSql.execute('create table tb2 (ts timestamp, speed int, ts2 timestamp)')
        tdSql.execute('insert into tb2 values(\'2021-06-10 0:00:00.100000001\', 1, \'2021-06-11 0:00:00.100000001\')')
        tdSql.execute('insert into tb2 values(1623254400150000000, 2, 1623340800150000000)')
        tdSql.execute('import into tb2 values(1623254400300000000, 3, 1623340800300000000)')
        tdSql.execute('import into tb2 values(1623254400299999999, 4, 1623340800299999999)')
        tdSql.execute('insert into tb2 values(1623254400300000001, 5, 1623340800300000001)')
        os.system('sudo timedatectl set-ntp off')
        os.system('sudo timedatectl set-time 2021-06-10')
        tdSql.execute('insert into tb2 values(now + 500000000b, 6, now +2d)')
        tdSql.execute('insert into tb2 values(1623254400999999999, 7, 1623513600999999999)')

        # tdSql.query('select count(*) from tb2 where ts2 > 1623340800000000000 and ts2 < 1623340800150000000')
        # tdSql.checkData(0,0,1)
        # tdSql.query('select count(*) from tb2 where ts2 > \'2021-06-11 0:00:00.100000000\' and ts2 < \'2021-06-11 0:00:00.100000002\'')
        # tdSql.checkData(0,0,1)

        # tdSql.query('select count(*) from tb2 where ts2 > 1623340800500000000')
B
bryanchang0603 已提交
123
        # tdSql.checkData(0,0,2)
B
bryanchang0603 已提交
124 125
        # tdSql.query('select count(*) from tb2 where ts2 < \'2021-06-11 0:00:00.400000000\'')
        # tdSql.checkData(0,0,5)
B
bryanchang0603 已提交
126

B
bryanchang0603 已提交
127 128 129
        # os.system('sudo timedatectl set-ntp off')
        # os.system('sudo timedatectl set-time 2021-06-11')
        # tdSql.query('select count(*) from tb2 where ts2 > now + 400000000b')
B
bryanchang0603 已提交
130 131 132
        # tdSql.checkData(0,0,2)


B
bryanchang0603 已提交
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
        # tdSql.query('select count(*) from tb2 where ts2 >= \'2021-06-11 0:00:00.100000001\'')
        # tdSql.checkData(0,0,7)

        # tdSql.query('select count(*) from tb2 where ts2 <= 1623340800400000000')
        # tdSql.checkData(0,0,5)

        # tdSql.query('select count(*) from tb2 where ts2 = \'2021-06-11 0:00:00.000000000\'')
        # tdSql.checkData(0,0,0)

        # tdSql.query('select count(*) from tb2 where ts2 between 1623340800000000000 and 1623340800450000000')
        # tdSql.checkData(0,0,5)

        # tdSql.query('select count(*) from tb2 where ts2 between \'2021-06-11 0:00:00.299999999\' and \'2021-06-11 0:00:00.300000001\'')
        # tdSql.checkData(0,0,3)

        # tdSql.query('select count(*) from tb2 where ts2 <> 1623513600999999999')
        # tdSql.checkData(0,0,6)

        # tdSql.query('select count(*) from tb2 where ts2 <> \'2021-06-11 0:00:00.100000001\'')
        # tdSql.checkData(0,0,6)

        # tdSql.query('select count(*) from tb2 where ts2 != 1623513600999999999')
        # tdSql.checkData(0,0,6)

        # tdSql.query('select count(*) from tb2 where ts2 != \'2021-06-11 0:00:00.100000001\'')
        # tdSql.checkData(0,0,6)

160 161 162 163 164 165 166 167 168 169 170
        tdSql.execute('create table tb3 (ts timestamp, speed int)')

        tdSql.error('insert into tb3 values(16232544001500000, 2)')
        tdSql.execute('insert into tb3 values(\'2021-06-10 0:00:00.123456\', 2)')
        # tdSql.query('select * from tb3 where ts = \'2021-06-10 0:00:00.123456000\'')
        # tdSql.checkRows(1)

        tdSql.execute('insert into tb3 values(\'2021-06-10 0:00:00.123456789000\', 2)')
        # tdSql.query('select * from tb3 where ts = \'2021-06-10 0:00:00.123456789\'')
        # tdSql.checkRows(1)

B
bryanchang0603 已提交
171 172
        os.system('sudo timedatectl set-ntp on')

B
bryanchang0603 已提交
173 174 175 176 177 178 179
    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)


tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())