172 lines
7.8 KiB
Python
172 lines
7.8 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
|
|
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 run(self):
|
|
tdSql.prepare()
|
|
tdSql.execute("drop database db ")
|
|
tdSql.execute("create database if not exists db ")
|
|
tdSql.execute("create table cars(ts timestamp, c nchar(2)) tags(t1 nchar(2))")
|
|
tdSql.execute("insert into car0 using cars tags('aa') values(now, 'bb');")
|
|
tdSql.query("select count(*) from cars where t1 like '%50 90 30 04 00 00%'")
|
|
tdSql.checkRows(0)
|
|
|
|
tdSql.execute("create table test_cars(ts timestamp, c nchar(2)) tags(t1 nchar(20))")
|
|
tdSql.execute("insert into car1 using test_cars tags('150 90 30 04 00 002') values(now, 'bb');")
|
|
tdSql.query("select * from test_cars where t1 like '%50 90 30 04 00 00%'")
|
|
tdSql.checkRows(1)
|
|
|
|
tdSql.execute("create stable st (ts timestamp , id int , name binary(20), data double ) tags (ind int , tagg binary(20)) ")
|
|
|
|
# check escape about tbname by show tables like
|
|
|
|
tdSql.execute("create table tb_ using st tags (1 , 'tag_' ) ")
|
|
tdSql.execute("insert into tb_ values( now , 1 , 'tbname_' , 1.0)")
|
|
tdSql.execute("create table tba using st tags (1 , 'taga' ) ")
|
|
tdSql.execute("insert into tba values( now , 1 , 'tbnamea' , 1.0)")
|
|
tdSql.query("show tables like 'tb_'")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("show tables like 'tb\_'")
|
|
tdSql.checkRows(1)
|
|
|
|
# check escape about tbname by show tables like
|
|
tdSql.query("select * from st where tbname like 'tb\_'")
|
|
tdSql.checkRows(1)
|
|
|
|
# check escape about regular cols
|
|
tdSql.query("select * from st where name like 'tbname\_';")
|
|
tdSql.checkRows(1)
|
|
|
|
# check escape about tags
|
|
tdSql.query("select * from st where tagg like 'tag\_';")
|
|
tdSql.checkRows(1)
|
|
|
|
# ======================= check multi escape ===================
|
|
|
|
tdSql.execute("create table tb_1 using st tags (1 , 'tag_1' ) ")
|
|
tdSql.execute("insert into tb_1 values( now , 1 , 'tbname_1' , 1.0)")
|
|
tdSql.execute("create table tb_2 using st tags (2 , 'tag_2' )")
|
|
tdSql.execute("insert into tb_2 values( now , 2 , 'tbname_2' , 2.0)")
|
|
tdSql.execute("create table tb__ using st tags (3 , 'tag__' )")
|
|
tdSql.execute("insert into tb__ values( now , 3 , 'tbname__' , 2.0)")
|
|
tdSql.execute("create table tb__1 using st tags (3 , 'tag__1' )")
|
|
tdSql.execute("insert into tb__1 values( now , 1 , 'tbname__1' , 1.0)")
|
|
tdSql.execute("create table tb__2 using st tags (4 , 'tag__2' )")
|
|
tdSql.execute("create table tb___ using st tags (5 , 'tag___' )")
|
|
tdSql.execute("insert into tb___ values( now , 1 , 'tbname___' , 1.0)")
|
|
tdSql.execute("create table tb_d_ using st tags (5 , 'tag_d_' )")
|
|
tdSql.execute("insert into tb_d_ values( now , 1 , 'tbname_d_' , 1.0)")
|
|
|
|
tdSql.execute("create table tb_d__ using st tags (5 , 'tag_d__' )")
|
|
tdSql.execute("insert into tb_d__ values( now , 1 , 'tbname_d__' , 1.0)")
|
|
tdSql.execute("create table tb____ using st tags (5 , 'tag____' )")
|
|
tdSql.execute("insert into tb____ values( now , 1 , 'tbname____' , 1.0)")
|
|
tdSql.execute("create table tb__a_ using st tags (5 , 'tag__a_' )")
|
|
tdSql.execute("insert into tb__a_ values( now , 1 , 'tbname__a_' , 1.0)")
|
|
tdSql.execute("create table tb__ab__ using st tags (5 , 'tag__ab__' )")
|
|
tdSql.execute("insert into tb__ab__ values( now , 1 , 'tbname__ab__' , 1.0)")
|
|
|
|
# check escape about tbname by show tables like
|
|
tdSql.query("select * from st where tbname like 'tb__'")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tbname like 'tb_\_'")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tbname like 'tb___'")
|
|
tdSql.checkRows(4)
|
|
tdSql.query("select * from st where tbname like 'tb_\__'")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tbname like 'tb_\_\_'")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tbname like 'tb\__\_'")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tbname like 'tb\__\__'")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tbname like 'tb\__\_\_'")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tbname like 'tb\____'")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tbname like 'tb\_\__\_'")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tbname like 'tb\_\_\_\_'")
|
|
tdSql.checkRows(1)
|
|
|
|
# check escape about regular cols
|
|
tdSql.query("select * from st where name like 'tbname\_\_';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where name like 'tbname\__';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where name like 'tbname___';")
|
|
tdSql.checkRows(4)
|
|
tdSql.query("select * from st where name like 'tbname_\__';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where name like 'tbname_\_\_';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where name like 'tbname\_\__';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where name like 'tbname____';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where name like 'tbname\_\___';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where name like 'tbname\_\_\__';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where name like 'tbname\_\__\_';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select name from st where name like 'tbname\_\_\__';")
|
|
tdSql.checkData(0,0 "tbname____")
|
|
|
|
# check escape about tags
|
|
tdSql.query("select * from st where tagg like 'tag\_';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tagg like 'tag\_\_';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tagg like 'tag\__';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tagg like 'tag___';")
|
|
tdSql.checkRows(4)
|
|
tdSql.query("select * from st where tagg like 'tag_\__';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tagg like 'tag_\_\_';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tagg like 'tag\_\__';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tagg like 'tag____';")
|
|
tdSql.checkRows(3)
|
|
tdSql.query("select * from st where tagg like 'tag\_\___';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tagg like 'tag\_\_\__';")
|
|
tdSql.checkRows(1)
|
|
tdSql.query("select * from st where tagg like 'tag\_\__\_';")
|
|
tdSql.checkRows(2)
|
|
tdSql.query("select * from st where tagg like 'tag\_\__\_';")
|
|
tdSql.checkData(0,0 "tag__a_")
|
|
|
|
os.system("rm -rf ./*.py.sql")
|
|
|
|
def stop(self):
|
|
tdSql.close()
|
|
tdLog.success("%s successfully executed" % __file__)
|
|
|
|
|
|
tdCases.addWindows(__file__, TDTestCase())
|
|
tdCases.addLinux(__file__, TDTestCase())
|