Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
bdb79f54
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
未验证
提交
bdb79f54
编写于
7月 28, 2021
作者:
H
Hui Li
提交者:
GitHub
7月 28, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6961 from taosdata/test/TD-5213-d
Test/td 5213 d
上级
4e557730
9a3e6db6
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
1402 addition
and
104 deletion
+1402
-104
tests/pytest/fulltest.sh
tests/pytest/fulltest.sh
+2
-0
tests/pytest/query/operator.py
tests/pytest/query/operator.py
+536
-0
tests/pytest/tools/taosdemoAllTest/TD-5213/insert4096columns_not_use_taosdemo.py
...demoAllTest/TD-5213/insert4096columns_not_use_taosdemo.py
+703
-0
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv
...tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv
+3
-10
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.json
...ools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.json
+40
-15
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py
.../tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py
+118
-79
未找到文件。
tests/pytest/fulltest.sh
浏览文件 @
bdb79f54
...
@@ -360,6 +360,8 @@ python3 ./test.py -f tag_lite/alter_tag.py
...
@@ -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-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
tag_lite/drop_auto_create.py
python3 test.py
-f
insert/insert_before_use_db.py
python3 test.py
-f
insert/insert_before_use_db.py
python3 test.py
-f
alter/alter_keep.py
python3 test.py
-f
alter/alter_keep.py
...
...
tests/pytest/query/operator.py
0 → 100644
浏览文件 @
bdb79f54
此差异已折叠。
点击以展开。
tests/pytest/tools/taosdemoAllTest/TD-5213/insert4096columns_not_use_taosdemo.py
0 → 100644
浏览文件 @
bdb79f54
此差异已折叠。
点击以展开。
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv
浏览文件 @
bdb79f54
此差异已折叠。
点击以展开。
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.json
浏览文件 @
bdb79f54
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
"max_sql_len"
:
102400000
,
"max_sql_len"
:
102400000
,
"databases"
:
[{
"databases"
:
[{
"dbinfo"
:
{
"dbinfo"
:
{
"name"
:
"
db
"
,
"name"
:
"
json
"
,
"drop"
:
"yes"
,
"drop"
:
"yes"
,
"replica"
:
1
,
"replica"
:
1
,
"days"
:
10
,
"days"
:
10
,
...
@@ -35,13 +35,13 @@
...
@@ -35,13 +35,13 @@
"super_tables"
:
[{
"super_tables"
:
[{
"name"
:
"stb_old"
,
"name"
:
"stb_old"
,
"child_table_exists"
:
"no"
,
"child_table_exists"
:
"no"
,
"childtable_count"
:
1
0
,
"childtable_count"
:
1
,
"childtable_prefix"
:
"stb_old_"
,
"childtable_prefix"
:
"stb_old_"
,
"auto_create_table"
:
"no"
,
"auto_create_table"
:
"no"
,
"batch_create_tbl_num"
:
5
,
"batch_create_tbl_num"
:
5
,
"data_source"
:
"
sample
"
,
"data_source"
:
"
rand
"
,
"insert_mode"
:
"taosc"
,
"insert_mode"
:
"taosc"
,
"insert_rows"
:
10
0
,
"insert_rows"
:
10
,
"childtable_limit"
:
0
,
"childtable_limit"
:
0
,
"childtable_offset"
:
0
,
"childtable_offset"
:
0
,
"multi_thread_write_one_tbl"
:
"no"
,
"multi_thread_write_one_tbl"
:
"no"
,
...
@@ -55,18 +55,18 @@
...
@@ -55,18 +55,18 @@
"sample_format"
:
"csv"
,
"sample_format"
:
"csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.csv"
,
"tags_file"
:
""
,
"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
}]
"tags"
:
[{
"type"
:
"TINYINT"
,
"count"
:
2
},
{
"type"
:
"BINARY"
,
"len"
:
16
,
"count"
:
1
}]
},{
},{
"name"
:
"stb_new"
,
"name"
:
"stb_new"
,
"child_table_exists"
:
"no"
,
"child_table_exists"
:
"no"
,
"childtable_count"
:
1
0
,
"childtable_count"
:
1
,
"childtable_prefix"
:
"stb_new_"
,
"childtable_prefix"
:
"stb_new_"
,
"auto_create_table"
:
"no"
,
"auto_create_table"
:
"no"
,
"batch_create_tbl_num"
:
5
,
"batch_create_tbl_num"
:
5
,
"data_source"
:
"rand"
,
"data_source"
:
"rand"
,
"insert_mode"
:
"taosc"
,
"insert_mode"
:
"taosc"
,
"insert_rows"
:
10
0
,
"insert_rows"
:
10
,
"childtable_limit"
:
0
,
"childtable_limit"
:
0
,
"childtable_offset"
:
0
,
"childtable_offset"
:
0
,
"multi_thread_write_one_tbl"
:
"no"
,
"multi_thread_write_one_tbl"
:
"no"
,
...
@@ -80,18 +80,18 @@
...
@@ -80,18 +80,18 @@
"sample_format"
:
"csv"
,
"sample_format"
:
"csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/sample.csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/sample.csv"
,
"tags_file"
:
""
,
"tags_file"
:
""
,
"columns"
:
[{
"type"
:
"
DOUBLE"
,
"count"
:
102
0
}],
"columns"
:
[{
"type"
:
"
INT"
,
"count"
:
4000
},
{
"type"
:
"BINARY"
,
"len"
:
16
,
"count"
:
9
0
}],
"tags"
:
[{
"type"
:
"TINYINT"
,
"count"
:
2
},
{
"type"
:
"BINARY"
,
"len"
:
16
,
"count"
:
1
}]
"tags"
:
[{
"type"
:
"TINYINT"
,
"count"
:
2
},
{
"type"
:
"BINARY"
,
"len"
:
16
,
"count"
:
3
}]
},{
},{
"name"
:
"stb_
int
"
,
"name"
:
"stb_
mix
"
,
"child_table_exists"
:
"no"
,
"child_table_exists"
:
"no"
,
"childtable_count"
:
1
0
,
"childtable_count"
:
1
,
"childtable_prefix"
:
"stb_
int
_"
,
"childtable_prefix"
:
"stb_
mix
_"
,
"auto_create_table"
:
"no"
,
"auto_create_table"
:
"no"
,
"batch_create_tbl_num"
:
5
,
"batch_create_tbl_num"
:
5
,
"data_source"
:
"rand"
,
"data_source"
:
"rand"
,
"insert_mode"
:
"taosc"
,
"insert_mode"
:
"taosc"
,
"insert_rows"
:
10
0
,
"insert_rows"
:
10
,
"childtable_limit"
:
0
,
"childtable_limit"
:
0
,
"childtable_offset"
:
0
,
"childtable_offset"
:
0
,
"multi_thread_write_one_tbl"
:
"no"
,
"multi_thread_write_one_tbl"
:
"no"
,
...
@@ -105,8 +105,33 @@
...
@@ -105,8 +105,33 @@
"sample_format"
:
"csv"
,
"sample_format"
:
"csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/sample.csv"
,
"sample_file"
:
"./tools/taosdemoAllTest/sample.csv"
,
"tags_file"
:
""
,
"tags_file"
:
""
,
"columns"
:
[{
"type"
:
"int"
,
"count"
:
1020
}],
"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"
:
"TINYINT"
,
"count"
:
2
},
{
"type"
:
"BINARY"
,
"len"
:
16
,
"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
}]
}]
}]
}]
}]
}
}
tests/pytest/tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py
浏览文件 @
bdb79f54
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
import
sys
import
sys
import
os
import
os
import
time
from
util.log
import
*
from
util.log
import
*
from
util.cases
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.sql
import
*
...
@@ -23,7 +24,7 @@ class TDTestCase:
...
@@ -23,7 +24,7 @@ class TDTestCase:
def
init
(
self
,
conn
,
logSql
):
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
def
getBuildPath
(
self
):
def
getBuildPath
(
self
):
selfPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
selfPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
...
@@ -39,7 +40,7 @@ class TDTestCase:
...
@@ -39,7 +40,7 @@ class TDTestCase:
buildPath
=
root
[:
len
(
root
)
-
len
(
"/build/bin"
)]
buildPath
=
root
[:
len
(
root
)
-
len
(
"/build/bin"
)]
break
break
return
buildPath
return
buildPath
def
run
(
self
):
def
run
(
self
):
buildPath
=
self
.
getBuildPath
()
buildPath
=
self
.
getBuildPath
()
if
(
buildPath
==
""
):
if
(
buildPath
==
""
):
...
@@ -48,86 +49,124 @@ class TDTestCase:
...
@@ -48,86 +49,124 @@ class TDTestCase:
tdLog
.
info
(
"taosd found in %s"
%
buildPath
)
tdLog
.
info
(
"taosd found in %s"
%
buildPath
)
binPath
=
buildPath
+
"/build/bin/"
binPath
=
buildPath
+
"/build/bin/"
# insert: create one or mutiple tables per sql and insert multiple rows per sql
#-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
# test case for https://jira.taosdata.com:18080/browse/TD-5213
os
.
system
(
"%staosdemo -f tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.json -y "
%
binPath
)
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
.
query
(
"select count (tbname) from stb_old"
)
tdSql
.
checkData
(
0
,
0
,
10
)
tdSql
.
checkData
(
0
,
0
,
1
)
# tdSql.query("select * from stb_old")
tdSql
.
query
(
"select * from stb_old"
)
# tdSql.checkRows(10)
tdSql
.
checkRows
(
10
)
# tdSql.checkCols(1024)
tdSql
.
checkCols
(
1024
)
# tdSql.query("select count (tbname) from stb_new")
tdSql
.
query
(
"select count (tbname) from stb_new"
)
# tdSql.checkData(0, 0, 10)
tdSql
.
checkData
(
0
,
0
,
1
)
# tdSql.query("select * from stb_new")
tdSql
.
query
(
"select * from stb_new"
)
# tdSql.checkRows(10)
tdSql
.
checkRows
(
10
)
# tdSql.checkCols(4096)
tdSql
.
checkCols
(
4096
)
tdSql
.
query
(
"describe stb_new;"
)
# tdLog.info("stop dnode to commit data to disk")
tdSql
.
checkRows
(
4096
)
# tdDnodes.stop(1)
tdSql
.
query
(
"select * from stb_new_0"
)
# tdDnodes.start(1)
tdSql
.
checkRows
(
10
)
tdSql
.
checkCols
(
4091
)
#regular table
tdSql
.
query
(
"describe stb_new_0;"
)
sql
=
"create table tb(ts timestamp, "
tdSql
.
checkRows
(
4096
)
for
i
in
range
(
1022
):
tdSql
.
execute
(
"create table stb_new1_1 using stb_new tags(1,2,3,4,5)"
)
sql
+=
"c%d binary(14), "
%
(
i
+
1
)
tdSql
.
query
(
"select * from stb_new1_1"
)
sql
+=
"c1023 binary(22))"
tdSql
.
checkCols
(
4091
)
tdSql
.
execute
(
sql
)
tdSql
.
query
(
"describe stb_new1_1;"
)
tdSql
.
checkRows
(
4096
)
for
i
in
range
(
4
):
sql
=
"insert into tb values(%d, "
tdSql
.
query
(
"select count (tbname) from stb_mix"
)
for
j
in
range
(
1022
):
tdSql
.
checkData
(
0
,
0
,
1
)
str
=
"'%s', "
%
self
.
get_random_string
(
14
)
sql
+=
str
tdSql
.
query
(
"select * from stb_mix"
)
sql
+=
"'%s')"
%
self
.
get_random_string
(
22
)
tdSql
.
checkRows
(
10
)
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
tdSql
.
checkCols
(
4096
)
tdSql
.
query
(
"describe stb_mix;"
)
time
.
sleep
(
10
)
tdSql
.
checkRows
(
4096
)
tdSql
.
query
(
"select count(*) from tb"
)
tdSql
.
query
(
"select * from stb_mix_0"
)
tdSql
.
checkData
(
0
,
0
,
4
)
tdSql
.
checkRows
(
10
)
tdSql
.
checkCols
(
4092
)
tdDnodes
.
stop
(
1
)
tdSql
.
query
(
"describe stb_mix_0;"
)
tdDnodes
.
start
(
1
)
tdSql
.
checkRows
(
4096
)
time
.
sleep
(
1
)
tdSql
.
query
(
"select count (tbname) from stb_excel"
)
tdSql
.
query
(
"select count(*) from tb"
)
tdSql
.
checkData
(
0
,
0
,
1
)
tdSql
.
checkData
(
0
,
0
,
4
)
tdSql
.
query
(
"select * from stb_excel"
)
tdSql
.
checkRows
(
10
)
sql
=
"create table tb1(ts timestamp, "
tdSql
.
checkCols
(
4096
)
for
i
in
range
(
4094
):
tdSql
.
query
(
"describe stb_excel;"
)
sql
+=
"c%d binary(14), "
%
(
i
+
1
)
tdSql
.
checkRows
(
4096
)
sql
+=
"c4095 binary(22))"
tdSql
.
query
(
"select * from stb_excel_0"
)
tdSql
.
execute
(
sql
)
tdSql
.
checkRows
(
10
)
tdSql
.
checkCols
(
4092
)
for
i
in
range
(
4
):
tdSql
.
query
(
"describe stb_excel_0;"
)
sql
=
"insert into tb1 values(%d, "
tdSql
.
checkRows
(
4096
)
for
j
in
range
(
4094
):
endTime
=
time
.
time
()
str
=
"'%s', "
%
self
.
get_random_string
(
14
)
print
(
"total time %ds"
%
(
endTime
-
startTime
))
sql
+=
str
sql
+=
"'%s')"
%
self
.
get_random_string
(
22
)
tdSql
.
execute
(
sql
%
(
self
.
ts
+
i
))
os
.
system
(
"rm -rf tools/taosdemoAllTest/TD-5213/insertSigcolumnsNum4096.py.sql"
)
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")
def
stop
(
self
):
def
stop
(
self
):
tdSql
.
close
()
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录