query.py 8.6 KB
Newer Older
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 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 123 124 125 126 127 128 129 130 131 132 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 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

###################################################################
#           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
import taos
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("start to execute %s" % __file__)
        tdSql.init(conn.cursor(), logSql)

        self.ts = 1538548685000

    def bug_6387(self):
        tdSql.execute("create database bug6387 ")
        tdSql.execute("use bug6387 ")
        tdSql.execute("create table test(ts timestamp, c1 int) tags(t1 int)")
        prefix = "insert into "
        sql = ""
        for i in range(5000):
            temp = "t%d using test tags(1) values " % i
            for j in range(21):
                temp = temp + "(now+%ds,%d)" % (j ,j )
            sql = sql + temp
            if i % 1000 == 0 :
                tdSql.execute(prefix + sql)
                sql = ""
        tdSql.query("select count(*) from test interval(1s) group by tbname")
        tdSql.checkData(0,1,1)
    
    def escape_ascii(self):
        tdSql.execute('drop database if exists db')
        tdSql.execute('create database db')
        tdSql.execute('use db')
        tdSql.execute("create table car (ts timestamp, s int) tags(j int)")
        for i in range(32,127):
            if i == 96 : continue    #`
            sql = 'create table `是否出现%s` using car tags(%d)' % (chr(i), i)
            tdSql.execute(sql)
        for i in range(32,65):
            sql = 'select tbname from car where tbname like "是否出现\%s"' % chr(i)
            tdSql.query(sql)
            if i == 37 : continue  # " `
            tdSql.checkRows(1)
        for i in range(91,97):
            sql = 'select tbname from car where tbname like "是否出现\%s"' % chr(i)
            tdSql.query(sql)
            if i == 96: continue  #  `
            tdSql.checkRows(1)
        for i in range(123,127):
            sql = 'select tbname from car where tbname like "是否出现\%s"' % chr(i)
            tdSql.query(sql)
            tdSql.checkRows(1)

    def run(self):
        tdSql.prepare()

        print("==============step1")
        tdSql.execute(
            "create table if not exists st (ts timestamp, tagtype int) tags(dev nchar(50))")
        tdSql.execute(
            'CREATE TABLE if not exists dev_001 using st tags("dev_01")')
        tdSql.execute(
            'CREATE TABLE if not exists dev_002 using st tags("dev_02")')

        print("==============step2")

        tdSql.execute(
            """INSERT INTO dev_001(ts, tagtype) VALUES('2020-05-13 10:00:00.000', 1),
            ('2020-05-13 10:00:00.001', 1)
             dev_002 VALUES('2020-05-13 10:00:00.001', 1)""")

        tdSql.query("select * from db.st where ts='2020-05-13 10:00:00.000'")
        tdSql.checkRows(1)

        tdSql.query("select tbname, dev from dev_001")
        tdSql.checkRows(1)
        tdSql.checkData(0, 0, 'dev_001')
        tdSql.checkData(0, 1, 'dev_01')

        tdSql.query("select tbname, dev, tagtype from dev_001")
        tdSql.checkRows(2)
        tdSql.checkData(0, 0, 'dev_001')
        tdSql.checkData(0, 1, 'dev_01')
        tdSql.checkData(0, 2, 1)
        tdSql.checkData(1, 0, 'dev_001')
        tdSql.checkData(1, 1, 'dev_01')
        tdSql.checkData(1, 2, 1)

        ## TD-2488
        tdSql.execute("create table m1(ts timestamp, k int) tags(a int)")
        tdSql.execute("create table t1 using m1 tags(1)")
        tdSql.execute("create table t2 using m1 tags(2)")
        tdSql.execute("insert into t1 values('2020-1-1 1:1:1', 1)")
        tdSql.execute("insert into t1 values('2020-1-1 1:10:1', 2)")
        tdSql.execute("insert into t2 values('2020-1-1 1:5:1', 99)")

        tdSql.query("select count(*) from m1 where ts = '2020-1-1 1:5:1' ")
        tdSql.checkRows(1)
        tdSql.checkData(0, 0, 1)

        tdDnodes.stop(1)
        tdDnodes.start(1)

        tdSql.query("select count(*) from m1 where ts = '2020-1-1 1:5:1' ")
        tdSql.checkRows(1)
        tdSql.checkData(0, 0, 1)

        ## TD-1930
        tdSql.execute("create table tb(ts timestamp, c1 int, c2 binary(10), c3 nchar(10), c4 float, c5 bool)")
        for i in range(10):
            tdSql.execute(
                "insert into tb values(%d, %d, 'binary%d', 'nchar%d', %f, %d)" % (self.ts + i, i, i, i, i + 0.1, i % 2))

        tdSql.error("select * from tb where c2 = binary2")
        tdSql.error("select * from tb where c3 = nchar2")

        tdSql.query("select * from tb where c2 = 'binary2' ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c3 = 'nchar2' ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c1 = '2' ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c1 = 2 ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c4 = '0.1' ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c4 = 0.1 ")
        tdSql.checkRows(1)

        tdSql.query("select * from tb where c5 = true ")
        tdSql.checkRows(5)

        tdSql.query("select * from tb where c5 = 'true' ")
        tdSql.checkRows(5)

        # TD-2850
        tdSql.execute("create database 'Test' ")
        tdSql.execute("use 'Test' ")
        tdSql.execute("create table 'TB'(ts timestamp, 'Col1' int) tags('Tag1' int)")
        tdSql.execute("insert into 'Tb0' using tb tags(1) values(now, 1)")
        tdSql.query("select * from tb")
        tdSql.checkRows(1)
        tdSql.query("select * from tb0")
        tdSql.checkRows(1)

        # TD-6314
        tdSql.execute("use db")
        tdSql.execute("create stable stb_001(ts timestamp,v int) tags(c0 int)")
        tdSql.execute("insert into stb1 using stb_001 tags(1) values(now,1)")
        tdSql.query("select _block_dist() from stb_001")
        tdSql.checkRows(1)

        

        #TD-6387
        tdLog.info("case for bug_6387")
        self.bug_6387()

        #JIRA TS-583
        tdLog.info("case for JIRA TS-583")
        tdSql.execute("create database test2")
        tdSql.execute("use test2")
        tdSql.execute("create table stb(ts timestamp, c1 int) tags(t1 binary(120))")
        tdSql.execute("create table t0 using stb tags('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz')")
    
        tdSql.query("show create table t0")        
        tdSql.checkRows(1)

        tdSql.execute("create table stb2(ts timestamp, c1 int) tags(t1 nchar(120))")
        tdSql.execute("create table t1 using stb2 tags('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz')")
        
        tdSql.query("show create table t1")        
        tdSql.checkRows(1)

        #TS-636
        tdLog.info("case for TS-636")
        self.escape_ascii()

P
Ping Xiao 已提交
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
        # TS-1304
        tdLog.info("case for JIRA TS-1304")
        tdSql.execute("create stable devices (ts timestamp,tempature int,humity float,`1name`  int ) tags (`1devid` int,devname binary(20))")
        tdSql.execute("insert into devices_001 using devices tags (111,'zzm')  values (now,10001,1,1)")
        tdSql.execute("insert into devices_001 using devices tags (222,'cxd')  values (now + 1s,10002,2,2)")
        tdSql.execute("insert into devices_001 using devices tags (333,'cyt')  values (now + 2s,10002,2,2)")

        tdSql.error("select 1name from devices")
        tdSql.error("select 1name from devices_001")
        tdSql.error("select 1devid from devices")
        tdSql.error("select 1devid from devices_001")        

        tdSql.query("select `1name` from devices_001")
        tdSql.checkRows(3)
        tdSql.checkData(0, 0, 1)
        tdSql.checkData(1, 0, 2)
        tdSql.checkData(2, 0, 2)

        tdSql.query("select `1devid` from devices_001")
        tdSql.checkRows(1)
        tdSql.checkData(0, 0, 111)

223 224 225 226 227 228 229
    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)


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