Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
6fe3b972
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6fe3b972
编写于
5月 28, 2021
作者:
S
Shuduo Sang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-4406]<fix>: taosdemo auto create table.
上级
af367dc2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
12 deletion
+25
-12
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+25
-12
未找到文件。
src/kit/taosdemo/taosdemo.c
浏览文件 @
6fe3b972
...
...
@@ -3012,8 +3012,7 @@ static void createChildTables() {
if
(
g_Dbs
.
db
[
i
].
superTblCount
>
0
)
{
// with super table
for
(
int
j
=
0
;
j
<
g_Dbs
.
db
[
i
].
superTblCount
;
j
++
)
{
if
((
AUTO_CREATE_SUBTBL
==
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
)
||
(
TBL_ALREADY_EXISTS
==
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
))
{
if
(
AUTO_CREATE_SUBTBL
==
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
)
{
continue
;
}
...
...
@@ -3753,25 +3752,29 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
// dbinfo
cJSON
*
stbName
=
cJSON_GetObjectItem
(
stbInfo
,
"name"
);
if
(
!
stbName
||
stbName
->
type
!=
cJSON_String
||
stbName
->
valuestring
==
NULL
)
{
if
(
!
stbName
||
stbName
->
type
!=
cJSON_String
||
stbName
->
valuestring
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to read json, stb name not found
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
,
stbName
->
valuestring
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
,
stbName
->
valuestring
,
MAX_TB_NAME_SIZE
);
cJSON
*
prefix
=
cJSON_GetObjectItem
(
stbInfo
,
"childtable_prefix"
);
if
(
!
prefix
||
prefix
->
type
!=
cJSON_String
||
prefix
->
valuestring
==
NULL
)
{
printf
(
"ERROR: failed to read json, childtable_prefix not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblPrefix
,
prefix
->
valuestring
,
MAX_DB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblPrefix
,
prefix
->
valuestring
,
MAX_DB_NAME_SIZE
);
cJSON
*
autoCreateTbl
=
cJSON_GetObjectItem
(
stbInfo
,
"auto_create_table"
);
// yes, no, null
cJSON
*
autoCreateTbl
=
cJSON_GetObjectItem
(
stbInfo
,
"auto_create_table"
);
if
(
autoCreateTbl
&&
autoCreateTbl
->
type
==
cJSON_String
&&
autoCreateTbl
->
valuestring
!=
NULL
)
{
if
(
0
==
strncasecmp
(
autoCreateTbl
->
valuestring
,
"yes"
,
3
))
{
if
((
0
==
strncasecmp
(
autoCreateTbl
->
valuestring
,
"yes"
,
3
))
&&
(
TBL_ALREADY_EXISTS
!=
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
))
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
=
AUTO_CREATE_SUBTBL
;
}
else
if
(
0
==
strncasecmp
(
autoCreateTbl
->
valuestring
,
"no"
,
2
))
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
=
PRE_CREATE_SUBTBL
;
...
...
@@ -3816,6 +3819,10 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
goto
PARSE_OVER
;
}
if
(
TBL_ALREADY_EXISTS
==
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
=
PRE_CREATE_SUBTBL
;
}
cJSON
*
count
=
cJSON_GetObjectItem
(
stbInfo
,
"childtable_count"
);
if
(
!
count
||
count
->
type
!=
cJSON_Number
||
0
>=
count
->
valueint
)
{
errorPrint
(
"%s() LN%d, failed to read json, childtable_count input mistake
\n
"
,
...
...
@@ -3864,7 +3871,8 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
cJSON
*
childTbl_offset
=
cJSON_GetObjectItem
(
stbInfo
,
"childtable_offset"
);
if
((
childTbl_offset
)
&&
(
g_Dbs
.
db
[
i
].
drop
!=
true
)
&&
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
==
TBL_ALREADY_EXISTS
))
{
if
(
childTbl_offset
->
type
!=
cJSON_Number
||
0
>
childTbl_offset
->
valueint
)
{
if
((
childTbl_offset
->
type
!=
cJSON_Number
)
||
(
0
>
childTbl_offset
->
valueint
))
{
printf
(
"ERROR: failed to read json, childtable_offset
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3920,7 +3928,8 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
cJSON
*
tagsFile
=
cJSON_GetObjectItem
(
stbInfo
,
"tags_file"
);
if
(
tagsFile
&&
tagsFile
->
type
==
cJSON_String
&&
tagsFile
->
valuestring
!=
NULL
)
{
if
((
tagsFile
&&
tagsFile
->
type
==
cJSON_String
)
&&
(
tagsFile
->
valuestring
!=
NULL
))
{
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
tagsFile
,
tagsFile
->
valuestring
,
MAX_FILE_NAME_LEN
);
if
(
0
==
g_Dbs
.
db
[
i
].
superTbls
[
j
].
tagsFile
[
0
])
{
...
...
@@ -3981,7 +3990,9 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
// rows per table need be less than insert batch
if
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
>
g_args
.
num_of_RPR
)
{
printf
(
"NOTICE: db[%d].superTbl[%d]'s interlace rows value %"
PRIu64
" > num_of_records_per_req %"
PRIu64
"
\n\n
"
,
i
,
j
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
,
g_args
.
num_of_RPR
);
i
,
j
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
,
g_args
.
num_of_RPR
);
printf
(
" interlace rows value will be set to num_of_records_per_req %"
PRIu64
"
\n\n
"
,
g_args
.
num_of_RPR
);
prompt
();
...
...
@@ -4976,7 +4987,8 @@ static int generateSQLHead(char *tableName, int32_t tableSeq,
char
headBuf
[
HEAD_BUFF_LEN
];
if
(
superTblInfo
)
{
if
(
AUTO_CREATE_SUBTBL
==
superTblInfo
->
autoCreateTable
)
{
if
((
AUTO_CREATE_SUBTBL
==
superTblInfo
->
autoCreateTable
)
&&
(
TBL_ALREADY_EXISTS
!=
superTblInfo
->
childTblExists
))
{
char
*
tagsValBuf
=
NULL
;
if
(
0
==
superTblInfo
->
tagSource
)
{
tagsValBuf
=
generateTagVaulesForStb
(
superTblInfo
,
tableSeq
);
...
...
@@ -5135,7 +5147,8 @@ static int64_t generateProgressiveDataBuffer(
memset
(
buffer
,
0
,
*
pRemainderBufLen
);
int64_t
headLen
=
generateSQLHead
(
tableName
,
tableSeq
,
pThreadInfo
,
superTblInfo
,
int64_t
headLen
=
generateSQLHead
(
tableName
,
tableSeq
,
pThreadInfo
,
superTblInfo
,
buffer
,
*
pRemainderBufLen
);
if
(
headLen
<=
0
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录