Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
df32ceff
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
df32ceff
编写于
5月 16, 2023
作者:
“
“happyguoxy”
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test: rowlength64k
上级
3b48d1aa
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
1261 addition
and
0 deletion
+1261
-0
tests/system-test/1-insert/rowlength64k.py
tests/system-test/1-insert/rowlength64k.py
+1261
-0
未找到文件。
tests/system-test/1-insert/rowlength64k.py
0 → 100755
浏览文件 @
df32ceff
###################################################################
# 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
os
import
time
import
taos
import
subprocess
import
string
from
faker
import
Faker
from
util.log
import
tdLog
from
util.cases
import
tdCases
from
util.sql
import
tdSql
from
util.dnodes
import
tdDnodes
from
util.dnodes
import
*
class
TDTestCase
:
updatecfgDict
=
{
'maxSQLLength'
:
1048576
,
'debugFlag'
:
143
,
"querySmaOptimize"
:
1
}
def
init
(
self
,
conn
,
logSql
,
replicaVar
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
self
.
testcasePath
=
os
.
path
.
split
(
__file__
)[
0
]
self
.
testcaseFilename
=
os
.
path
.
split
(
__file__
)[
-
1
]
os
.
system
(
"rm -rf %s/%s.sql"
%
(
self
.
testcasePath
,
self
.
testcaseFilename
))
now
=
time
.
time
()
self
.
ts
=
int
(
round
(
now
*
1000
))
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
ins_query
(
self
):
sql
=
'select * from information_schema.ins_tables where table_name match "table"'
tdSql
.
query
(
sql
)
self
.
stable_query
()
def
stable_query
(
self
):
# select * from stable_1 where loc match '[a-z]';
show_sql
=
"show db.stables;"
tdSql
.
query
(
show_sql
)
queryRows
=
len
(
tdSql
.
queryResult
)
for
i
in
range
(
queryRows
):
show_sql
=
"show db.stables;"
tdSql
.
query
(
show_sql
)
stable_name
=
tdSql
.
queryResult
[
i
][
0
]
stable_sql
=
"select * from db.%s where loc match '[a-z]'"
%
stable_name
tdSql
.
query
(
stable_sql
)
def
run
(
self
):
tdSql
.
prepare
()
startTime_all
=
time
.
time
()
print
(
"==============step8,stable table , mix data type=============="
)
sql
=
"create stable db.stable_16(ts timestamp, "
sql
+=
"col4090 int ,"
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc binary(16370),tag_1 int,tag_2 int,tag_3 int) "
tdLog
.
info
(
len
(
sql
))
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_160 using db.stable_16
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_160 values(%d, "
sql
+=
"'%d',"
%
i
sql
+=
"'%s')"
%
self
.
get_random_string
(
65517
)
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
time
.
sleep
(
1
)
tdSql
.
query
(
"select count(*) from db.table_160"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_160"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
3
)
self
.
ins_query
()
#insert null value
tdLog
.
info
(
'test insert null value'
)
sql
=
'''create table db.table_161 using db.stable_16
tags('table_61' , '1' , '2' , '3' );'''
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_161(ts) values(%d) "
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
time
.
sleep
(
1
)
tdSql
.
query
(
"select count(*) from db.table_161"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_161"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
3
)
#define TSDB_MAX_BYTES_PER_ROW 65531 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 65531'
)
sql
=
"create table db.stable_17(ts timestamp, "
sql
+=
"col4090 int,"
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc binary(16370),tag_1 int,tag_2 int,tag_3 int) "
#4*3+16370+2
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_170 using db.stable_17
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"select * from db.table_170"
)
tdSql
.
checkCols
(
3
)
tdSql
.
query
(
"describe db.table_170"
)
tdSql
.
checkRows
(
7
)
self
.
ins_query
()
tdLog
.
info
(
'test super table drop and add column or tag'
)
sql
=
"alter stable db.stable_17 drop column col4091; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_17 add column col4091 binary(65518); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_17 add column col4091 binary(65517); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
self
.
ins_query
()
sql
=
"alter stable db.stable_17 drop tag loc; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_17 add tag loc binary(16371); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_17 add tag loc binary(16370); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
sql
=
"alter stable db.stable_17 drop tag tag_1; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_17 add tag tag_1 int; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_17; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
sql
=
"alter table db.stable_17 add tag loc1 nchar(10); "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row 65531'
)
sql
=
"create table db.stable_18(ts timestamp, "
sql
+=
"col4091 binary(65518))"
sql
+=
" tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row tag 16384'
)
sql
=
"create table db.stable_18(ts timestamp, "
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc binary(16371),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
self
.
ins_query
()
print
(
"==============step9,stable table , mix data type=============="
)
sql
=
"create stable db.stable_26(ts timestamp, "
sql
+=
"col4090 int ,"
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc nchar(4092),tag_1 int,tag_2 int,tag_3 int) "
tdLog
.
info
(
len
(
sql
))
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_260 using db.stable_26
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
4092
)
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_260 values(%d, "
sql
+=
"'%d',"
%
i
sql
+=
"'%s')"
%
self
.
get_random_string
(
65517
)
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
time
.
sleep
(
1
)
tdSql
.
query
(
"select count(*) from db.table_260"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_260"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
3
)
self
.
ins_query
()
#insert null value
tdLog
.
info
(
'test insert null value'
)
sql
=
'''create table db.table_261 using db.stable_26
tags('table_261' , '1' , '2' , '3' );'''
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_261(ts) values(%d) "
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
time
.
sleep
(
1
)
tdSql
.
query
(
"select count(*) from db.table_261"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_261"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
3
)
#define TSDB_MAX_BYTES_PER_ROW 65531 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 65531'
)
sql
=
"create table db.stable_27(ts timestamp, "
sql
+=
"col4090 int,"
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc nchar(4092),tag_1 int,tag_2 int,tag_3 int) "
#4*3+16370+2
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_270 using db.stable_27
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
4092
)
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"select * from db.table_270"
)
tdSql
.
checkCols
(
3
)
tdSql
.
query
(
"describe db.table_270"
)
tdSql
.
checkRows
(
7
)
self
.
ins_query
()
tdLog
.
info
(
'test super table drop and add column or tag'
)
sql
=
"alter stable db.stable_27 drop column col4091; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_27 add column col4091 binary(65518); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_27 add column col4091 binary(65517); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
self
.
ins_query
()
sql
=
"alter stable db.stable_27 drop tag loc; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_27 add tag loc binary(16371); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_27 add tag loc binary(16370); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
sql
=
"alter stable db.stable_27 drop tag tag_1; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
6
)
sql
=
"alter table db.stable_27 add tag tag_1 int; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_27; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
7
)
sql
=
"alter table db.stable_27 add tag loc1 nchar(10); "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row 65531'
)
sql
=
"create table db.stable_28(ts timestamp, "
sql
+=
"col4091 binary(65518))"
sql
+=
" tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row tag 16384'
)
sql
=
"create table db.stable_28(ts timestamp, "
sql
+=
"col4091 binary(65517))"
sql
+=
" tags (loc binary(16371),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
self
.
ins_query
()
print
(
"==============step1, regular table, 1 ts + 4094 cols + 1 binary=============="
)
startTime
=
time
.
time
()
sql
=
"create table db.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 db.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 db.regular_table_1"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_1"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4096
)
self
.
ins_query
()
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 db.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 db.regular_table_1"
)
tdSql
.
checkData
(
0
,
0
,
2
*
self
.
num
)
tdSql
.
query
(
"select * from db.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 db.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 db.regular_table_1"
)
tdSql
.
checkData
(
0
,
0
,
3
*
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_1"
)
tdSql
.
checkRows
(
3
*
self
.
num
)
tdSql
.
checkCols
(
4096
)
self
.
ins_query
()
print
(
"==============step2,regular table error col or value=============="
)
tdLog
.
info
(
'test regular table exceeds row num'
)
# column > 4096
sql
=
"create table db.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
)
self
.
ins_query
()
# column > 4096
sql
=
"insert into db.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 db.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 db.regular_table_1 add column max int; "
tdSql
.
error
(
sql
)
self
.
ins_query
()
print
(
"==============step3,regular table , mix data type=============="
)
startTime
=
time
.
time
()
sql
=
"create table db.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 db.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 db.regular_table_3"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_3"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4096
)
self
.
ins_query
()
endTime
=
time
.
time
()
print
(
"total time %ds"
%
(
endTime
-
startTime
))
sql
=
"create table db.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
)
self
.
ins_query
()
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.regular_table_4"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_4"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4096
)
tdLog
.
info
(
"end ,now new one"
)
self
.
ins_query
()
#insert null value
tdLog
.
info
(
'test insert null value'
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.regular_table_4"
)
tdSql
.
checkData
(
0
,
0
,
2
*
self
.
num
)
tdSql
.
query
(
"select * from db.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 db.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 db.regular_table_4"
)
tdSql
.
checkData
(
0
,
0
,
3
*
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_4"
)
tdSql
.
checkRows
(
3
*
self
.
num
)
tdSql
.
checkCols
(
4096
)
self
.
ins_query
()
#insert out of order
tdLog
.
info
(
'test insert out of order'
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.regular_table_4"
)
tdSql
.
checkData
(
0
,
0
,
4
*
self
.
num
)
tdSql
.
query
(
"select * from db.regular_table_4"
)
tdSql
.
checkRows
(
4
*
self
.
num
)
tdSql
.
checkCols
(
4096
)
#define TSDB_MAX_BYTES_PER_ROW 49151[old:1024 && 16384]
# 3.0 old: tag binary max is 16384, col+ts binary max 49151
# 3.0 new: tag binary max is 16384-2, col+ts binary max 65531
#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 65531'
)
sql
=
"create table db.regular_table_5(ts timestamp, "
#1*8 sum=8
for
i
in
range
(
500
):
sql
+=
"int_%d int, "
%
(
i
+
1
)
#500*4=2000 sum=2008
for
i
in
range
(
500
,
1000
):
sql
+=
"smallint_%d smallint, "
%
(
i
+
1
)
#500*2=1000 sum=3008
for
i
in
range
(
1000
,
1500
):
sql
+=
"tinyint_%d tinyint, "
%
(
i
+
1
)
#500*1=500 sum=3508
for
i
in
range
(
1500
,
2000
):
sql
+=
"double_%d double, "
%
(
i
+
1
)
#500*8=4000 sum=7508
for
i
in
range
(
2000
,
2500
):
sql
+=
"float_%d float, "
%
(
i
+
1
)
#500*4=2000 sum=9508
for
i
in
range
(
2500
,
3000
):
sql
+=
"bool_%d bool, "
%
(
i
+
1
)
#500*1=500 sum=10008
for
i
in
range
(
3000
,
3500
):
sql
+=
"bigint_%d bigint, "
%
(
i
+
1
)
#500*8=4000 sum=14008
for
i
in
range
(
3500
,
3800
):
sql
+=
"nchar_%d nchar(32), "
%
(
i
+
1
)
#300*(32*4+2)=39000 sum=53008
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
#290*(40+2)=12180 sum=65188
for
i
in
range
(
4090
,
4094
):
sql
+=
"timestamp_%d timestamp, "
%
(
i
+
1
)
#4*8=32 sum=65220
sql
+=
"col4095 binary(309))"
#309+2=311 sum=65531
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"select * from db.regular_table_5"
)
tdSql
.
checkCols
(
4096
)
sql
=
"alter table db.regular_table_5 modify column col4095 binary(310); "
tdSql
.
error
(
sql
)
self
.
ins_query
()
# drop and add
sql
=
"alter table db.regular_table_5 drop column col4095; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.regular_table_5; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.regular_table_5 add column col4095 binary(310); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.regular_table_5 add column col4095 binary(309); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.regular_table_5; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
#out TSDB_MAX_BYTES_PER_ROW 65531
tdLog
.
info
(
'test regular_table max bytes per row out 65531'
)
sql
=
"create table db.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(32), "
%
(
i
+
1
)
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
for
i
in
range
(
4090
,
4094
):
sql
+=
"timestamp_%d timestamp, "
%
(
i
+
1
)
sql
+=
"col4095 binary(310))"
tdLog
.
info
(
len
(
sql
))
tdSql
.
error
(
sql
)
self
.
ins_query
()
print
(
"==============step4, super table , 1 ts + 4090 cols + 4 tags =============="
)
startTime
=
time
.
time
()
sql
=
"create stable db.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 db.table_0 using db.stable_1
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
10
)
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.table_0"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_0"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4092
)
sql
=
'''create table db.table_1 using db.stable_1
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
10
)
tdSql
.
execute
(
sql
)
self
.
ins_query
()
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.table_1"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.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 db.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 db.table_1"
)
tdSql
.
checkData
(
0
,
0
,
2
*
self
.
num
)
tdSql
.
query
(
"select * from db.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 db.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 db.table_1"
)
tdSql
.
checkData
(
0
,
0
,
3
*
self
.
num
)
tdSql
.
query
(
"select * from db.table_1"
)
tdSql
.
checkRows
(
3
*
self
.
num
)
tdSql
.
checkCols
(
4092
)
self
.
ins_query
()
print
(
"==============step5,stable table , mix data type=============="
)
sql
=
"create stable db.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 binary(16370),tag_1 int,tag_2 int,tag_3 int) "
tdLog
.
info
(
len
(
sql
))
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_30 using db.stable_3
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
self
.
ins_query
()
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.table_30"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_30"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4092
)
#insert null value
tdLog
.
info
(
'test insert null value'
)
sql
=
'''create table db.table_31 using db.stable_3
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.table_31"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_31"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4092
)
self
.
ins_query
()
#insert in order
tdLog
.
info
(
'test insert in order'
)
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.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 db.table_31"
)
tdSql
.
checkData
(
0
,
0
,
2
*
self
.
num
)
tdSql
.
query
(
"select * from db.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 db.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 db.table_31"
)
tdSql
.
checkData
(
0
,
0
,
3
*
self
.
num
)
tdSql
.
query
(
"select * from db.table_31"
)
tdSql
.
checkRows
(
3
*
self
.
num
)
tdSql
.
checkCols
(
4092
)
#define TSDB_MAX_BYTES_PER_ROW 65531 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 65531'
)
sql
=
"create table db.stable_4(ts timestamp, "
#1*8 sum=8
for
i
in
range
(
500
):
sql
+=
"int_%d int, "
%
(
i
+
1
)
#500*4=2000 sum=2008
for
i
in
range
(
500
,
1000
):
sql
+=
"smallint_%d smallint, "
%
(
i
+
1
)
#500*2=1000 sum=3008
for
i
in
range
(
1000
,
1500
):
sql
+=
"tinyint_%d tinyint, "
%
(
i
+
1
)
#500*1=500 sum=3508
for
i
in
range
(
1500
,
2000
):
sql
+=
"double_%d double, "
%
(
i
+
1
)
#500*8=4000 sum=7508
for
i
in
range
(
2000
,
2500
):
sql
+=
"float_%d float, "
%
(
i
+
1
)
#500*4=2000 sum=9508
for
i
in
range
(
2500
,
3000
):
sql
+=
"bool_%d bool, "
%
(
i
+
1
)
#500*1=500 sum=10008
for
i
in
range
(
3000
,
3500
):
sql
+=
"bigint_%d bigint, "
%
(
i
+
1
)
#500*8=4000 sum=14008
for
i
in
range
(
3500
,
3800
):
sql
+=
"nchar_%d nchar(32), "
%
(
i
+
1
)
#300*(32*4+2)=39000 sum=53008
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
#290*(40+2)=12180 sum=65188
sql
+=
"col4091 binary(341))"
#341+2=343 sum=65531
sql
+=
" tags (loc binary(16370),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_40 using db.stable_4
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"select * from db.table_40"
)
tdSql
.
checkCols
(
4092
)
tdSql
.
query
(
"describe db.table_40"
)
tdSql
.
checkRows
(
4096
)
tdLog
.
info
(
'test super table drop and add column or tag'
)
sql
=
"alter stable db.stable_4 drop column col4091; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_4; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.stable_4 add column col4091 binary(342); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_4 add column col4091 binary(341); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_4; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
self
.
ins_query
()
sql
=
"alter stable db.stable_4 drop tag tag_1; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_4; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.stable_4 add tag tag_1 int; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_4; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
sql
=
"alter table db.stable_4 add tag loc1 nchar(10); "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row 65531'
)
sql
=
"create table db.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(32), "
%
(
i
+
1
)
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
sql
+=
"col4091 binary(342))"
sql
+=
" tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
self
.
ins_query
()
print
(
"==============step6,stable table , mix data type=============="
)
sql
=
"create stable db.stable_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(4), "
%
(
i
+
1
)
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(10), "
%
(
i
+
1
)
sql
+=
"col4091 binary(22))"
sql
+=
" tags (loc binary(16370),tag_1 int,tag_2 int,tag_3 int) "
tdLog
.
info
(
len
(
sql
))
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_60 using db.stable_6
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
self
.
ins_query
()
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_60 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 db.table_60"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_60"
)
tdSql
.
checkRows
(
self
.
num
)
tdSql
.
checkCols
(
4092
)
#insert null value
tdLog
.
info
(
'test insert null value'
)
sql
=
'''create table db.table_61 using db.stable_6
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
self
.
ins_query
()
for
i
in
range
(
self
.
num
):
sql
=
"insert into db.table_61 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 db.table_61"
)
tdSql
.
checkData
(
0
,
0
,
self
.
num
)
tdSql
.
query
(
"select * from db.table_61"
)
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 db.table_61 (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 db.table_61"
)
tdSql
.
checkData
(
0
,
0
,
2
*
self
.
num
)
tdSql
.
query
(
"select * from db.table_61"
)
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 db.table_61 (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 db.table_61"
)
tdSql
.
checkData
(
0
,
0
,
3
*
self
.
num
)
tdSql
.
query
(
"select * from db.table_61"
)
tdSql
.
checkRows
(
3
*
self
.
num
)
tdSql
.
checkCols
(
4092
)
self
.
ins_query
()
#define TSDB_MAX_BYTES_PER_ROW 65531 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 65531'
)
sql
=
"create table db.stable_7(ts timestamp, "
#1*8 sum=8
for
i
in
range
(
500
):
sql
+=
"int_%d int, "
%
(
i
+
1
)
#500*4=2000 sum=2008
for
i
in
range
(
500
,
1000
):
sql
+=
"smallint_%d smallint, "
%
(
i
+
1
)
#500*2=1000 sum=3008
for
i
in
range
(
1000
,
1500
):
sql
+=
"tinyint_%d tinyint, "
%
(
i
+
1
)
#500*1=500 sum=3508
for
i
in
range
(
1500
,
2000
):
sql
+=
"double_%d double, "
%
(
i
+
1
)
#500*8=4000 sum=7508
for
i
in
range
(
2000
,
2500
):
sql
+=
"float_%d float, "
%
(
i
+
1
)
#500*4=2000 sum=9508
for
i
in
range
(
2500
,
3000
):
sql
+=
"bool_%d bool, "
%
(
i
+
1
)
#500*1=500 sum=10008
for
i
in
range
(
3000
,
3500
):
sql
+=
"bigint_%d bigint, "
%
(
i
+
1
)
#500*8=4000 sum=14008
for
i
in
range
(
3500
,
3800
):
sql
+=
"nchar_%d nchar(32), "
%
(
i
+
1
)
#300*(32*4+2)=39000 sum=53008
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
#290*(40+2)=12180 sum=65188
sql
+=
"col4091 binary(341))"
#341+2=343 sum=65531
sql
+=
" tags (loc binary(16370),tag_1 int,tag_2 int,tag_3 int) "
#4*3+16370+2
tdSql
.
execute
(
sql
)
sql
=
'''create table db.table_70 using db.stable_7
tags('%s' , '1' , '2' , '3' );'''
%
self
.
get_random_string
(
16370
)
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"select * from db.table_70"
)
tdSql
.
checkCols
(
4092
)
tdSql
.
query
(
"describe db.table_70"
)
tdSql
.
checkRows
(
4096
)
tdLog
.
info
(
'test super table drop and add column or tag'
)
sql
=
"alter stable db.stable_7 drop column col4091; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.stable_7 add column col4091 binary(342); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_7 add column col4091 binary(341); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
sql
=
"alter stable db.stable_7 drop tag loc; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.stable_7 add tag loc binary(16371); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_7 add tag loc binary(16370); "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
sql
=
"alter stable db.stable_7 drop tag tag_1; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4095
)
sql
=
"alter table db.stable_7 add tag tag_1 int; "
tdSql
.
execute
(
sql
)
sql
=
"select * from db.stable_7; "
tdSql
.
query
(
sql
)
tdSql
.
checkCols
(
4096
)
sql
=
"alter table db.stable_7 add tag loc1 nchar(10); "
tdSql
.
error
(
sql
)
self
.
ins_query
()
tdLog
.
info
(
'test super table max bytes per row 65531'
)
sql
=
"create table db.stable_8(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(32), "
%
(
i
+
1
)
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
sql
+=
"col4091 binary(342))"
sql
+=
" tags (loc nchar(10),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
tdLog
.
info
(
'test super table max bytes per row tag 16384'
)
sql
=
"create table db.stable_8(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(32), "
%
(
i
+
1
)
for
i
in
range
(
3800
,
4090
):
sql
+=
"binary_%d binary(40), "
%
(
i
+
1
)
sql
+=
"col4091 binary(341))"
sql
+=
" tags (loc binary(16371),tag_1 int,tag_2 int,tag_3 int) "
tdSql
.
error
(
sql
)
print
(
"==============step7, super table error col =============="
)
tdLog
.
info
(
'test exceeds row num'
)
# column + tag > 4096
sql
=
"create stable db.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
)
self
.
ins_query
()
# column + tag > 4096
sql
=
"create stable db.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 db.stable_1 add column max int; "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_1 add tag max int; "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_4 modify column col4091 binary(102); "
tdSql
.
error
(
sql
)
sql
=
"alter table db.stable_4 modify tag loc nchar(20); "
tdSql
.
query
(
"select * from db.table_40"
)
tdSql
.
checkCols
(
4092
)
tdSql
.
query
(
"describe db.table_40"
)
tdSql
.
checkRows
(
4096
)
self
.
ins_query
()
endTime_all
=
time
.
time
()
print
(
"total time %ds"
%
(
endTime_all
-
startTime_all
))
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录