Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
afd0869a
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
未验证
提交
afd0869a
编写于
3月 24, 2021
作者:
sangshuduo
提交者:
GitHub
3月 24, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-3321] <fix>: describe stb with better logic. (#5559)
Co-authored-by:
N
Shuduo Sang
<
sdsang@taosdata.com
>
上级
6e3322d3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
19 deletion
+38
-19
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+38
-19
未找到文件。
src/kit/taosdemo/taosdemo.c
浏览文件 @
afd0869a
...
...
@@ -187,6 +187,7 @@ typedef struct SArguments_S {
char
*
tb_prefix
;
char
*
sqlFile
;
bool
use_metric
;
bool
drop_database
;
bool
insert_only
;
bool
answer_yes
;
bool
debug_print
;
...
...
@@ -315,7 +316,7 @@ typedef struct SDbCfg_S {
typedef
struct
SDataBase_S
{
char
dbName
[
MAX_DB_NAME_SIZE
];
int
drop
;
// 0: use exists, 1: if exists, drop then new create
bool
drop
;
// 0: use exists, 1: if exists, drop then new create
SDbCfg
dbCfg
;
int
superTblCount
;
SSuperTable
superTbls
[
MAX_SUPER_TABLE_COUNT
];
...
...
@@ -525,6 +526,7 @@ SArguments g_args = {
"t"
,
// tb_prefix
NULL
,
// sqlFile
true
,
// use_metric
true
,
// drop_database
true
,
// insert_only
false
,
// debug_print
false
,
// verbose_print
...
...
@@ -2112,6 +2114,7 @@ static int getAllChildNameOfSuperTable(TAOS * taos, char* dbName,
static
int
getSuperTableFromServer
(
TAOS
*
taos
,
char
*
dbName
,
SSuperTable
*
superTbls
)
{
char
command
[
BUFFER_SIZE
]
=
"
\0
"
;
TAOS_RES
*
res
;
TAOS_ROW
row
=
NULL
;
...
...
@@ -2337,7 +2340,7 @@ static int createDatabases() {
}
char
command
[
BUFFER_SIZE
]
=
"
\0
"
;
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
if
(
g_Dbs
.
db
[
i
].
drop
)
{
sprintf
(
command
,
"drop database if exists %s;"
,
g_Dbs
.
db
[
i
].
dbName
);
verbosePrint
(
"%s() %d command: %s
\n
"
,
__func__
,
__LINE__
,
command
);
...
...
@@ -2348,7 +2351,7 @@ static int createDatabases() {
}
int
dataLen
=
0
;
dataLen
+=
snprintf
(
command
+
dataLen
,
dataLen
+=
snprintf
(
command
+
dataLen
,
BUFFER_SIZE
-
dataLen
,
"create database if not exists %s"
,
g_Dbs
.
db
[
i
].
dbName
);
if
(
g_Dbs
.
db
[
i
].
dbCfg
.
blocks
>
0
)
{
...
...
@@ -2425,25 +2428,38 @@ static int createDatabases() {
debugPrint
(
"%s() %d supertbl count:%d
\n
"
,
__func__
,
__LINE__
,
g_Dbs
.
db
[
i
].
superTblCount
);
for
(
int
j
=
0
;
j
<
g_Dbs
.
db
[
i
].
superTblCount
;
j
++
)
{
// describe super table, if exists
if
((
g_Dbs
.
db
[
i
].
drop
)
||
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
superTblExists
==
TBL_NO_EXISTS
))
{
ret
=
createSuperTable
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
],
g_Dbs
.
use_metric
);
if
(
0
!=
ret
)
{
errorPrint
(
"
\n
create super table %d failed!
\n\n
"
,
j
);
taos_close
(
taos
);
return
-
1
;
}
}
/* describe super table, if exists
sprintf(command, "describe %s.%s;", g_Dbs.db[i].dbName,
g_Dbs.db[i].superTbls[j].sTblName);
verbosePrint("%s() %d command: %s\n", __func__, __LINE__, command);
if (0 != queryDbExec(taos, command, NO_INSERT_TYPE)) {
g_Dbs.db[i].superTbls[j].superTblExists = TBL_NO_EXISTS;
ret
=
createSuperTable
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
],
g_Dbs
.
use_metric
);
} else {
*/
g_Dbs
.
db
[
i
].
superTbls
[
j
].
superTblExists
=
TBL_ALREADY_EXISTS
;
ret
=
getSuperTableFromServer
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
]);
}
//}
if
(
0
!=
ret
)
{
errorPrint
(
"
\n
get super table %s.%s info failed!
\n\n
"
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
);
taos_close
(
taos
);
return
-
1
;
}
if
(
0
!=
ret
)
{
printf
(
"
\n
create super table %d failed!
\n\n
"
,
j
);
taos_close
(
taos
);
return
-
1
;
}
}
}
...
...
@@ -3122,15 +3138,16 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
cJSON
*
drop
=
cJSON_GetObjectItem
(
dbinfo
,
"drop"
);
if
(
drop
&&
drop
->
type
==
cJSON_String
&&
drop
->
valuestring
!=
NULL
)
{
if
(
0
==
strncasecmp
(
drop
->
valuestring
,
"yes"
,
3
))
{
g_Dbs
.
db
[
i
].
drop
=
1
;
if
(
0
==
strncasecmp
(
drop
->
valuestring
,
"yes"
,
strlen
(
"yes"
)
))
{
g_Dbs
.
db
[
i
].
drop
=
true
;
}
else
{
g_Dbs
.
db
[
i
].
drop
=
0
;
g_Dbs
.
db
[
i
].
drop
=
false
;
}
}
else
if
(
!
drop
)
{
g_Dbs
.
db
[
i
].
drop
=
0
;
g_Dbs
.
db
[
i
].
drop
=
g_args
.
drop_database
;
}
else
{
printf
(
"ERROR: failed to read json, drop not found
\n
"
);
errorPrint
(
"%s() LN%d, failed to read json, drop input mistake
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
}
...
...
@@ -5921,7 +5938,8 @@ static void initOfInsertMeta() {
tstrncpy
(
g_Dbs
.
user
,
TSDB_DEFAULT_USER
,
MAX_DB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
password
,
TSDB_DEFAULT_PASS
,
MAX_DB_NAME_SIZE
);
g_Dbs
.
threadCount
=
2
;
g_Dbs
.
use_metric
=
true
;
g_Dbs
.
use_metric
=
g_args
.
use_metric
;
}
static
void
initOfQueryMeta
()
{
...
...
@@ -6130,7 +6148,8 @@ static void querySqlFile(TAOS* taos, char* sqlFile)
static
void
testMetaFile
()
{
if
(
INSERT_TEST
==
g_args
.
test_mode
)
{
if
(
g_Dbs
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_Dbs
.
cfgDir
);
if
(
g_Dbs
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_Dbs
.
cfgDir
);
insertTestProcess
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录