178 lines
6.6 KiB
Python
178 lines
6.6 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 tdLog
|
|
from util.cases import tdCases
|
|
from util.sql import tdSql
|
|
import random
|
|
|
|
|
|
class TDTestCase:
|
|
def init(self, conn, logSql):
|
|
tdLog.debug("start to execute %s" % __file__)
|
|
tdSql.init(conn.cursor(), logSql)
|
|
|
|
|
|
|
|
def run(self):
|
|
tdSql.prepare()
|
|
# test case for https://jira.taosdata.com:18080/browse/TD-5021
|
|
|
|
tdLog.info("\n\n----------step1 : drop db and create db----------\n")
|
|
tdSql.execute('''drop database if exists db ;''')
|
|
tdSql.execute('''create database db ;''')
|
|
sql = '''show databases;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(1)
|
|
|
|
tdLog.info("\n\n----------step2 : create stable----------\n")
|
|
tdSql.execute('''create stable
|
|
db.stable_1 (ts timestamp, payload binary(256))
|
|
tags(t1 binary(16),t2 int);''')
|
|
sql = '''show db.stables;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(1)
|
|
|
|
tdLog.info("\n\n----------step3 : create table and insert----------\n")
|
|
sql = '''insert into db.table1 using db.stable_1 (t1 , t2) tags ("table_1" , 111) ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" unexpected token")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: syntax error near ', ;' (unexpected token)")
|
|
|
|
sql = '''insert into db.table1(ts , payload) using db.stable_1 (t1 , t2) tags ("table_1" , 111) ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" bind columns again")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: syntax error near ', ;' (bind columns again)")
|
|
|
|
sql = '''insert into db.table1 using db.stable_1 (t1 , t2) tags ("table_1",111) (ts , payload) ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" keyword VALUES or FILE required ")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: invalid SQL: (keyword VALUES or FILE required)")
|
|
|
|
tdSql.execute('''insert into db.table1 using db.stable_1 (t1 , t2)
|
|
tags ("table_1" , 111) values ( now , 1) ''')
|
|
sql = '''select * from db.stable_1;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(1)
|
|
tdSql.checkData(0,1,1)
|
|
tdSql.checkData(0,2,'table_1')
|
|
|
|
tdLog.info("\n\n----------step4 : create table and insert again----------\n")
|
|
sql = '''insert into db.table2 using db.stable_1 (t1) tags ("table_2") ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" unexpected token")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: syntax error near ', ;' (unexpected token)")
|
|
|
|
tdSql.execute('''insert into db.table2 using db.stable_1 (t1)
|
|
tags ("table_2") values ( now , 2) ''')
|
|
sql = '''select * from db.stable_1;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(2)
|
|
tdSql.checkData(1,1,2)
|
|
tdSql.checkData(1,2,'table_2')
|
|
|
|
tdLog.info("\n\n----------step5 : create table and insert without db----------\n")
|
|
tdSql.execute('''use db''')
|
|
sql = '''insert into table3 using stable_1 (t1) tags ("table_3") ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" unexpected token")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: syntax error near ', ;' (unexpected token)")
|
|
|
|
tdSql.execute('''insert into table3 using stable_1 (t1 , t2)
|
|
tags ("table_3" , 333) values ( now , 3) ''')
|
|
sql = '''select * from stable_1;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(3)
|
|
tdSql.checkData(2,1,3)
|
|
tdSql.checkData(2,2,'table_3')
|
|
|
|
tdLog.info("\n\n----------step6 : create tables in one sql ----------\n")
|
|
sql = '''insert into table4 using stable_1 (t1) tags ("table_4") values (now, 4)
|
|
table5 using stable_1 (t1) tags ("table_5") ( values (now, ;'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" unexpected token")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("DB error: syntax error near ', ;' (unexpected token)")
|
|
|
|
tdSql.execute('''insert into table4 using stable_1 (t1) tags ("table_4") values (now, 4)
|
|
table5 using stable_1 (t1) tags ("table_5") values (now, 5) ''')
|
|
sql = '''select * from stable_1;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(5)
|
|
tdSql.checkData(3,1,4)
|
|
tdSql.checkData(3,2,'table_4')
|
|
tdSql.checkData(4,1,5)
|
|
tdSql.checkData(4,2,'table_5')
|
|
|
|
|
|
sql = '''insert into table6 using stable_1 (t1) tags ("table_6") ( values (now,
|
|
table7 using stable_1 (t1) tags ("table_7") values (now, 7);'''
|
|
tdLog.info(sql)
|
|
tdSql.error(sql)
|
|
try:
|
|
tdSql.execute(sql)
|
|
tdLog.exit(" invalid SQL")
|
|
except Exception as e:
|
|
tdLog.info(repr(e))
|
|
tdLog.info("invalid SQL")
|
|
|
|
tdSql.execute('''insert into table6 using stable_1 (t1 , t2) tags ("table_6" , 666) values (now, 6)
|
|
table7 using stable_1 (t1) tags ("table_7") values (now, 7) ''')
|
|
sql = '''select * from stable_1;'''
|
|
tdSql.query(sql)
|
|
tdSql.checkRows(7)
|
|
tdSql.checkData(5,1,6)
|
|
tdSql.checkData(5,2,'table_6')
|
|
tdSql.checkData(6,1,7)
|
|
tdSql.checkData(6,2,'table_7')
|
|
|
|
|
|
|
|
def stop(self):
|
|
tdSql.close()
|
|
tdLog.success("%s successfully executed" % __file__)
|
|
|
|
|
|
tdCases.addWindows(__file__, TDTestCase())
|
|
tdCases.addLinux(__file__, TDTestCase()) |