commit
bdb79f5400
|
@ -360,6 +360,8 @@ python3 ./test.py -f tag_lite/alter_tag.py
|
|||
|
||||
|
||||
python3 test.py -f tools/taosdemoAllTest/TD-4985/query-limit-offset.py
|
||||
python3 test.py -f tools/taosdemoAllTest/TD-5213/insert4096columns_not_use_taosdemo.py
|
||||
python3 test.py -f tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py
|
||||
python3 ./test.py -f tag_lite/drop_auto_create.py
|
||||
python3 test.py -f insert/insert_before_use_db.py
|
||||
python3 test.py -f alter/alter_keep.py
|
||||
|
|
|
@ -0,0 +1,536 @@
|
|||
###################################################################
|
||||
# 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
|
||||
import time
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
self.ts = 1600000000000
|
||||
self.num = 10
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
# test case for https://jira.taosdata.com:18080/browse/TD-5074
|
||||
|
||||
startTime = time.time()
|
||||
|
||||
tdSql.execute('''create stable stable_1
|
||||
(ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint,
|
||||
q_bool bool , q_binary binary(20) , q_nchar nchar(20) ,
|
||||
q_float float , q_double double , q_ts timestamp)
|
||||
tags(loc nchar(20) , t_int int , t_bigint bigint , t_smallint smallint , t_tinyint tinyint,
|
||||
t_bool bool , t_binary binary(20) , t_nchar nchar(20) ,
|
||||
t_float float , t_double double , t_ts timestamp);''')
|
||||
tdSql.execute('''create stable stable_2
|
||||
(ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint,
|
||||
q_bool bool , q_binary binary(20) , q_nchar nchar(20) ,
|
||||
q_float float , q_double double , q_ts timestamp)
|
||||
tags(loc nchar(20) , t_int int , t_bigint bigint , t_smallint smallint , t_tinyint tinyint,
|
||||
t_bool bool , t_binary binary(20) , t_nchar nchar(20) ,
|
||||
t_float float , t_double double , t_ts timestamp);''')
|
||||
tdSql.execute('''create table table_0 using stable_1
|
||||
tags('table_0' , '0' , '0' , '0' , '0' , 0 , '0' , '0' , '0' , '0' ,'0')''')
|
||||
tdSql.execute('''create table table_1 using stable_1
|
||||
tags('table_1' , '2147483647' , '9223372036854775807' , '32767' , '127' , 1 ,
|
||||
'binary1' , 'nchar1' , '1' , '11' , \'1999-09-09 09:09:09.090\')''')
|
||||
tdSql.execute('''create table table_2 using stable_1
|
||||
tags('table_2' , '-2147483647' , '-9223372036854775807' , '-32767' , '-127' , false ,
|
||||
'binary2' , 'nchar2nchar2' , '-2.2' , '-22.22' , \'2099-09-09 09:09:09.090\')''')
|
||||
tdSql.execute('''create table table_3 using stable_1
|
||||
tags('table_3' , '3' , '3' , '3' , '3' , true , 'binary3' , 'nchar3' , '33.33' , '3333.3333' , '0')''')
|
||||
tdSql.execute('''create table table_4 using stable_1
|
||||
tags('table_4' , '4' , '4' , '4' , '4' , false , 'binary4' , 'nchar4' , '-444.444' , '-444444.444444' , '0')''')
|
||||
tdSql.execute('''create table table_5 using stable_1
|
||||
tags('table_5' , '5' , '5' , '5' , '5' , true , 'binary5' , 'nchar5' , '5555.5555' , '55555555.55555555' , '0')''')
|
||||
tdSql.execute('''create table table_21 using stable_2
|
||||
tags('table_5' , '5' , '5' , '5' , '5' , true , 'binary5' , 'nchar5' , '5555.5555' , '55555555.55555555' , '0')''')
|
||||
#regular table
|
||||
tdSql.execute('''create table regular_table_1
|
||||
(ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint,
|
||||
q_bool bool , q_binary binary(20) , q_nchar nchar(20) ,
|
||||
q_float float , q_double double , q_ts timestamp) ;''')
|
||||
|
||||
for i in range(self.num):
|
||||
tdSql.execute('''insert into table_0 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, 1, 'binary1.%s', 'nchar1.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, 2147483647-i, 9223372036854775807-i, 32767-i, 127-i,
|
||||
i, i, random.random(), random.random(), 1262304000001 + i))
|
||||
tdSql.execute('''insert into table_2 values(%d, %d, %d, %d, %d, true, 'binary2.%s', 'nchar2nchar2.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, -2147483647+i, -9223372036854775807+i, -32767+i, -127+i,
|
||||
i, i, random.uniform(-1,0), random.uniform(-1,0), 1577836800001 + i))
|
||||
tdSql.execute('''insert into table_3 values(%d, %d, %d, %d, %d, false, 'binary3.%s', 'nchar3.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, random.randint(-2147483647, 2147483647),
|
||||
random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767),
|
||||
random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000),
|
||||
random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i))
|
||||
tdSql.execute('''insert into table_4 values(%d, %d, %d, %d, %d, true, 'binary4.%s', 'nchar4.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
tdSql.execute('''insert into table_5 values(%d, %d, %d, %d, %d, false, 'binary5.%s', 'nchar5.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
tdSql.execute('''insert into table_21 values(%d, %d, %d, %d, %d, false, 'binary5.%s', 'nchar5.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)'''
|
||||
% (self.ts + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, 1, 'binary1.%s', 'nchar1.%s', %f, %f, %d)'''
|
||||
% (self.ts + 100 + i, 2147483647-i, 9223372036854775807-i, 32767-i, 127-i,
|
||||
i, i, random.random(), random.random(), 1262304000001 + i))
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, true, 'binary2.%s', 'nchar2nchar2.%s', %f, %f, %d)'''
|
||||
% (self.ts + 200 + i, -2147483647+i, -9223372036854775807+i, -32767+i, -127+i,
|
||||
i, i, random.uniform(-1,0), random.uniform(-1,0), 1577836800001 + i))
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, false, 'binary3.%s', 'nchar3.%s', %f, %f, %d)'''
|
||||
% (self.ts + 300 + i, random.randint(-2147483647, 2147483647),
|
||||
random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767),
|
||||
random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000),
|
||||
random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i))
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, true, 'binary4.%s', 'nchar4.%s', %f, %f, %d)'''
|
||||
% (self.ts + 400 + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, false, 'binary5.%s', 'nchar5.%s', %f, %f, %d)'''
|
||||
% (self.ts + 500 + i, i, i, i, i, i, i, i, i, self.ts + i))
|
||||
|
||||
tdLog.info("========== operator=1(OP_TableScan) ==========")
|
||||
tdLog.info("========== operator=7(OP_Project) ==========")
|
||||
sql = '''select * from stable_1'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6*self.num)
|
||||
sql = '''select * from regular_table_1'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6*self.num)
|
||||
|
||||
tdLog.info("========== operator=14(OP_MultiTableAggregate ) ==========")
|
||||
sql = '''select last_row(*) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,self.num-1)
|
||||
|
||||
tdLog.info("========== operator=6(OP_Aggregate) ==========")
|
||||
sql = '''select last_row(*) from regular_table_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,self.num-1)
|
||||
|
||||
tdLog.info("========== operator=9(OP_Limit) ==========")
|
||||
sql = '''select * from stable_1 where loc = 'table_0' limit 5;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(5)
|
||||
sql = '''select last_row(*) from (select * from stable_1 where loc = 'table_0');'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
sql = '''select * from regular_table_1 ;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6*self.num)
|
||||
sql = '''select last_row(*) from (select * from regular_table_1);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0,1,self.num-1)
|
||||
|
||||
|
||||
sql = '''select last_row(*) from
|
||||
((select * from table_0) union all
|
||||
(select * from table_1) union all
|
||||
(select * from table_2));'''
|
||||
tdSql.error(sql)
|
||||
|
||||
tdLog.info("========== operator=16(OP_DummyInput) ==========")
|
||||
sql = '''select last_row(*) from
|
||||
((select last_row(*) from table_0) union all
|
||||
(select last_row(*) from table_1) union all
|
||||
(select last_row(*) from table_2));'''
|
||||
tdSql.error(sql)
|
||||
|
||||
sql = '''select last_row(*) from
|
||||
((select * from table_0 limit 5 offset 5) union all
|
||||
(select * from table_1 limit 5 offset 5) union all
|
||||
(select * from regular_table_1 limit 5 offset 5));'''
|
||||
tdSql.error(sql)
|
||||
|
||||
tdLog.info("========== operator=10(OP_SLimit) ==========")
|
||||
sql = '''select count(*) from stable_1 group by loc slimit 3 soffset 2 ;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(3)
|
||||
|
||||
sql = '''select last_row(*) from
|
||||
((select * from table_0) union all
|
||||
(select * from table_1) union all
|
||||
(select * from table_2));'''
|
||||
tdSql.error(sql)
|
||||
|
||||
tdLog.info("========== operator=20(OP_Distinct) ==========")
|
||||
tdLog.info("========== operator=4(OP_TagScan) ==========")
|
||||
sql = '''select distinct(t_bool) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(2)
|
||||
sql = '''select distinct(loc) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_int) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_bigint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_smallint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_tinyint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_nchar) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_float) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_double) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
sql = '''select distinct(t_ts) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(3)
|
||||
sql = '''select distinct(tbname) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
|
||||
tdLog.info("========== operator=2(OP_DataBlocksOptScan) ==========")
|
||||
sql = '''select last(q_int),first(q_int) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_bigint),first(q_bigint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_smallint),first(q_smallint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_tinyint),first(q_tinyint) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_bool),first(q_bool) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_binary),first(q_binary) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_nchar),first(q_nchar) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_float),first(q_float) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_double),first(q_double) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_ts),first(q_ts) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_int),last(q_bigint), last(q_smallint),last(q_tinyint),last(q_bool),last(q_binary),last(q_nchar),
|
||||
last(q_float),last(q_double),last(q_ts),first(q_int),first(q_bigint),first(q_smallint),first(q_tinyint),
|
||||
first(q_bool),first(q_binary),first(q_nchar),first(q_float),first(q_float),first(q_double),first(q_ts) from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_int),last(q_bigint), last(q_smallint),last(q_tinyint),last(q_bool),last(q_binary),last(q_nchar),
|
||||
last(q_float),last(q_double),last(q_ts),first(q_int),first(q_bigint),first(q_smallint),first(q_tinyint),first(q_bool),
|
||||
first(q_binary),first(q_nchar),first(q_float),first(q_float),first(q_double),first(q_ts) from regular_table_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdLog.info("========== operator=8(OP_Groupby) ==========")
|
||||
sql = '''select stddev(q_int) from table_0 group by q_int;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select stddev(q_int),stddev(q_bigint),stddev(q_smallint),stddev(q_tinyint),stddev(q_float),stddev(q_double) from stable_1 group by q_int;'''
|
||||
tdSql.query(sql)
|
||||
sql = '''select stddev(q_int),stddev(q_bigint),stddev(q_smallint),stddev(q_tinyint),stddev(q_float),stddev(q_double) from table_1 group by q_bigint;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select stddev(q_int),stddev(q_bigint),stddev(q_smallint),stddev(q_tinyint),stddev(q_float),stddev(q_double) from regular_table_1 group by q_smallint;'''
|
||||
tdSql.query(sql)
|
||||
|
||||
tdLog.info("========== operator=11(OP_TimeWindow) ==========")
|
||||
sql = '''select last(q_int) from table_0 interval(1m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_int),last(q_bigint), last(q_smallint),last(q_tinyint),
|
||||
first(q_int),first(q_bigint),first(q_smallint),first(q_tinyint) from table_1 interval(1m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_int),last(q_bigint), last(q_smallint),last(q_tinyint),
|
||||
first(q_int),first(q_bigint),first(q_smallint),first(q_tinyint) from stable_1 interval(1m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select last(q_int),last(q_bigint), last(q_smallint),last(q_tinyint),
|
||||
first(q_int),first(q_bigint),first(q_smallint),first(q_tinyint) from regular_table_1 interval(1m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdLog.info("========== operator=12(OP_SessionWindow) ==========")
|
||||
sql = '''select count(*) from table_1 session(ts,1s);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select count(*) from regular_table_1 session(ts,1s);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select count(*),sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from table_1 session(ts,1s);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select count(*),sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from regular_table_1 session(ts,1s);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdLog.info("========== operator=13(OP_Fill) ==========")
|
||||
sql = '''select sum(q_int) from table_0
|
||||
where ts >='1970-10-01 00:00:00' and ts <=now interval(1n) fill(NULL);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,'None')
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 where ts >='1970-10-01 00:00:00' and ts <=now interval(1n) fill(NULL);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,'None')
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from regular_table_1 where ts >='1970-10-01 00:00:00' and ts <=now interval(1n) fill(NULL);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,'None')
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from table_0 where ts >='1970-10-01 00:00:00' and ts <=now interval(1n) fill(NULL);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,'None')
|
||||
#TD-5190
|
||||
sql = '''select sum(q_tinyint),stddev(q_float) from stable_1
|
||||
where ts >='1970-10-01 00:00:00' and ts <=now interval(1n) fill(NULL);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,1,'None')
|
||||
|
||||
tdLog.info("========== operator=15(OP_MultiTableTimeInterval) ==========")
|
||||
sql = '''select avg(q_int) from stable_1 where ts<now interval(10m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from table_1 where ts<now interval(10m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 where ts<now interval(10m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from regular_table_1 where ts<now interval(10m);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdLog.info("========== operator=3(OP_TableSeqScan) ==========")
|
||||
tdLog.info("========== operator=6(OP_Aggregate) ==========")
|
||||
sql = '''select * from table_1,table_2
|
||||
where table_1.ts = table_2.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
#TD-5206
|
||||
sql = '''select * from stable_1,stable_2
|
||||
where stable_1.t_nchar = stable_2.t_nchar and stable_1.ts = stable_2.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
#TD-5139
|
||||
sql = '''select * from table_1,regular_table_1
|
||||
where table_1.ts = regular_table_1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
|
||||
tdLog.info("========== operator=5(OP_TableBlockInfoScan) ==========")
|
||||
sql = '''select _block_dist() from stable_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select _block_dist() from table_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
sql = '''select _block_dist() from regular_table_1;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdLog.info("========== operator=17(OP_MultiwayMergeSort) ==========")
|
||||
tdLog.info("========== operator=18(OP_GlobalAggregate) ==========")
|
||||
tdLog.info("========== operator=19(OP_Filter) ==========")
|
||||
sql = '''select loc,sum(q_int) from stable_1
|
||||
group by loc having sum(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having sum(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having avg(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having min(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having max(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having first(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
sql = '''select loc, sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from stable_1 group by loc having last(q_int)>=0;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkData(0,0,'table_0')
|
||||
|
||||
tdLog.info("========== operator=21(OP_Join) ==========")
|
||||
sql = '''select t1.q_int,t2.q_int from
|
||||
(select ts,q_int from table_1) t1 , (select ts,q_int from table_2) t2
|
||||
where t2.ts = t1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select t1.*,t2.* from
|
||||
(select * from table_1) t1 , (select * from table_2) t2
|
||||
where t2.ts = t1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select t1.*,t2.* from
|
||||
(select * from regular_table_1) t1 , (select * from table_0) t2
|
||||
where t2.ts = t1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select t1.*,t2.* from
|
||||
(select * from stable_1) t1 , (select * from table_2) t2
|
||||
where t2.ts = t1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select t1.*,t2.* from
|
||||
(select * from regular_table_1) t1 , (select * from stable_1) t2
|
||||
where t2.ts = t1.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select t1.*,t2.*,t3.* from
|
||||
(select * from regular_table_1) t1 , (select * from stable_1) t2, (select * from table_0) t3
|
||||
where t2.ts = t1.ts and t3.ts = t1.ts and t2.ts = t3.ts;'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
|
||||
tdLog.info("========== operator=22(OP_StateWindow) ==========")
|
||||
sql = '''select avg(q_int),sum(q_smallint) from table_1 state_window(q_int);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from table_1 state_window(q_bigint);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(self.num)
|
||||
sql = '''select sum(q_int), avg(q_int), min(q_int), max(q_int), first(q_int), last(q_int),
|
||||
sum(q_bigint), avg(q_bigint), min(q_bigint), max(q_bigint), first(q_bigint), last(q_bigint),
|
||||
sum(q_smallint), avg(q_smallint), min(q_smallint), max(q_smallint), first(q_smallint), last(q_smallint),
|
||||
sum(q_tinyint), avg(q_tinyint), min(q_tinyint), max(q_tinyint), first(q_tinyint), last(q_tinyint),
|
||||
sum(q_float), avg(q_float), min(q_float), max(q_float), first(q_float), last(q_float),
|
||||
sum(q_double), avg(q_double), min(q_double), max(q_double), first(q_double), last(q_double)
|
||||
from regular_table_1 state_window(q_smallint);'''
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(6*self.num)
|
||||
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -0,0 +1,703 @@
|
|||
###################################################################
|
||||
# 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 random
|
||||
import string
|
||||
import os
|
||||
import time
|
||||
from util.log import tdLog
|
||||
from util.cases import tdCases
|
||||
from util.sql import tdSql
|
||||
from util.dnodes import tdDnodes
|
||||
|
||||
class TDTestCase:
|
||||
updatecfgDict={'maxSQLLength':1048576}
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
self.ts = 1538548685000
|
||||
self.num = 100
|
||||
|
||||
def get_random_string(self, length):
|
||||
letters = string.ascii_lowercase
|
||||
result_str = ''.join(random.choice(letters) for i in range(length))
|
||||
return result_str
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
# test case for https://jira.taosdata.com:18080/browse/TD-5213
|
||||
|
||||
print("==============step1, regular table, 1 ts + 4094 cols + 1 binary==============")
|
||||
startTime = time.time()
|
||||
sql = "create table regular_table_1(ts timestamp, "
|
||||
for i in range(4094):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
sql += "col4095 binary(22))"
|
||||
tdLog.info(len(sql))
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_1 values(%d, "
|
||||
for j in range(4094):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_1")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from regular_table_1")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
||||
#insert in order
|
||||
tdLog.info('test insert in order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_1 (ts,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col4095) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 1000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_1")
|
||||
tdSql.checkData(0, 0, 2*self.num)
|
||||
tdSql.query("select * from regular_table_1")
|
||||
tdSql.checkRows(2*self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
#insert out of order
|
||||
tdLog.info('test insert out of order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_1 (ts,col123,col2213,col331,col41,col523,col236,col71,col813,col912,col1320,col4095) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 2000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_1")
|
||||
tdSql.checkData(0, 0, 3*self.num)
|
||||
tdSql.query("select * from regular_table_1")
|
||||
tdSql.checkRows(3*self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
|
||||
print("==============step2,regular table error col or value==============")
|
||||
tdLog.info('test regular table exceeds row num')
|
||||
# column > 4096
|
||||
sql = "create table regular_table_2(ts timestamp, "
|
||||
for i in range(4095):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
sql += "col4096 binary(22))"
|
||||
tdLog.info(len(sql))
|
||||
tdSql.error(sql)
|
||||
|
||||
# column > 4096
|
||||
sql = "insert into regular_table_1 values(%d, "
|
||||
for j in range(4095):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.error(sql)
|
||||
|
||||
# insert column < 4096
|
||||
sql = "insert into regular_table_1 values(%d, "
|
||||
for j in range(4092):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.error(sql)
|
||||
|
||||
# alter column > 4096
|
||||
sql = "alter table regular_table_1 add column max int; "
|
||||
tdSql.error(sql)
|
||||
|
||||
print("==============step3,regular table , mix data type==============")
|
||||
startTime = time.time()
|
||||
sql = "create table regular_table_3(ts timestamp, "
|
||||
for i in range(2000):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
for i in range(2000,4094):
|
||||
sql += "col%d bigint, " % (i + 1)
|
||||
sql += "col4095 binary(22))"
|
||||
tdLog.info(len(sql))
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_3 values(%d, "
|
||||
for j in range(4094):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_3")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from regular_table_3")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
||||
sql = "create table regular_table_4(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(4), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(10), " % (i + 1)
|
||||
for i in range(4090,4094):
|
||||
sql += "timestamp_%d timestamp, " % (i + 1)
|
||||
sql += "col4095 binary(22))"
|
||||
tdLog.info(len(sql))
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_4 values(%d, "
|
||||
for j in range(500):
|
||||
str = "'%s', " % random.randint(-2147483647,2147483647)
|
||||
sql += str
|
||||
for j in range(500,1000):
|
||||
str = "'%s', " % random.randint(-32767,32767 )
|
||||
sql += str
|
||||
for j in range(1000,1500):
|
||||
str = "'%s', " % random.randint(-127,127)
|
||||
sql += str
|
||||
for j in range(1500,2000):
|
||||
str = "'%s', " % random.randint(-922337203685477580700,922337203685477580700)
|
||||
sql += str
|
||||
for j in range(2000,2500):
|
||||
str = "'%s', " % random.randint(-92233720368547758070,92233720368547758070)
|
||||
sql += str
|
||||
for j in range(2500,3000):
|
||||
str = "'%s', " % random.choice(['true','false'])
|
||||
sql += str
|
||||
for j in range(3000,3500):
|
||||
str = "'%s', " % random.randint(-9223372036854775807,9223372036854775807)
|
||||
sql += str
|
||||
for j in range(3500,3800):
|
||||
str = "'%s', " % self.get_random_string(4)
|
||||
sql += str
|
||||
for j in range(3800,4090):
|
||||
str = "'%s', " % self.get_random_string(10)
|
||||
sql += str
|
||||
for j in range(4090,4094):
|
||||
str = "%s, " % (self.ts + j)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_4")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from regular_table_4")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4096)
|
||||
tdLog.info("end ,now new one")
|
||||
|
||||
#insert null value
|
||||
tdLog.info('test insert null value')
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_4 values(%d, "
|
||||
for j in range(2500):
|
||||
str = "'%s', " % random.choice(['NULL' ,'NULL' ,'NULL' ,1 , 10 ,100 ,-100 ,-10, 88 ,66 ,'NULL' ,'NULL' ,'NULL' ])
|
||||
sql += str
|
||||
for j in range(2500,3000):
|
||||
str = "'%s', " % random.choice(['true' ,'false'])
|
||||
sql += str
|
||||
for j in range(3000,3500):
|
||||
str = "'%s', " % random.randint(-9223372036854775807,9223372036854775807)
|
||||
sql += str
|
||||
for j in range(3500,3800):
|
||||
str = "'%s', " % self.get_random_string(4)
|
||||
sql += str
|
||||
for j in range(3800,4090):
|
||||
str = "'%s', " % self.get_random_string(10)
|
||||
sql += str
|
||||
for j in range(4090,4094):
|
||||
str = "%s, " % (self.ts + j)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 10000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_4")
|
||||
tdSql.checkData(0, 0, 2*self.num)
|
||||
tdSql.query("select * from regular_table_4")
|
||||
tdSql.checkRows(2*self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
#insert in order
|
||||
tdLog.info('test insert in order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_4 (ts,int_2,int_22,int_169,smallint_537,smallint_607,tinyint_1030,tinyint_1491,double_1629,double_1808,float_2075,col4095) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,100)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 1000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_4")
|
||||
tdSql.checkData(0, 0, 3*self.num)
|
||||
tdSql.query("select * from regular_table_4")
|
||||
tdSql.checkRows(3*self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
#insert out of order
|
||||
tdLog.info('test insert out of order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into regular_table_4 (ts,int_169,float_2075,int_369,tinyint_1491,tinyint_1030,float_2360,smallint_537,double_1808,double_1608,double_1629,col4095) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,100)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 2000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from regular_table_4")
|
||||
tdSql.checkData(0, 0, 4*self.num)
|
||||
tdSql.query("select * from regular_table_4")
|
||||
tdSql.checkRows(4*self.num)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
#define TSDB_MAX_BYTES_PER_ROW 49151[old:1024 && 16384]
|
||||
#ts:8\int:4\smallint:2\bigint:8\bool:1\float:4\tinyint:1\nchar:4*()+2[offset]\binary:1*()+2[offset]
|
||||
tdLog.info('test regular_table max bytes per row 49151')
|
||||
sql = "create table regular_table_5(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(20), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(34), " % (i + 1)
|
||||
for i in range(4090,4094):
|
||||
sql += "timestamp_%d timestamp, " % (i + 1)
|
||||
sql += "col4095 binary(69))"
|
||||
tdSql.execute(sql)
|
||||
tdSql.query("select * from regular_table_5")
|
||||
tdSql.checkCols(4096)
|
||||
# TD-5324
|
||||
sql = "alter table regular_table_5 modify column col4095 binary(70); "
|
||||
tdSql.error(sql)
|
||||
|
||||
# drop and add
|
||||
sql = "alter table regular_table_5 drop column col4095; "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from regular_table_5; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4095)
|
||||
sql = "alter table regular_table_5 add column col4095 binary(70); "
|
||||
tdSql.error(sql)
|
||||
sql = "alter table regular_table_5 add column col4095 binary(69); "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from regular_table_5; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
#out TSDB_MAX_BYTES_PER_ROW 49151
|
||||
tdLog.info('test regular_table max bytes per row out 49151')
|
||||
sql = "create table regular_table_6(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(20), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(34), " % (i + 1)
|
||||
for i in range(4090,4094):
|
||||
sql += "timestamp_%d timestamp, " % (i + 1)
|
||||
sql += "col4095 binary(70))"
|
||||
tdLog.info(len(sql))
|
||||
tdSql.error(sql)
|
||||
|
||||
|
||||
print("==============step4, super table , 1 ts + 4090 cols + 4 tags ==============")
|
||||
startTime = time.time()
|
||||
sql = "create stable stable_1(ts timestamp, "
|
||||
for i in range(4090):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
sql += "col4091 binary(22))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
|
||||
tdLog.info(len(sql))
|
||||
tdSql.execute(sql)
|
||||
sql = '''create table table_0 using stable_1
|
||||
tags('table_0' , '1' , '2' , '3' );'''
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_0 values(%d, "
|
||||
for j in range(4090):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_0")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from table_0")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
sql = '''create table table_1 using stable_1
|
||||
tags('table_1' , '1' , '2' , '3' );'''
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_1 values(%d, "
|
||||
for j in range(2080):
|
||||
sql += "'%d', " % random.randint(0,1000)
|
||||
for j in range(2080,4080):
|
||||
sql += "'%s', " % 'NULL'
|
||||
for j in range(4080,4090):
|
||||
sql += "'%s', " % random.randint(0,10000)
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_1")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from table_1")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
||||
#insert in order
|
||||
tdLog.info('test insert in order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_1 (ts,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col4091) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 1000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_1")
|
||||
tdSql.checkData(0, 0, 2*self.num)
|
||||
tdSql.query("select * from table_1")
|
||||
tdSql.checkRows(2*self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
#insert out of order
|
||||
tdLog.info('test insert out of order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_1 (ts,col123,col2213,col331,col41,col523,col236,col71,col813,col912,col1320,col4091) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,1000)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 2000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_1")
|
||||
tdSql.checkData(0, 0, 3*self.num)
|
||||
tdSql.query("select * from table_1")
|
||||
tdSql.checkRows(3*self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
print("==============step5,stable table , mix data type==============")
|
||||
sql = "create stable stable_3(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(4), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(10), " % (i + 1)
|
||||
sql += "col4091 binary(22))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
|
||||
tdLog.info(len(sql))
|
||||
tdSql.execute(sql)
|
||||
sql = '''create table table_30 using stable_3
|
||||
tags('table_30' , '1' , '2' , '3' );'''
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_30 values(%d, "
|
||||
for j in range(500):
|
||||
str = "'%s', " % random.randint(-2147483647,2147483647)
|
||||
sql += str
|
||||
for j in range(500,1000):
|
||||
str = "'%s', " % random.randint(-32767,32767 )
|
||||
sql += str
|
||||
for j in range(1000,1500):
|
||||
str = "'%s', " % random.randint(-127,127)
|
||||
sql += str
|
||||
for j in range(1500,2000):
|
||||
str = "'%s', " % random.randint(-922337203685477580700,922337203685477580700)
|
||||
sql += str
|
||||
for j in range(2000,2500):
|
||||
str = "'%s', " % random.randint(-92233720368547758070,92233720368547758070)
|
||||
sql += str
|
||||
for j in range(2500,3000):
|
||||
str = "'%s', " % random.choice(['true','false'])
|
||||
sql += str
|
||||
for j in range(3000,3500):
|
||||
str = "'%s', " % random.randint(-9223372036854775807,9223372036854775807)
|
||||
sql += str
|
||||
for j in range(3500,3800):
|
||||
str = "'%s', " % self.get_random_string(4)
|
||||
sql += str
|
||||
for j in range(3800,4090):
|
||||
str = "'%s', " % self.get_random_string(10)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_30")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from table_30")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
#insert null value
|
||||
tdLog.info('test insert null value')
|
||||
sql = '''create table table_31 using stable_3
|
||||
tags('table_31' , '1' , '2' , '3' );'''
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_31 values(%d, "
|
||||
for j in range(2500):
|
||||
str = "'%s', " % random.choice(['NULL' ,'NULL' ,'NULL' ,1 , 10 ,100 ,-100 ,-10, 88 ,66 ,'NULL' ,'NULL' ,'NULL' ])
|
||||
sql += str
|
||||
for j in range(2500,3000):
|
||||
str = "'%s', " % random.choice(['true' ,'false'])
|
||||
sql += str
|
||||
for j in range(3000,3500):
|
||||
str = "'%s', " % random.randint(-9223372036854775807,9223372036854775807)
|
||||
sql += str
|
||||
for j in range(3500,3800):
|
||||
str = "'%s', " % self.get_random_string(4)
|
||||
sql += str
|
||||
for j in range(3800,4090):
|
||||
str = "'%s', " % self.get_random_string(10)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_31")
|
||||
tdSql.checkData(0, 0, self.num)
|
||||
tdSql.query("select * from table_31")
|
||||
tdSql.checkRows(self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
#insert in order
|
||||
tdLog.info('test insert in order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_31 (ts,int_2,int_22,int_169,smallint_537,smallint_607,tinyint_1030,tinyint_1491,double_1629,double_1808,float_2075,col4091) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,100)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 1000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_31")
|
||||
tdSql.checkData(0, 0, 2*self.num)
|
||||
tdSql.query("select * from table_31")
|
||||
tdSql.checkRows(2*self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
#insert out of order
|
||||
tdLog.info('test insert out of order')
|
||||
for i in range(self.num):
|
||||
sql = "insert into table_31 (ts,int_169,float_2075,int_369,tinyint_1491,tinyint_1030,float_2360,smallint_537,double_1808,double_1608,double_1629,col4091) values(%d, "
|
||||
for j in range(10):
|
||||
str = "'%s', " % random.randint(0,100)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i + 2000))
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from table_31")
|
||||
tdSql.checkData(0, 0, 3*self.num)
|
||||
tdSql.query("select * from table_31")
|
||||
tdSql.checkRows(3*self.num)
|
||||
tdSql.checkCols(4092)
|
||||
|
||||
#define TSDB_MAX_BYTES_PER_ROW 49151 TSDB_MAX_TAGS_LEN 16384
|
||||
#ts:8\int:4\smallint:2\bigint:8\bool:1\float:4\tinyint:1\nchar:4*()+2[offset]\binary:1*()+2[offset]
|
||||
tdLog.info('test super table max bytes per row 49151')
|
||||
sql = "create table stable_4(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(20), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(34), " % (i + 1)
|
||||
sql += "col4091 binary(101))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
|
||||
tdSql.execute(sql)
|
||||
sql = '''create table table_40 using stable_4
|
||||
tags('table_40' , '1' , '2' , '3' );'''
|
||||
tdSql.execute(sql)
|
||||
tdSql.query("select * from table_40")
|
||||
tdSql.checkCols(4092)
|
||||
tdSql.query("describe table_40")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
tdLog.info('test super table drop and add column or tag')
|
||||
sql = "alter stable stable_4 drop column col4091; "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from stable_4; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4095)
|
||||
sql = "alter table stable_4 add column col4091 binary(102); "
|
||||
tdSql.error(sql)
|
||||
sql = "alter table stable_4 add column col4091 binary(101); "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from stable_4; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4096)
|
||||
|
||||
sql = "alter stable stable_4 drop tag tag_1; "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from stable_4; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4095)
|
||||
sql = "alter table stable_4 add tag tag_1 int; "
|
||||
tdSql.execute(sql)
|
||||
sql = "select * from stable_4; "
|
||||
tdSql.query(sql)
|
||||
tdSql.checkCols(4096)
|
||||
sql = "alter table stable_4 add tag loc1 nchar(10); "
|
||||
tdSql.error(sql)
|
||||
|
||||
tdLog.info('test super table max bytes per row 49151')
|
||||
sql = "create table stable_5(ts timestamp, "
|
||||
for i in range(500):
|
||||
sql += "int_%d int, " % (i + 1)
|
||||
for i in range(500,1000):
|
||||
sql += "smallint_%d smallint, " % (i + 1)
|
||||
for i in range(1000,1500):
|
||||
sql += "tinyint_%d tinyint, " % (i + 1)
|
||||
for i in range(1500,2000):
|
||||
sql += "double_%d double, " % (i + 1)
|
||||
for i in range(2000,2500):
|
||||
sql += "float_%d float, " % (i + 1)
|
||||
for i in range(2500,3000):
|
||||
sql += "bool_%d bool, " % (i + 1)
|
||||
for i in range(3000,3500):
|
||||
sql += "bigint_%d bigint, " % (i + 1)
|
||||
for i in range(3500,3800):
|
||||
sql += "nchar_%d nchar(20), " % (i + 1)
|
||||
for i in range(3800,4090):
|
||||
sql += "binary_%d binary(34), " % (i + 1)
|
||||
sql += "col4091 binary(102))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
|
||||
tdSql.error(sql)
|
||||
|
||||
print("==============step6, super table error col ==============")
|
||||
tdLog.info('test exceeds row num')
|
||||
# column + tag > 4096
|
||||
sql = "create stable stable_2(ts timestamp, "
|
||||
for i in range(4091):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
sql += "col4092 binary(22))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
|
||||
tdLog.info(len(sql))
|
||||
tdSql.error(sql)
|
||||
|
||||
# column + tag > 4096
|
||||
sql = "create stable stable_2(ts timestamp, "
|
||||
for i in range(4090):
|
||||
sql += "col%d int, " % (i + 1)
|
||||
sql += "col4091 binary(22))"
|
||||
sql += " tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int,tag_4 int) "
|
||||
tdLog.info(len(sql))
|
||||
tdSql.error(sql)
|
||||
|
||||
# alter column + tag > 4096
|
||||
sql = "alter table stable_1 add column max int; "
|
||||
tdSql.error(sql)
|
||||
# TD-5322
|
||||
sql = "alter table stable_1 add tag max int; "
|
||||
tdSql.error(sql)
|
||||
# TD-5324
|
||||
sql = "alter table stable_4 modify column col4091 binary(102); "
|
||||
tdSql.error(sql)
|
||||
sql = "alter table stable_4 modify tag loc nchar(20); "
|
||||
tdSql.query("select * from table_40")
|
||||
tdSql.checkCols(4092)
|
||||
tdSql.query("describe table_40")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
os.system("rm -rf tools/taosdemoAllTest/TD-5213/insert4096columns_not_use_taosdemo.py.sql")
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
File diff suppressed because one or more lines are too long
|
@ -15,7 +15,7 @@
|
|||
"max_sql_len": 102400000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"name": "json",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
|
@ -35,13 +35,13 @@
|
|||
"super_tables": [{
|
||||
"name": "stb_old",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb_old_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 5,
|
||||
"data_source": "sample",
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 100,
|
||||
"insert_rows": 10,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -55,18 +55,18 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT","count":4000}, {"type": "BINARY", "len": 16, "count":1}],
|
||||
"columns": [{"type": "INT","count":1000}, {"type": "BINARY", "len": 16, "count":20}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
},{
|
||||
"name": "stb_new",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb_new_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 5,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 100,
|
||||
"insert_rows": 10,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -80,18 +80,18 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./tools/taosdemoAllTest/sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "DOUBLE","count":1020}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
"columns": [{"type": "INT","count":4000}, {"type": "BINARY", "len": 16, "count":90}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":3}]
|
||||
},{
|
||||
"name": "stb_int",
|
||||
"name": "stb_mix",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb_int_",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb_mix_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 5,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 100,
|
||||
"insert_rows": 10,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -105,8 +105,33 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./tools/taosdemoAllTest/sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "int","count":1020}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
"columns": [{"type": "INT","count":500},{"type": "SMALLINT","count":500},{"type": "TINYINT","count":500},{"type": "DOUBLE","count":500},{"type": "FLOAT","count":500},{"type": "BOOL","count":500},{"type": "BIGINT","count":500},{"type": "NCHAR","len": 20,"count":300},{"type": "BINARY","len": 34,"count":290},{"type": "BINARY","len": 101,"count":1}],
|
||||
"tags": [{"type": "INT", "count":3}, {"type": "NCHAR", "len": 10, "count":1}]
|
||||
},{
|
||||
"name": "stb_excel",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb_excel_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 5,
|
||||
"data_source": "sample",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 10,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT","count":500},{"type": "SMALLINT","count":500},{"type": "SMALLINT","count":500},{"type": "DOUBLE","count":500},{"type": "FLOAT","count":500},{"type": "BOOL","count":500},{"type": "BIGINT","count":500},{"type": "NCHAR","len": 19,"count":300},{"type": "BINARY","len": 34,"count":290},{"type": "BINARY","len": 101,"count":1}],
|
||||
"tags": [{"type": "INT", "count":3}, {"type": "NCHAR", "len": 10, "count":1}]
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
|
@ -48,83 +49,121 @@ class TDTestCase:
|
|||
tdLog.info("taosd found in %s" % buildPath)
|
||||
binPath = buildPath+ "/build/bin/"
|
||||
|
||||
#-N:regular table -d:database name -t:table num -n:rows num per table -l:col num -y:force
|
||||
#regular old && new
|
||||
startTime = time.time()
|
||||
os.system("%staosdemo -N -d regular_old -t 1 -n 10 -l 1023 -y" % binPath)
|
||||
tdSql.execute("use regular_old")
|
||||
tdSql.query("show tables;")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from d0;")
|
||||
tdSql.checkCols(1024)
|
||||
tdSql.query("describe d0;")
|
||||
tdSql.checkRows(1024)
|
||||
|
||||
os.system("%staosdemo -N -d regular_new -t 1 -n 10 -l 4095 -y" % binPath)
|
||||
tdSql.execute("use regular_new")
|
||||
tdSql.query("show tables;")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from d0;")
|
||||
tdSql.checkCols(4096)
|
||||
tdSql.query("describe d0;")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
#super table -d:database name -t:table num -n:rows num per table -l:col num -y:force
|
||||
os.system("%staosdemo -d super_old -t 1 -n 10 -l 1021 -y" % binPath)
|
||||
tdSql.execute("use super_old")
|
||||
tdSql.query("show tables;")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from meters;")
|
||||
tdSql.checkCols(1024)
|
||||
tdSql.query("select * from d0;")
|
||||
tdSql.checkCols(1022)
|
||||
tdSql.query("describe meters;")
|
||||
tdSql.checkRows(1024)
|
||||
tdSql.query("describe d0;")
|
||||
tdSql.checkRows(1024)
|
||||
|
||||
os.system("%staosdemo -d super_new -t 1 -n 10 -l 4093 -y" % binPath)
|
||||
tdSql.execute("use super_new")
|
||||
tdSql.query("show tables;")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from meters;")
|
||||
tdSql.checkCols(4096)
|
||||
tdSql.query("select * from d0;")
|
||||
tdSql.checkCols(4094)
|
||||
tdSql.query("describe meters;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.query("describe d0;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.execute("create table stb_new1_1 using meters tags(1,2)")
|
||||
tdSql.query("select * from stb_new1_1")
|
||||
tdSql.checkCols(4094)
|
||||
tdSql.query("describe stb_new1_1;")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
# insert: create one or mutiple tables per sql and insert multiple rows per sql
|
||||
# test case for https://jira.taosdata.com:18080/browse/TD-5213
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.json -y " % binPath)
|
||||
tdSql.execute("use db")
|
||||
tdSql.execute("use json")
|
||||
tdSql.query("select count (tbname) from stb_old")
|
||||
tdSql.checkData(0, 0, 10)
|
||||
tdSql.checkData(0, 0, 1)
|
||||
|
||||
# tdSql.query("select * from stb_old")
|
||||
# tdSql.checkRows(10)
|
||||
# tdSql.checkCols(1024)
|
||||
tdSql.query("select * from stb_old")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(1024)
|
||||
|
||||
# tdSql.query("select count (tbname) from stb_new")
|
||||
# tdSql.checkData(0, 0, 10)
|
||||
tdSql.query("select count (tbname) from stb_new")
|
||||
tdSql.checkData(0, 0, 1)
|
||||
|
||||
# tdSql.query("select * from stb_new")
|
||||
# tdSql.checkRows(10)
|
||||
# tdSql.checkCols(4096)
|
||||
tdSql.query("select * from stb_new")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4096)
|
||||
tdSql.query("describe stb_new;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.query("select * from stb_new_0")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4091)
|
||||
tdSql.query("describe stb_new_0;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.execute("create table stb_new1_1 using stb_new tags(1,2,3,4,5)")
|
||||
tdSql.query("select * from stb_new1_1")
|
||||
tdSql.checkCols(4091)
|
||||
tdSql.query("describe stb_new1_1;")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
# tdLog.info("stop dnode to commit data to disk")
|
||||
# tdDnodes.stop(1)
|
||||
# tdDnodes.start(1)
|
||||
tdSql.query("select count (tbname) from stb_mix")
|
||||
tdSql.checkData(0, 0, 1)
|
||||
|
||||
#regular table
|
||||
sql = "create table tb(ts timestamp, "
|
||||
for i in range(1022):
|
||||
sql += "c%d binary(14), " % (i + 1)
|
||||
sql += "c1023 binary(22))"
|
||||
tdSql.execute(sql)
|
||||
tdSql.query("select * from stb_mix")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4096)
|
||||
tdSql.query("describe stb_mix;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.query("select * from stb_mix_0")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4092)
|
||||
tdSql.query("describe stb_mix_0;")
|
||||
tdSql.checkRows(4096)
|
||||
|
||||
for i in range(4):
|
||||
sql = "insert into tb values(%d, "
|
||||
for j in range(1022):
|
||||
str = "'%s', " % self.get_random_string(14)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
tdSql.query("select count (tbname) from stb_excel")
|
||||
tdSql.checkData(0, 0, 1)
|
||||
|
||||
time.sleep(10)
|
||||
tdSql.query("select count(*) from tb")
|
||||
tdSql.checkData(0, 0, 4)
|
||||
|
||||
tdDnodes.stop(1)
|
||||
tdDnodes.start(1)
|
||||
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from tb")
|
||||
tdSql.checkData(0, 0, 4)
|
||||
tdSql.query("select * from stb_excel")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4096)
|
||||
tdSql.query("describe stb_excel;")
|
||||
tdSql.checkRows(4096)
|
||||
tdSql.query("select * from stb_excel_0")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkCols(4092)
|
||||
tdSql.query("describe stb_excel_0;")
|
||||
tdSql.checkRows(4096)
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
||||
|
||||
sql = "create table tb1(ts timestamp, "
|
||||
for i in range(4094):
|
||||
sql += "c%d binary(14), " % (i + 1)
|
||||
sql += "c4095 binary(22))"
|
||||
tdSql.execute(sql)
|
||||
|
||||
for i in range(4):
|
||||
sql = "insert into tb1 values(%d, "
|
||||
for j in range(4094):
|
||||
str = "'%s', " % self.get_random_string(14)
|
||||
sql += str
|
||||
sql += "'%s')" % self.get_random_string(22)
|
||||
tdSql.execute(sql % (self.ts + i))
|
||||
|
||||
time.sleep(10)
|
||||
tdSql.query("select count(*) from tb1")
|
||||
tdSql.checkData(0, 0, 4)
|
||||
|
||||
tdDnodes.stop(1)
|
||||
tdDnodes.start(1)
|
||||
|
||||
time.sleep(1)
|
||||
tdSql.query("select count(*) from tb1")
|
||||
tdSql.checkData(0, 0, 4)
|
||||
|
||||
|
||||
|
||||
#os.system("rm -rf tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py.sql")
|
||||
os.system("rm -rf tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py.sql")
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue