Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6f8a5c4d
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看板
未验证
提交
6f8a5c4d
编写于
8月 24, 2021
作者:
sangshuduo
提交者:
GitHub
8月 24, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-6303]<fix>: taosdemo -f miss filename. (#7543)
上级
3a5e4b04
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
239 addition
and
260 deletion
+239
-260
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+239
-260
未找到文件。
src/kit/taosdemo/taosdemo.c
浏览文件 @
6f8a5c4d
...
...
@@ -659,6 +659,13 @@ static FILE * g_fpOfInsertResult = NULL;
fprintf(stderr, "PERF: "fmt, __VA_ARGS__); } while(0)
#define errorPrint(fmt, ...) \
do {\
fprintf(stderr, " \033[31m");\
fprintf(stderr, "ERROR: "fmt, __VA_ARGS__);\
fprintf(stderr, " \033[0m");\
} while(0)
#define errorPrint2(fmt, ...) \
do {\
struct tm Tm, *ptm;\
struct timeval timeSecs; \
...
...
@@ -671,8 +678,8 @@ static FILE * g_fpOfInsertResult = NULL;
ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour,\
ptm->tm_min, ptm->tm_sec, (int32_t)timeSecs.tv_usec,\
taosGetSelfPthreadId());\
fprintf(stderr, "ERROR: "fmt, __VA_ARGS__);\
fprintf(stderr, " \033[0m");\
errorPrint(fmt, __VA_ARGS__);\
} while(0)
// for strncpy buffer overflow
...
...
@@ -815,6 +822,12 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
for
(
int
i
=
1
;
i
<
argc
;
i
++
)
{
if
(
strcmp
(
argv
[
i
],
"-f"
)
==
0
)
{
arguments
->
demo_mode
=
false
;
if
(
NULL
==
argv
[
i
+
1
])
{
printHelp
();
errorPrint
(
"%s"
,
"
\n\t
-f need a valid json file following!
\n
"
);
exit
(
EXIT_FAILURE
);
}
arguments
->
metaFile
=
argv
[
++
i
];
}
else
if
(
strcmp
(
argv
[
i
],
"-c"
)
==
0
)
{
if
(
argc
==
i
+
1
)
{
...
...
@@ -1227,7 +1240,7 @@ static int queryDbExec(TAOS *taos, char *command, QUERY_TYPE type, bool quiet) {
verbosePrint
(
"%s() LN%d - command: %s
\n
"
,
__func__
,
__LINE__
,
command
);
if
(
code
!=
0
)
{
if
(
!
quiet
)
{
errorPrint
(
"Failed to execute %s, reason: %s
\n
"
,
errorPrint
2
(
"Failed to execute %s, reason: %s
\n
"
,
command
,
taos_errstr
(
res
));
}
taos_free_result
(
res
);
...
...
@@ -1249,7 +1262,7 @@ static void appendResultBufToFile(char *resultBuf, threadInfo *pThreadInfo)
{
pThreadInfo
->
fp
=
fopen
(
pThreadInfo
->
filePath
,
"at"
);
if
(
pThreadInfo
->
fp
==
NULL
)
{
errorPrint
(
errorPrint
2
(
"%s() LN%d, failed to open result file: %s, result will not save to file
\n
"
,
__func__
,
__LINE__
,
pThreadInfo
->
filePath
);
return
;
...
...
@@ -1268,7 +1281,7 @@ static void fetchResult(TAOS_RES *res, threadInfo* pThreadInfo) {
char
*
databuf
=
(
char
*
)
calloc
(
1
,
100
*
1024
*
1024
);
if
(
databuf
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to malloc, warning: save result to file slowly!
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to malloc, warning: save result to file slowly!
\n
"
,
__func__
,
__LINE__
);
return
;
}
...
...
@@ -1308,7 +1321,7 @@ static void selectAndGetResult(
if
(
0
==
strncasecmp
(
g_queryInfo
.
queryMode
,
"taosc"
,
strlen
(
"taosc"
)))
{
TAOS_RES
*
res
=
taos_query
(
pThreadInfo
->
taos
,
command
);
if
(
res
==
NULL
||
taos_errno
(
res
)
!=
0
)
{
errorPrint
(
"%s() LN%d, failed to execute sql:%s, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to execute sql:%s, reason:%s
\n
"
,
__func__
,
__LINE__
,
command
,
taos_errstr
(
res
));
taos_free_result
(
res
);
return
;
...
...
@@ -1327,7 +1340,7 @@ static void selectAndGetResult(
}
}
else
{
errorPrint
(
"%s() LN%d, unknown query mode: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, unknown query mode: %s
\n
"
,
__func__
,
__LINE__
,
g_queryInfo
.
queryMode
);
}
}
...
...
@@ -2177,7 +2190,7 @@ static int xDumpResultToFile(const char* fname, TAOS_RES* tres) {
FILE
*
fp
=
fopen
(
fname
,
"at"
);
if
(
fp
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to open file: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to open file: %s
\n
"
,
__func__
,
__LINE__
,
fname
);
return
-
1
;
}
...
...
@@ -2224,7 +2237,7 @@ static int getDbFromServer(TAOS * taos, SDbInfo** dbInfos) {
int32_t
code
=
taos_errno
(
res
);
if
(
code
!=
0
)
{
errorPrint
(
"failed to run <show databases>, reason: %s
\n
"
,
errorPrint
2
(
"failed to run <show databases>, reason: %s
\n
"
,
taos_errstr
(
res
));
return
-
1
;
}
...
...
@@ -2240,7 +2253,7 @@ static int getDbFromServer(TAOS * taos, SDbInfo** dbInfos) {
dbInfos
[
count
]
=
(
SDbInfo
*
)
calloc
(
1
,
sizeof
(
SDbInfo
));
if
(
dbInfos
[
count
]
==
NULL
)
{
errorPrint
(
"failed to allocate memory for some dbInfo[%d]
\n
"
,
count
);
errorPrint
2
(
"failed to allocate memory for some dbInfo[%d]
\n
"
,
count
);
return
-
1
;
}
...
...
@@ -2393,7 +2406,7 @@ static int postProceSql(char *host, struct sockaddr_in *pServAddr, uint16_t port
request_buf
=
malloc
(
req_buf_len
);
if
(
NULL
==
request_buf
)
{
errorPrint
(
"%s"
,
"
ERROR,
cannot allocate memory.
\n
"
);
errorPrint
(
"%s"
,
"cannot allocate memory.
\n
"
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2532,7 +2545,7 @@ static int postProceSql(char *host, struct sockaddr_in *pServAddr, uint16_t port
static
char
*
getTagValueFromTagSample
(
SSuperTable
*
stbInfo
,
int
tagUsePos
)
{
char
*
dataBuf
=
(
char
*
)
calloc
(
TSDB_MAX_SQL_LEN
+
1
,
1
);
if
(
NULL
==
dataBuf
)
{
errorPrint
(
"%s() LN%d, calloc failed! size:%d
\n
"
,
errorPrint
2
(
"%s() LN%d, calloc failed! size:%d
\n
"
,
__func__
,
__LINE__
,
TSDB_MAX_SQL_LEN
+
1
);
return
NULL
;
}
...
...
@@ -2632,7 +2645,7 @@ static char* generateTagValuesForStb(SSuperTable* stbInfo, int64_t tableSeq) {
dataLen
+=
snprintf
(
dataBuf
+
dataLen
,
TSDB_MAX_SQL_LEN
-
dataLen
,
"%"
PRId64
","
,
rand_bigint
());
}
else
{
errorPrint
(
"No support data type: %s
\n
"
,
stbInfo
->
tags
[
i
].
dataType
);
errorPrint
2
(
"No support data type: %s
\n
"
,
stbInfo
->
tags
[
i
].
dataType
);
tmfree
(
dataBuf
);
return
NULL
;
}
...
...
@@ -2671,7 +2684,7 @@ static int calcRowLen(SSuperTable* superTbls) {
}
else
if
(
strcasecmp
(
dataType
,
"TIMESTAMP"
)
==
0
)
{
lenOfOneRow
+=
TIMESTAMP_BUFF_LEN
;
}
else
{
errorPrint
(
"get error data type : %s
\n
"
,
dataType
);
errorPrint
2
(
"get error data type : %s
\n
"
,
dataType
);
exit
(
EXIT_FAILURE
);
}
}
...
...
@@ -2702,7 +2715,7 @@ static int calcRowLen(SSuperTable* superTbls) {
}
else
if
(
strcasecmp
(
dataType
,
"DOUBLE"
)
==
0
)
{
lenOfTagOfOneRow
+=
superTbls
->
tags
[
tagIndex
].
dataLen
+
DOUBLE_BUFF_LEN
;
}
else
{
errorPrint
(
"get error tag type : %s
\n
"
,
dataType
);
errorPrint
2
(
"get error tag type : %s
\n
"
,
dataType
);
exit
(
EXIT_FAILURE
);
}
}
...
...
@@ -2739,7 +2752,7 @@ static int getChildNameOfSuperTableWithLimitAndOffset(TAOS * taos,
if
(
code
!=
0
)
{
taos_free_result
(
res
);
taos_close
(
taos
);
errorPrint
(
"%s() LN%d, failed to run command %s
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to run command %s
\n
"
,
__func__
,
__LINE__
,
command
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2751,7 +2764,7 @@ static int getChildNameOfSuperTableWithLimitAndOffset(TAOS * taos,
if
(
NULL
==
childTblName
)
{
taos_free_result
(
res
);
taos_close
(
taos
);
errorPrint
(
"%s() LN%d, failed to allocate memory!
\n
"
,
__func__
,
__LINE__
);
errorPrint
2
(
"%s() LN%d, failed to allocate memory!
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
}
...
...
@@ -2761,7 +2774,7 @@ static int getChildNameOfSuperTableWithLimitAndOffset(TAOS * taos,
int32_t
*
len
=
taos_fetch_lengths
(
res
);
if
(
0
==
strlen
((
char
*
)
row
[
0
]))
{
errorPrint
(
"%s() LN%d, No.%"
PRId64
" table return empty name
\n
"
,
errorPrint
2
(
"%s() LN%d, No.%"
PRId64
" table return empty name
\n
"
,
__func__
,
__LINE__
,
count
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2782,7 +2795,7 @@ static int getChildNameOfSuperTableWithLimitAndOffset(TAOS * taos,
tmfree
(
childTblName
);
taos_free_result
(
res
);
taos_close
(
taos
);
errorPrint
(
"%s() LN%d, realloc fail for save child table name of %s.%s
\n
"
,
errorPrint
2
(
"%s() LN%d, realloc fail for save child table name of %s.%s
\n
"
,
__func__
,
__LINE__
,
dbName
,
sTblName
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2879,7 +2892,7 @@ static int getSuperTableFromServer(TAOS * taos, char* dbName,
int childTblCount = 10000;
superTbls->childTblName = (char*)calloc(1, childTblCount * TSDB_TABLE_NAME_LEN);
if (superTbls->childTblName == NULL) {
errorPrint("%s() LN%d, alloc memory failed!\n", __func__, __LINE__);
errorPrint
2
("%s() LN%d, alloc memory failed!\n", __func__, __LINE__);
return -1;
}
getAllChildNameOfSuperTable(taos, dbName,
...
...
@@ -2905,7 +2918,7 @@ static int createSuperTable(
int
lenOfOneRow
=
0
;
if
(
superTbl
->
columnCount
==
0
)
{
errorPrint
(
"%s() LN%d, super table column count is %d
\n
"
,
errorPrint
2
(
"%s() LN%d, super table column count is %d
\n
"
,
__func__
,
__LINE__
,
superTbl
->
columnCount
);
free
(
command
);
return
-
1
;
...
...
@@ -2969,7 +2982,7 @@ static int createSuperTable(
}
else
{
taos_close
(
taos
);
free
(
command
);
errorPrint
(
"%s() LN%d, config error data type : %s
\n
"
,
errorPrint
2
(
"%s() LN%d, config error data type : %s
\n
"
,
__func__
,
__LINE__
,
dataType
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2982,7 +2995,7 @@ static int createSuperTable(
if
(
NULL
==
superTbl
->
colsOfCreateChildTable
)
{
taos_close
(
taos
);
free
(
command
);
errorPrint
(
"%s() LN%d, Failed when calloc, size:%d"
,
errorPrint
2
(
"%s() LN%d, Failed when calloc, size:%d"
,
__func__
,
__LINE__
,
len
+
1
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -2992,7 +3005,7 @@ static int createSuperTable(
__func__
,
__LINE__
,
superTbl
->
colsOfCreateChildTable
);
if
(
superTbl
->
tagCount
==
0
)
{
errorPrint
(
"%s() LN%d, super table tag count is %d
\n
"
,
errorPrint
2
(
"%s() LN%d, super table tag count is %d
\n
"
,
__func__
,
__LINE__
,
superTbl
->
tagCount
);
free
(
command
);
return
-
1
;
...
...
@@ -3059,7 +3072,7 @@ static int createSuperTable(
}
else
{
taos_close
(
taos
);
free
(
command
);
errorPrint
(
"%s() LN%d, config error tag type : %s
\n
"
,
errorPrint
2
(
"%s() LN%d, config error tag type : %s
\n
"
,
__func__
,
__LINE__
,
dataType
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -3074,7 +3087,7 @@ static int createSuperTable(
"create table if not exists %s.%s (ts timestamp%s) tags %s"
,
dbName
,
superTbl
->
sTblName
,
cols
,
tags
);
if
(
0
!=
queryDbExec
(
taos
,
command
,
NO_INSERT_TYPE
,
false
))
{
errorPrint
(
"create supertable %s failed!
\n\n
"
,
errorPrint
2
(
"create supertable %s failed!
\n\n
"
,
superTbl
->
sTblName
);
free
(
command
);
return
-
1
;
...
...
@@ -3090,7 +3103,7 @@ int createDatabasesAndStables(char *command) {
int
ret
=
0
;
taos
=
taos_connect
(
g_Dbs
.
host
,
g_Dbs
.
user
,
g_Dbs
.
password
,
NULL
,
g_Dbs
.
port
);
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
errorPrint
2
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
return
-
1
;
}
...
...
@@ -3186,7 +3199,7 @@ int createDatabasesAndStables(char *command) {
if
(
0
!=
queryDbExec
(
taos
,
command
,
NO_INSERT_TYPE
,
false
))
{
taos_close
(
taos
);
errorPrint
(
"
\n
create database %s failed!
\n\n
"
,
errorPrint
(
"
\n
create database %s failed!
\n\n
"
,
g_Dbs
.
db
[
i
].
dbName
);
return
-
1
;
}
...
...
@@ -3216,7 +3229,7 @@ int createDatabasesAndStables(char *command) {
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
"
,
errorPrint
2
(
"
\n
get super table %s.%s info failed!
\n\n
"
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
);
continue
;
}
...
...
@@ -3244,7 +3257,7 @@ static void* createTable(void *sarg)
pThreadInfo
->
buffer
=
calloc
(
buff_len
,
1
);
if
(
pThreadInfo
->
buffer
==
NULL
)
{
errorPrint
(
"%s() LN%d, Memory allocated failed!
\n
"
,
__func__
,
__LINE__
);
errorPrint
2
(
"%s() LN%d, Memory allocated failed!
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -3266,7 +3279,7 @@ static void* createTable(void *sarg)
}
else
{
if
(
stbInfo
==
NULL
)
{
free
(
pThreadInfo
->
buffer
);
errorPrint
(
"%s() LN%d, use metric, but super table info is NULL
\n
"
,
errorPrint
2
(
"%s() LN%d, use metric, but super table info is NULL
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
else
{
...
...
@@ -3313,7 +3326,7 @@ static void* createTable(void *sarg)
len
=
0
;
if
(
0
!=
queryDbExec
(
pThreadInfo
->
taos
,
pThreadInfo
->
buffer
,
NO_INSERT_TYPE
,
false
)){
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
pThreadInfo
->
buffer
);
errorPrint
2
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
pThreadInfo
->
buffer
);
free
(
pThreadInfo
->
buffer
);
return
NULL
;
}
...
...
@@ -3329,7 +3342,7 @@ static void* createTable(void *sarg)
if
(
0
!=
len
)
{
if
(
0
!=
queryDbExec
(
pThreadInfo
->
taos
,
pThreadInfo
->
buffer
,
NO_INSERT_TYPE
,
false
))
{
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
pThreadInfo
->
buffer
);
errorPrint
2
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
pThreadInfo
->
buffer
);
}
}
...
...
@@ -3374,7 +3387,7 @@ static int startMultiThreadCreateChildTable(
db_name
,
g_Dbs
.
port
);
if
(
pThreadInfo
->
taos
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to connect to TDengine, reason:%s
\n
"
,
__func__
,
__LINE__
,
taos_errstr
(
NULL
));
free
(
pids
);
free
(
infos
);
...
...
@@ -3549,7 +3562,7 @@ static int readSampleFromCsvFileToMem(
FILE
*
fp
=
fopen
(
stbInfo
->
sampleFile
,
"r"
);
if
(
fp
==
NULL
)
{
errorPrint
(
"Failed to open sample file: %s, reason:%s
\n
"
,
errorPrint
(
"Failed to open sample file: %s, reason:%s
\n
"
,
stbInfo
->
sampleFile
,
strerror
(
errno
));
return
-
1
;
}
...
...
@@ -3561,7 +3574,7 @@ static int readSampleFromCsvFileToMem(
readLen
=
tgetline
(
&
line
,
&
n
,
fp
);
if
(
-
1
==
readLen
)
{
if
(
0
!=
fseek
(
fp
,
0
,
SEEK_SET
))
{
errorPrint
(
"Failed to fseek file: %s, reason:%s
\n
"
,
errorPrint
(
"Failed to fseek file: %s, reason:%s
\n
"
,
stbInfo
->
sampleFile
,
strerror
(
errno
));
fclose
(
fp
);
return
-
1
;
...
...
@@ -3604,7 +3617,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
// columns
cJSON
*
columns
=
cJSON_GetObjectItem
(
stbInfo
,
"columns"
);
if
(
columns
&&
columns
->
type
!=
cJSON_Array
)
{
printf
(
"ERROR:
failed to read json, columns not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, columns not found
\n
"
);
goto
PARSE_OVER
;
}
else
if
(
NULL
==
columns
)
{
superTbls
->
columnCount
=
0
;
...
...
@@ -3614,8 +3627,8 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
int
columnSize
=
cJSON_GetArraySize
(
columns
);
if
((
columnSize
+
1
/* ts */
)
>
TSDB_MAX_COLUMNS
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, column size overflow, max column size is %d
\n
"
,
__func__
,
__LINE__
,
TSDB_MAX_COLUMNS
);
errorPrint
(
"failed to read json, column size overflow, max column size is %d
\n
"
,
TSDB_MAX_COLUMNS
);
goto
PARSE_OVER
;
}
...
...
@@ -3633,8 +3646,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
if
(
countObj
&&
countObj
->
type
==
cJSON_Number
)
{
count
=
countObj
->
valueint
;
}
else
if
(
countObj
&&
countObj
->
type
!=
cJSON_Number
)
{
errorPrint
(
"%s() LN%d, failed to read json, column count not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, column count not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
count
=
1
;
...
...
@@ -3645,8 +3657,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
cJSON
*
dataType
=
cJSON_GetObjectItem
(
column
,
"type"
);
if
(
!
dataType
||
dataType
->
type
!=
cJSON_String
||
dataType
->
valuestring
==
NULL
)
{
errorPrint
(
"%s() LN%d: failed to read json, column type not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, column type not found
\n
"
);
goto
PARSE_OVER
;
}
//tstrncpy(superTbls->columns[k].dataType, dataType->valuestring, DATATYPE_BUFF_LEN);
...
...
@@ -3674,8 +3685,8 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
}
if
((
index
+
1
/* ts */
)
>
MAX_NUM_COLUMNS
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, column size overflow, allowed max column size is %d
\n
"
,
__func__
,
__LINE__
,
MAX_NUM_COLUMNS
);
errorPrint
(
"failed to read json, column size overflow, allowed max column size is %d
\n
"
,
MAX_NUM_COLUMNS
);
goto
PARSE_OVER
;
}
...
...
@@ -3686,15 +3697,14 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
// tags
cJSON
*
tags
=
cJSON_GetObjectItem
(
stbInfo
,
"tags"
);
if
(
!
tags
||
tags
->
type
!=
cJSON_Array
)
{
errorPrint
(
"%s() LN%d, failed to read json, tags not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, tags not found
\n
"
);
goto
PARSE_OVER
;
}
int
tagSize
=
cJSON_GetArraySize
(
tags
);
if
(
tagSize
>
TSDB_MAX_TAGS
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, tags size overflow, max tag size is %d
\n
"
,
__func__
,
__LINE__
,
TSDB_MAX_TAGS
);
errorPrint
(
"failed to read json, tags size overflow, max tag size is %d
\n
"
,
TSDB_MAX_TAGS
);
goto
PARSE_OVER
;
}
...
...
@@ -3708,7 +3718,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
if
(
countObj
&&
countObj
->
type
==
cJSON_Number
)
{
count
=
countObj
->
valueint
;
}
else
if
(
countObj
&&
countObj
->
type
!=
cJSON_Number
)
{
printf
(
"ERROR:
failed to read json, column count not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, column count not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
count
=
1
;
...
...
@@ -3719,8 +3729,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
cJSON
*
dataType
=
cJSON_GetObjectItem
(
tag
,
"type"
);
if
(
!
dataType
||
dataType
->
type
!=
cJSON_String
||
dataType
->
valuestring
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to read json, tag type not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, tag type not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
columnCase
.
dataType
,
dataType
->
valuestring
,
...
...
@@ -3730,8 +3739,7 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
if
(
dataLen
&&
dataLen
->
type
==
cJSON_Number
)
{
columnCase
.
dataLen
=
dataLen
->
valueint
;
}
else
if
(
dataLen
&&
dataLen
->
type
!=
cJSON_Number
)
{
errorPrint
(
"%s() LN%d, failed to read json, column len not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, column len not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
columnCase
.
dataLen
=
0
;
...
...
@@ -3746,16 +3754,16 @@ static bool getColumnAndTagTypeFromInsertJsonFile(
}
if
(
index
>
TSDB_MAX_TAGS
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, tags size overflow, allowed max tag count is %d
\n
"
,
__func__
,
__LINE__
,
TSDB_MAX_TAGS
);
errorPrint
(
"failed to read json, tags size overflow, allowed max tag count is %d
\n
"
,
TSDB_MAX_TAGS
);
goto
PARSE_OVER
;
}
superTbls
->
tagCount
=
index
;
if
((
superTbls
->
columnCount
+
superTbls
->
tagCount
+
1
/* ts */
)
>
TSDB_MAX_COLUMNS
)
{
errorPrint
(
"
%s() LN%d,
columns + tags is more than allowed max columns count: %d
\n
"
,
__func__
,
__LINE__
,
TSDB_MAX_COLUMNS
);
errorPrint
(
"columns + tags is more than allowed max columns count: %d
\n
"
,
TSDB_MAX_COLUMNS
);
goto
PARSE_OVER
;
}
ret
=
true
;
...
...
@@ -3778,7 +3786,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
host
)
{
tstrncpy
(
g_Dbs
.
host
,
"127.0.0.1"
,
MAX_HOSTNAME_SIZE
);
}
else
{
printf
(
"ERROR:
failed to read json, host not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, host not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3816,7 +3824,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
threads
)
{
g_Dbs
.
threadCount
=
1
;
}
else
{
printf
(
"ERROR:
failed to read json, threads not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, threads not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3826,32 +3834,28 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
threads2
)
{
g_Dbs
.
threadCountByCreateTbl
=
1
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, threads2 not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, threads2 not found
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
gInsertInterval
=
cJSON_GetObjectItem
(
root
,
"insert_interval"
);
if
(
gInsertInterval
&&
gInsertInterval
->
type
==
cJSON_Number
)
{
if
(
gInsertInterval
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, insert interval input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert interval input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_args
.
insert_interval
=
gInsertInterval
->
valueint
;
}
else
if
(
!
gInsertInterval
)
{
g_args
.
insert_interval
=
0
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, insert_interval input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert_interval input mistake
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
interlaceRows
=
cJSON_GetObjectItem
(
root
,
"interlace_rows"
);
if
(
interlaceRows
&&
interlaceRows
->
type
==
cJSON_Number
)
{
if
(
interlaceRows
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, interlace_rows input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, interlace_rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3859,8 +3863,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
interlaceRows
)
{
g_args
.
interlace_rows
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, interlace_rows input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, interlace_rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3933,14 +3936,14 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
cJSON
*
dbs
=
cJSON_GetObjectItem
(
root
,
"databases"
);
if
(
!
dbs
||
dbs
->
type
!=
cJSON_Array
)
{
printf
(
"ERROR:
failed to read json, databases not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, databases not found
\n
"
);
goto
PARSE_OVER
;
}
int
dbSize
=
cJSON_GetArraySize
(
dbs
);
if
(
dbSize
>
MAX_DB_COUNT
)
{
errorPrint
(
"
ERROR:
failed to read json, databases size overflow, max database is %d
\n
"
,
"failed to read json, databases size overflow, max database is %d
\n
"
,
MAX_DB_COUNT
);
goto
PARSE_OVER
;
}
...
...
@@ -3953,13 +3956,13 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
// dbinfo
cJSON
*
dbinfo
=
cJSON_GetObjectItem
(
dbinfos
,
"dbinfo"
);
if
(
!
dbinfo
||
dbinfo
->
type
!=
cJSON_Object
)
{
printf
(
"ERROR:
failed to read json, dbinfo not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, dbinfo not found
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
dbName
=
cJSON_GetObjectItem
(
dbinfo
,
"name"
);
if
(
!
dbName
||
dbName
->
type
!=
cJSON_String
||
dbName
->
valuestring
==
NULL
)
{
printf
(
"ERROR:
failed to read json, db name not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, db name not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_Dbs
.
db
[
i
].
dbName
,
dbName
->
valuestring
,
TSDB_DB_NAME_LEN
);
...
...
@@ -3974,8 +3977,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
drop
)
{
g_Dbs
.
db
[
i
].
drop
=
g_args
.
drop_database
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, drop input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, drop input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3987,7 +3989,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
precision
)
{
memset
(
g_Dbs
.
db
[
i
].
dbCfg
.
precision
,
0
,
SMALL_BUFF_LEN
);
}
else
{
printf
(
"ERROR:
failed to read json, precision not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, precision not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -3997,7 +3999,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
update
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
update
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, update not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, update not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4007,7 +4009,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
replica
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
replica
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, replica not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, replica not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4017,7 +4019,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
keep
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
keep
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, keep not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, keep not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4027,7 +4029,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
days
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
days
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, days not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, days not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4037,7 +4039,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
cache
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
cache
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, cache not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, cache not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4047,7 +4049,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
blocks
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
blocks
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, block not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, block not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4067,7 +4069,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
minRows
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
minRows
=
0
;
// 0 means default
}
else
{
printf
(
"ERROR:
failed to read json, minRows not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, minRows not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4077,7 +4079,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
maxRows
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
maxRows
=
0
;
// 0 means default
}
else
{
printf
(
"ERROR:
failed to read json, maxRows not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, maxRows not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4087,7 +4089,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
comp
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
comp
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, comp not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, comp not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4097,7 +4099,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
walLevel
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
walLevel
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, walLevel not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, walLevel not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4107,7 +4109,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
cacheLast
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
cacheLast
=
-
1
;
}
else
{
printf
(
"ERROR:
failed to read json, cacheLast not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, cacheLast not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4127,24 +4129,22 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
fsync
)
{
g_Dbs
.
db
[
i
].
dbCfg
.
fsync
=
-
1
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, fsync input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, fsync input mistake
\n
"
);
goto
PARSE_OVER
;
}
// super_talbes
cJSON
*
stables
=
cJSON_GetObjectItem
(
dbinfos
,
"super_tables"
);
if
(
!
stables
||
stables
->
type
!=
cJSON_Array
)
{
errorPrint
(
"%s() LN%d, failed to read json, super_tables not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, super_tables not found
\n
"
);
goto
PARSE_OVER
;
}
int
stbSize
=
cJSON_GetArraySize
(
stables
);
if
(
stbSize
>
MAX_SUPER_TABLE_COUNT
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, supertable size overflow, max supertable is %d
\n
"
,
__func__
,
__LINE__
,
MAX_SUPER_TABLE_COUNT
);
"failed to read json, supertable size overflow, max supertable is %d
\n
"
,
MAX_SUPER_TABLE_COUNT
);
goto
PARSE_OVER
;
}
...
...
@@ -4157,8 +4157,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
cJSON
*
stbName
=
cJSON_GetObjectItem
(
stbInfo
,
"name"
);
if
(
!
stbName
||
stbName
->
type
!=
cJSON_String
||
stbName
->
valuestring
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to read json, stb name not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, stb name not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
,
stbName
->
valuestring
,
...
...
@@ -4166,7 +4165,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
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
"
);
errorPrint
(
"%s"
,
"
failed to read json, childtable_prefix not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblPrefix
,
prefix
->
valuestring
,
...
...
@@ -4187,7 +4186,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
autoCreateTbl
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
autoCreateTable
=
PRE_CREATE_SUBTBL
;
}
else
{
printf
(
"ERROR:
failed to read json, auto_create_table not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, auto_create_table not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4197,7 +4196,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
batchCreateTbl
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
batchCreateTableNum
=
1000
;
}
else
{
printf
(
"ERROR:
failed to read json, batch_create_tbl_num not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, batch_create_tbl_num not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4217,8 +4216,8 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
childTblExists
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
=
TBL_NO_EXISTS
;
}
else
{
errorPrint
(
"%s
() LN%d, failed to read json, child_table_exists not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, child_table_exists not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4228,8 +4227,8 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
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
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, childtable_count input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblCount
=
count
->
valueint
;
...
...
@@ -4244,8 +4243,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
dataSource
,
"rand"
,
min
(
SMALL_BUFF_LEN
,
strlen
(
"rand"
)
+
1
));
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, data_source not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, data_source not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4259,8 +4257,8 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
0
==
strcasecmp
(
stbIface
->
valuestring
,
"stmt"
))
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
iface
=
STMT_IFACE
;
}
else
{
errorPrint
(
"
%s() LN%d,
failed to read json, insert_mode %s not recognized
\n
"
,
__func__
,
__LINE__
,
stbIface
->
valuestring
);
errorPrint
(
"failed to read json, insert_mode %s not recognized
\n
"
,
stbIface
->
valuestring
);
goto
PARSE_OVER
;
}
}
else
if
(
!
stbIface
)
{
...
...
@@ -4274,7 +4272,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
if
((
childTbl_limit
)
&&
(
g_Dbs
.
db
[
i
].
drop
!=
true
)
&&
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
==
TBL_ALREADY_EXISTS
))
{
if
(
childTbl_limit
->
type
!=
cJSON_Number
)
{
printf
(
"ERROR:
failed to read json, childtable_limit
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, childtable_limit
\n
"
);
goto
PARSE_OVER
;
}
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblLimit
=
childTbl_limit
->
valueint
;
...
...
@@ -4287,7 +4285,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
&&
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
==
TBL_ALREADY_EXISTS
))
{
if
((
childTbl_offset
->
type
!=
cJSON_Number
)
||
(
0
>
childTbl_offset
->
valueint
))
{
printf
(
"ERROR:
failed to read json, childtable_offset
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, childtable_offset
\n
"
);
goto
PARSE_OVER
;
}
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblOffset
=
childTbl_offset
->
valueint
;
...
...
@@ -4303,7 +4301,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
startTimestamp
,
"now"
,
TSDB_DB_NAME_LEN
);
}
else
{
printf
(
"ERROR:
failed to read json, start_timestamp not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, start_timestamp not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4313,7 +4311,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
timestampStep
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
timeStampStep
=
g_args
.
timestamp_step
;
}
else
{
printf
(
"ERROR:
failed to read json, timestamp_step not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, timestamp_step not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4328,7 +4326,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
tstrncpy
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sampleFormat
,
"csv"
,
SMALL_BUFF_LEN
);
}
else
{
printf
(
"ERROR:
failed to read json, sample_format not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, sample_format not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4343,7 +4341,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
memset
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sampleFile
,
0
,
MAX_FILE_NAME_LEN
);
}
else
{
printf
(
"ERROR:
failed to read json, sample_file not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, sample_file not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4361,7 +4359,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
memset
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
tagsFile
,
0
,
MAX_FILE_NAME_LEN
);
g_Dbs
.
db
[
i
].
superTbls
[
j
].
tagSource
=
0
;
}
else
{
printf
(
"ERROR:
failed to read json, tags_file not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, tags_file not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4377,8 +4375,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
maxSqlLen
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
maxSqlLen
=
g_args
.
max_sql_len
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, stbMaxSqlLen input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, stbMaxSqlLen input mistake
\n
"
);
goto
PARSE_OVER
;
}
/*
...
...
@@ -4395,31 +4392,28 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
} else if (!multiThreadWriteOneTbl) {
g_Dbs.db[i].superTbls[j].multiThreadWriteOneTbl = 0;
} else {
printf("ERROR:
failed to read json, multiThreadWriteOneTbl not found\n");
errorPrint("%s", "
failed to read json, multiThreadWriteOneTbl not found\n");
goto PARSE_OVER;
}
*/
cJSON
*
insertRows
=
cJSON_GetObjectItem
(
stbInfo
,
"insert_rows"
);
if
(
insertRows
&&
insertRows
->
type
==
cJSON_Number
)
{
if
(
insertRows
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, insert_rows input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert_rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_Dbs
.
db
[
i
].
superTbls
[
j
].
insertRows
=
insertRows
->
valueint
;
}
else
if
(
!
insertRows
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
insertRows
=
0x7FFFFFFFFFFFFFFF
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, insert_rows input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert_rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
stbInterlaceRows
=
cJSON_GetObjectItem
(
stbInfo
,
"interlace_rows"
);
if
(
stbInterlaceRows
&&
stbInterlaceRows
->
type
==
cJSON_Number
)
{
if
(
stbInterlaceRows
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, interlace rows input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, interlace rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
=
stbInterlaceRows
->
valueint
;
...
...
@@ -4437,8 +4431,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, interlace rows input mistake
\n
"
,
__func__
,
__LINE__
);
"%s"
,
"failed to read json, interlace rows input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4454,7 +4447,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
disorderRatio
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRatio
=
0
;
}
else
{
printf
(
"ERROR:
failed to read json, disorderRatio not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, disorderRatio not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4464,7 +4457,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
}
else
if
(
!
disorderRange
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRange
=
1000
;
}
else
{
printf
(
"ERROR:
failed to read json, disorderRange not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, disorderRange not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4472,8 +4465,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
if
(
insertInterval
&&
insertInterval
->
type
==
cJSON_Number
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
insertInterval
=
insertInterval
->
valueint
;
if
(
insertInterval
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, insert_interval input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert_interval input mistake
\n
"
);
goto
PARSE_OVER
;
}
}
else
if
(
!
insertInterval
)
{
...
...
@@ -4481,8 +4473,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
__func__
,
__LINE__
,
g_args
.
insert_interval
);
g_Dbs
.
db
[
i
].
superTbls
[
j
].
insertInterval
=
g_args
.
insert_interval
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, insert_interval input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, insert_interval input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4514,7 +4505,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
!
host
)
{
tstrncpy
(
g_queryInfo
.
host
,
"127.0.0.1"
,
MAX_HOSTNAME_SIZE
);
}
else
{
printf
(
"ERROR:
failed to read json, host not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, host not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4552,23 +4543,21 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
!
answerPrompt
)
{
g_args
.
answer_yes
=
false
;
}
else
{
printf
(
"ERROR:
failed to read json, confirm_parameter_prompt not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, confirm_parameter_prompt not found
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
gQueryTimes
=
cJSON_GetObjectItem
(
root
,
"query_times"
);
if
(
gQueryTimes
&&
gQueryTimes
->
type
==
cJSON_Number
)
{
if
(
gQueryTimes
->
valueint
<=
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, query_times input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s()"
,
"failed to read json, query_times input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_args
.
query_times
=
gQueryTimes
->
valueint
;
}
else
if
(
!
gQueryTimes
)
{
g_args
.
query_times
=
1
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, query_times input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, query_times input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4576,7 +4565,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
if
(
dbs
&&
dbs
->
type
==
cJSON_String
&&
dbs
->
valuestring
!=
NULL
)
{
tstrncpy
(
g_queryInfo
.
dbName
,
dbs
->
valuestring
,
TSDB_DB_NAME_LEN
);
}
else
if
(
!
dbs
)
{
printf
(
"ERROR:
failed to read json, databases not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, databases not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4590,7 +4579,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
tstrncpy
(
g_queryInfo
.
queryMode
,
"taosc"
,
min
(
SMALL_BUFF_LEN
,
strlen
(
"taosc"
)
+
1
));
}
else
{
printf
(
"ERROR:
failed to read json, query_mode not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, query_mode not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4600,7 +4589,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
g_queryInfo
.
specifiedQueryInfo
.
concurrent
=
1
;
g_queryInfo
.
specifiedQueryInfo
.
sqlCount
=
0
;
}
else
if
(
specifiedQuery
->
type
!=
cJSON_Object
)
{
printf
(
"ERROR:
failed to read json, super_table_query not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, super_table_query not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
cJSON
*
queryInterval
=
cJSON_GetObjectItem
(
specifiedQuery
,
"query_interval"
);
...
...
@@ -4615,8 +4604,8 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
if
(
specifiedQueryTimes
&&
specifiedQueryTimes
->
type
==
cJSON_Number
)
{
if
(
specifiedQueryTimes
->
valueint
<=
0
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, query_times: %"
PRId64
", need be a valid (>0) number
\n
"
,
__func__
,
__LINE__
,
specifiedQueryTimes
->
valueint
);
"failed to read json, query_times: %"
PRId64
", need be a valid (>0) number
\n
"
,
specifiedQueryTimes
->
valueint
);
goto
PARSE_OVER
;
}
...
...
@@ -4633,8 +4622,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
if
(
concurrent
&&
concurrent
->
type
==
cJSON_Number
)
{
if
(
concurrent
->
valueint
<=
0
)
{
errorPrint
(
"%s() LN%d, query sqlCount %d or concurrent %d is not correct.
\n
"
,
__func__
,
__LINE__
,
"query sqlCount %d or concurrent %d is not correct.
\n
"
,
g_queryInfo
.
specifiedQueryInfo
.
sqlCount
,
g_queryInfo
.
specifiedQueryInfo
.
concurrent
);
goto
PARSE_OVER
;
...
...
@@ -4652,8 +4640,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"async"
,
specifiedAsyncMode
->
valuestring
))
{
g_queryInfo
.
specifiedQueryInfo
.
asyncMode
=
ASYNC_MODE
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, async mode input error
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, async mode input error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4676,7 +4663,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"no"
,
restart
->
valuestring
))
{
g_queryInfo
.
specifiedQueryInfo
.
subscribeRestart
=
false
;
}
else
{
printf
(
"ERROR:
failed to read json, subscribe restart error
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, subscribe restart error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4692,7 +4679,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"no"
,
keepProgress
->
valuestring
))
{
g_queryInfo
.
specifiedQueryInfo
.
subscribeKeepProgress
=
0
;
}
else
{
printf
(
"ERROR:
failed to read json, subscribe keepProgress error
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, subscribe keepProgress error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4704,15 +4691,13 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
if
(
!
specifiedSqls
)
{
g_queryInfo
.
specifiedQueryInfo
.
sqlCount
=
0
;
}
else
if
(
specifiedSqls
->
type
!=
cJSON_Array
)
{
errorPrint
(
"%s() LN%d, failed to read json, super sqls not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, super sqls not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
int
superSqlSize
=
cJSON_GetArraySize
(
specifiedSqls
);
if
(
superSqlSize
*
g_queryInfo
.
specifiedQueryInfo
.
concurrent
>
MAX_QUERY_SQL_COUNT
)
{
errorPrint
(
"%s() LN%d, failed to read json, query sql(%d) * concurrent(%d) overflow, max is %d
\n
"
,
__func__
,
__LINE__
,
errorPrint
(
"failed to read json, query sql(%d) * concurrent(%d) overflow, max is %d
\n
"
,
superSqlSize
,
g_queryInfo
.
specifiedQueryInfo
.
concurrent
,
MAX_QUERY_SQL_COUNT
);
...
...
@@ -4726,7 +4711,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
cJSON
*
sqlStr
=
cJSON_GetObjectItem
(
sql
,
"sql"
);
if
(
!
sqlStr
||
sqlStr
->
type
!=
cJSON_String
||
sqlStr
->
valuestring
==
NULL
)
{
printf
(
"ERROR:
failed to read json, sql not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, sql not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_queryInfo
.
specifiedQueryInfo
.
sql
[
j
],
...
...
@@ -4766,7 +4751,8 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
memset
(
g_queryInfo
.
specifiedQueryInfo
.
result
[
j
],
0
,
MAX_FILE_NAME_LEN
);
}
else
{
printf
(
"ERROR: failed to read json, super query result file not found
\n
"
);
errorPrint
(
"%s"
,
"failed to read json, super query result file not found
\n
"
);
goto
PARSE_OVER
;
}
}
...
...
@@ -4779,7 +4765,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
g_queryInfo
.
superQueryInfo
.
threadCnt
=
1
;
g_queryInfo
.
superQueryInfo
.
sqlCount
=
0
;
}
else
if
(
superQuery
->
type
!=
cJSON_Object
)
{
printf
(
"ERROR:
failed to read json, sub_table_query not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, sub_table_query not found
\n
"
);
ret
=
true
;
goto
PARSE_OVER
;
}
else
{
...
...
@@ -4793,24 +4779,22 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
cJSON
*
superQueryTimes
=
cJSON_GetObjectItem
(
superQuery
,
"query_times"
);
if
(
superQueryTimes
&&
superQueryTimes
->
type
==
cJSON_Number
)
{
if
(
superQueryTimes
->
valueint
<=
0
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, query_times: %"
PRId64
", need be a valid (>0) number
\n
"
,
__func__
,
__LINE__
,
superQueryTimes
->
valueint
);
errorPrint
(
"failed to read json, query_times: %"
PRId64
", need be a valid (>0) number
\n
"
,
superQueryTimes
->
valueint
);
goto
PARSE_OVER
;
}
g_queryInfo
.
superQueryInfo
.
queryTimes
=
superQueryTimes
->
valueint
;
}
else
if
(
!
superQueryTimes
)
{
g_queryInfo
.
superQueryInfo
.
queryTimes
=
g_args
.
query_times
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, query_times input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, query_times input mistake
\n
"
);
goto
PARSE_OVER
;
}
cJSON
*
threads
=
cJSON_GetObjectItem
(
superQuery
,
"threads"
);
if
(
threads
&&
threads
->
type
==
cJSON_Number
)
{
if
(
threads
->
valueint
<=
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, threads input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, threads input mistake
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4832,8 +4816,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
tstrncpy
(
g_queryInfo
.
superQueryInfo
.
sTblName
,
stblname
->
valuestring
,
TSDB_TABLE_NAME_LEN
);
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, super table name input error
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, super table name input error
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -4845,8 +4828,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"async"
,
superAsyncMode
->
valuestring
))
{
g_queryInfo
.
superQueryInfo
.
asyncMode
=
ASYNC_MODE
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, async mode input error
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, async mode input error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4856,8 +4838,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
cJSON
*
superInterval
=
cJSON_GetObjectItem
(
superQuery
,
"interval"
);
if
(
superInterval
&&
superInterval
->
type
==
cJSON_Number
)
{
if
(
superInterval
->
valueint
<
0
)
{
errorPrint
(
"%s() LN%d, failed to read json, interval input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, interval input mistake
\n
"
);
goto
PARSE_OVER
;
}
g_queryInfo
.
superQueryInfo
.
subscribeInterval
=
superInterval
->
valueint
;
...
...
@@ -4875,7 +4856,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"no"
,
subrestart
->
valuestring
))
{
g_queryInfo
.
superQueryInfo
.
subscribeRestart
=
false
;
}
else
{
printf
(
"ERROR:
failed to read json, subscribe restart error
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, subscribe restart error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4891,7 +4872,8 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
0
==
strcmp
(
"no"
,
superkeepProgress
->
valuestring
))
{
g_queryInfo
.
superQueryInfo
.
subscribeKeepProgress
=
0
;
}
else
{
printf
(
"ERROR: failed to read json, subscribe super table keepProgress error
\n
"
);
errorPrint
(
"%s"
,
"failed to read json, subscribe super table keepProgress error
\n
"
);
goto
PARSE_OVER
;
}
}
else
{
...
...
@@ -4928,14 +4910,13 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
if
(
!
superSqls
)
{
g_queryInfo
.
superQueryInfo
.
sqlCount
=
0
;
}
else
if
(
superSqls
->
type
!=
cJSON_Array
)
{
errorPrint
(
"%s() LN%d: failed to read json, super sqls not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, super sqls not found
\n
"
);
goto
PARSE_OVER
;
}
else
{
int
superSqlSize
=
cJSON_GetArraySize
(
superSqls
);
if
(
superSqlSize
>
MAX_QUERY_SQL_COUNT
)
{
errorPrint
(
"
%s() LN%d,
failed to read json, query sql size overflow, max is %d
\n
"
,
__func__
,
__LINE__
,
MAX_QUERY_SQL_COUNT
);
errorPrint
(
"failed to read json, query sql size overflow, max is %d
\n
"
,
MAX_QUERY_SQL_COUNT
);
goto
PARSE_OVER
;
}
...
...
@@ -4947,8 +4928,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
cJSON
*
sqlStr
=
cJSON_GetObjectItem
(
sql
,
"sql"
);
if
(
!
sqlStr
||
sqlStr
->
type
!=
cJSON_String
||
sqlStr
->
valuestring
==
NULL
)
{
errorPrint
(
"%s() LN%d, failed to read json, sql not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, sql not found
\n
"
);
goto
PARSE_OVER
;
}
tstrncpy
(
g_queryInfo
.
superQueryInfo
.
sql
[
j
],
sqlStr
->
valuestring
,
...
...
@@ -4962,8 +4942,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
}
else
if
(
NULL
==
result
)
{
memset
(
g_queryInfo
.
superQueryInfo
.
result
[
j
],
0
,
MAX_FILE_NAME_LEN
);
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, sub query result file not found
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"failed to read json, sub query result file not found
\n
"
);
goto
PARSE_OVER
;
}
}
...
...
@@ -4981,7 +4960,7 @@ static bool getInfoFromJsonFile(char* file) {
FILE
*
fp
=
fopen
(
file
,
"r"
);
if
(
!
fp
)
{
printf
(
"failed to read %s, reason:%s
\n
"
,
file
,
strerror
(
errno
));
errorPrint
(
"failed to read %s, reason:%s
\n
"
,
file
,
strerror
(
errno
));
return
false
;
}
...
...
@@ -4992,14 +4971,14 @@ static bool getInfoFromJsonFile(char* file) {
if
(
len
<=
0
)
{
free
(
content
);
fclose
(
fp
);
printf
(
"failed to read %s, content is null"
,
file
);
errorPrint
(
"failed to read %s, content is null"
,
file
);
return
false
;
}
content
[
len
]
=
0
;
cJSON
*
root
=
cJSON_Parse
(
content
);
if
(
root
==
NULL
)
{
printf
(
"ERROR:
failed to cjson parse %s, invalid json format
\n
"
,
file
);
errorPrint
(
"
failed to cjson parse %s, invalid json format
\n
"
,
file
);
goto
PARSE_OVER
;
}
...
...
@@ -5012,13 +4991,13 @@ static bool getInfoFromJsonFile(char* file) {
}
else
if
(
0
==
strcasecmp
(
"subscribe"
,
filetype
->
valuestring
))
{
g_args
.
test_mode
=
SUBSCRIBE_TEST
;
}
else
{
printf
(
"ERROR:
failed to read json, filetype not support
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, filetype not support
\n
"
);
goto
PARSE_OVER
;
}
}
else
if
(
!
filetype
)
{
g_args
.
test_mode
=
INSERT_TEST
;
}
else
{
printf
(
"ERROR:
failed to read json, filetype not found
\n
"
);
errorPrint
(
"%s"
,
"
failed to read json, filetype not found
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -5028,8 +5007,8 @@ static bool getInfoFromJsonFile(char* file) {
||
(
SUBSCRIBE_TEST
==
g_args
.
test_mode
))
{
ret
=
getMetaFromQueryJsonFile
(
root
);
}
else
{
errorPrint
(
"%s
() LN%d, input json file type error! please input correct file type: insert or query or subscribe
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s"
,
"input json file type error! please input correct file type: insert or query or subscribe
\n
"
);
goto
PARSE_OVER
;
}
...
...
@@ -5147,7 +5126,7 @@ static int64_t generateStbRowData(
||
(
0
==
strncasecmp
(
stbInfo
->
columns
[
i
].
dataType
,
"NCHAR"
,
5
)))
{
if
(
stbInfo
->
columns
[
i
].
dataLen
>
TSDB_MAX_BINARY_LEN
)
{
errorPrint
(
"binary or nchar length overflow, max size:%u
\n
"
,
errorPrint
2
(
"binary or nchar length overflow, max size:%u
\n
"
,
(
uint32_t
)
TSDB_MAX_BINARY_LEN
);
return
-
1
;
}
...
...
@@ -5159,7 +5138,7 @@ static int64_t generateStbRowData(
}
char
*
buf
=
(
char
*
)
calloc
(
stbInfo
->
columns
[
i
].
dataLen
+
1
,
1
);
if
(
NULL
==
buf
)
{
errorPrint
(
"calloc failed! size:%d
\n
"
,
stbInfo
->
columns
[
i
].
dataLen
);
errorPrint
2
(
"calloc failed! size:%d
\n
"
,
stbInfo
->
columns
[
i
].
dataLen
);
return
-
1
;
}
rand_string
(
buf
,
stbInfo
->
columns
[
i
].
dataLen
);
...
...
@@ -5222,7 +5201,7 @@ static int64_t generateStbRowData(
tmpLen
=
strlen
(
tmp
);
tstrncpy
(
pstr
+
dataLen
,
tmp
,
min
(
tmpLen
+
1
,
BIGINT_BUFF_LEN
));
}
else
{
errorPrint
(
"Not support data type: %s
\n
"
,
errorPrint
2
(
"Not support data type: %s
\n
"
,
stbInfo
->
columns
[
i
].
dataType
);
return
-
1
;
}
...
...
@@ -5274,7 +5253,7 @@ static int64_t generateData(char *recBuf, char **data_type,
}
else
if
(
strcasecmp
(
data_type
[
i
%
columnCount
],
"BINARY"
)
==
0
)
{
char
*
s
=
malloc
(
lenOfBinary
+
1
);
if
(
s
==
NULL
)
{
errorPrint
(
"%s() LN%d, memory allocation %d bytes failed
\n
"
,
errorPrint
2
(
"%s() LN%d, memory allocation %d bytes failed
\n
"
,
__func__
,
__LINE__
,
lenOfBinary
+
1
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -5284,7 +5263,7 @@ static int64_t generateData(char *recBuf, char **data_type,
}
else
if
(
strcasecmp
(
data_type
[
i
%
columnCount
],
"NCHAR"
)
==
0
)
{
char
*
s
=
malloc
(
lenOfBinary
+
1
);
if
(
s
==
NULL
)
{
errorPrint
(
"%s() LN%d, memory allocation %d bytes failed
\n
"
,
errorPrint
2
(
"%s() LN%d, memory allocation %d bytes failed
\n
"
,
__func__
,
__LINE__
,
lenOfBinary
+
1
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -5311,7 +5290,7 @@ static int prepareSampleDataForSTable(SSuperTable *stbInfo) {
sampleDataBuf
=
calloc
(
stbInfo
->
lenOfOneRow
*
MAX_SAMPLES_ONCE_FROM_FILE
,
1
);
if
(
sampleDataBuf
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to calloc %"
PRIu64
" Bytes, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to calloc %"
PRIu64
" Bytes, reason:%s
\n
"
,
__func__
,
__LINE__
,
stbInfo
->
lenOfOneRow
*
MAX_SAMPLES_ONCE_FROM_FILE
,
strerror
(
errno
));
...
...
@@ -5322,7 +5301,7 @@ static int prepareSampleDataForSTable(SSuperTable *stbInfo) {
int
ret
=
readSampleFromCsvFileToMem
(
stbInfo
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, read sample from csv file failed.
\n
"
,
errorPrint
2
(
"%s() LN%d, read sample from csv file failed.
\n
"
,
__func__
,
__LINE__
);
tmfree
(
sampleDataBuf
);
stbInfo
->
sampleDataBuf
=
NULL
;
...
...
@@ -5377,7 +5356,7 @@ static int32_t execInsert(threadInfo *pThreadInfo, uint32_t k)
debugPrint
(
"%s() LN%d, stmt=%p"
,
__func__
,
__LINE__
,
pThreadInfo
->
stmt
);
if
(
0
!=
taos_stmt_execute
(
pThreadInfo
->
stmt
))
{
errorPrint
(
"%s() LN%d, failied to execute insert statement. reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, failied to execute insert statement. reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
pThreadInfo
->
stmt
));
fprintf
(
stderr
,
"
\n\033
[31m === Please reduce batch number if WAL size exceeds limit. ===
\033
[0m
\n\n
"
);
...
...
@@ -5387,7 +5366,7 @@ static int32_t execInsert(threadInfo *pThreadInfo, uint32_t k)
break
;
default:
errorPrint
(
"%s() LN%d: unknown insert mode: %d
\n
"
,
errorPrint
2
(
"%s() LN%d: unknown insert mode: %d
\n
"
,
__func__
,
__LINE__
,
stbInfo
->
iface
);
affectedRows
=
0
;
}
...
...
@@ -5615,7 +5594,7 @@ static int generateStbSQLHead(
tableSeq
%
stbInfo
->
tagSampleCount
);
}
if
(
NULL
==
tagsValBuf
)
{
errorPrint
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
errorPrint
2
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
__func__
,
__LINE__
);
return
-
1
;
}
...
...
@@ -5766,7 +5745,7 @@ static int32_t prepareStmtBindArrayByType(
if
(
0
==
strncasecmp
(
dataType
,
"BINARY"
,
strlen
(
"BINARY"
)))
{
if
(
dataLen
>
TSDB_MAX_BINARY_LEN
)
{
errorPrint
(
"binary length overflow, max size:%u
\n
"
,
errorPrint
2
(
"binary length overflow, max size:%u
\n
"
,
(
uint32_t
)
TSDB_MAX_BINARY_LEN
);
return
-
1
;
}
...
...
@@ -5789,7 +5768,7 @@ static int32_t prepareStmtBindArrayByType(
}
else
if
(
0
==
strncasecmp
(
dataType
,
"NCHAR"
,
strlen
(
"NCHAR"
)))
{
if
(
dataLen
>
TSDB_MAX_BINARY_LEN
)
{
errorPrint
(
"nchar length overflow, max size:%u
\n
"
,
errorPrint
2
(
"nchar length overflow, max size:%u
\n
"
,
(
uint32_t
)
TSDB_MAX_BINARY_LEN
);
return
-
1
;
}
...
...
@@ -5937,7 +5916,7 @@ static int32_t prepareStmtBindArrayByType(
value
,
&
tmpEpoch
,
strlen
(
value
),
timePrec
,
0
))
{
free
(
bind_ts2
);
errorPrint
(
"Input %s, time format error!
\n
"
,
value
);
errorPrint
2
(
"Input %s, time format error!
\n
"
,
value
);
return
-
1
;
}
*
bind_ts2
=
tmpEpoch
;
...
...
@@ -5953,7 +5932,7 @@ static int32_t prepareStmtBindArrayByType(
bind
->
length
=
&
bind
->
buffer_length
;
bind
->
is_null
=
NULL
;
}
else
{
errorPrint
(
"No
support data type: %s
\n
"
,
dataType
);
errorPrint
2
(
"Not
support data type: %s
\n
"
,
dataType
);
return
-
1
;
}
...
...
@@ -5970,7 +5949,7 @@ static int32_t prepareStmtBindArrayByTypeForRand(
if
(
0
==
strncasecmp
(
dataType
,
"BINARY"
,
strlen
(
"BINARY"
)))
{
if
(
dataLen
>
TSDB_MAX_BINARY_LEN
)
{
errorPrint
(
"binary length overflow, max size:%u
\n
"
,
errorPrint
2
(
"binary length overflow, max size:%u
\n
"
,
(
uint32_t
)
TSDB_MAX_BINARY_LEN
);
return
-
1
;
}
...
...
@@ -5993,7 +5972,7 @@ static int32_t prepareStmtBindArrayByTypeForRand(
}
else
if
(
0
==
strncasecmp
(
dataType
,
"NCHAR"
,
strlen
(
"NCHAR"
)))
{
if
(
dataLen
>
TSDB_MAX_BINARY_LEN
)
{
errorPrint
(
"nchar length overflow, max size:
%u
\n
"
,
errorPrint
2
(
"nchar length overflow, max size:
%u
\n
"
,
(
uint32_t
)
TSDB_MAX_BINARY_LEN
);
return
-
1
;
}
...
...
@@ -6145,7 +6124,7 @@ static int32_t prepareStmtBindArrayByTypeForRand(
if
(
TSDB_CODE_SUCCESS
!=
taosParseTime
(
value
,
&
tmpEpoch
,
strlen
(
value
),
timePrec
,
0
))
{
errorPrint
(
"Input %s, time format error!
\n
"
,
value
);
errorPrint
2
(
"Input %s, time format error!
\n
"
,
value
);
return
-
1
;
}
*
bind_ts2
=
tmpEpoch
;
...
...
@@ -6163,7 +6142,7 @@ static int32_t prepareStmtBindArrayByTypeForRand(
*
ptr
+=
bind
->
buffer_length
;
}
else
{
errorPrint
(
"No support data type: %s
\n
"
,
dataType
);
errorPrint
2
(
"No support data type: %s
\n
"
,
dataType
);
return
-
1
;
}
...
...
@@ -6181,7 +6160,7 @@ static int32_t prepareStmtWithoutStb(
TAOS_STMT
*
stmt
=
pThreadInfo
->
stmt
;
int
ret
=
taos_stmt_set_tbname
(
stmt
,
tableName
);
if
(
ret
!=
0
)
{
errorPrint
(
"failed to execute taos_stmt_set_tbname(%s). return 0x%x. reason: %s
\n
"
,
errorPrint
2
(
"failed to execute taos_stmt_set_tbname(%s). return 0x%x. reason: %s
\n
"
,
tableName
,
ret
,
taos_stmt_errstr
(
stmt
));
return
ret
;
}
...
...
@@ -6190,7 +6169,7 @@ static int32_t prepareStmtWithoutStb(
char
*
bindArray
=
malloc
(
sizeof
(
TAOS_BIND
)
*
(
g_args
.
num_of_CPR
+
1
));
if
(
bindArray
==
NULL
)
{
errorPrint
(
"Failed to allocate %d bind params
\n
"
,
errorPrint
2
(
"Failed to allocate %d bind params
\n
"
,
(
g_args
.
num_of_CPR
+
1
));
return
-
1
;
}
...
...
@@ -6231,13 +6210,13 @@ static int32_t prepareStmtWithoutStb(
}
}
if
(
0
!=
taos_stmt_bind_param
(
stmt
,
(
TAOS_BIND
*
)
bindArray
))
{
errorPrint
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
break
;
}
// if msg > 3MB, break
if
(
0
!=
taos_stmt_add_batch
(
stmt
))
{
errorPrint
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
break
;
}
...
...
@@ -6260,7 +6239,7 @@ static int32_t prepareStbStmtBindTag(
{
char
*
bindBuffer
=
calloc
(
1
,
DOUBLE_BUFF_LEN
);
// g_args.len_of_binary);
if
(
bindBuffer
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
__func__
,
__LINE__
,
DOUBLE_BUFF_LEN
);
return
-
1
;
}
...
...
@@ -6292,7 +6271,7 @@ static int32_t prepareStbStmtBindRand(
{
char
*
bindBuffer
=
calloc
(
1
,
DOUBLE_BUFF_LEN
);
// g_args.len_of_binary);
if
(
bindBuffer
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
__func__
,
__LINE__
,
DOUBLE_BUFF_LEN
);
return
-
1
;
}
...
...
@@ -6395,7 +6374,7 @@ static int32_t prepareStbStmtRand(
}
if
(
NULL
==
tagsValBuf
)
{
errorPrint
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
errorPrint
2
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
__func__
,
__LINE__
);
return
-
1
;
}
...
...
@@ -6403,7 +6382,7 @@ static int32_t prepareStbStmtRand(
char
*
tagsArray
=
calloc
(
1
,
sizeof
(
TAOS_BIND
)
*
stbInfo
->
tagCount
);
if
(
NULL
==
tagsArray
)
{
tmfree
(
tagsValBuf
);
errorPrint
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
errorPrint
2
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
__func__
,
__LINE__
);
return
-
1
;
}
...
...
@@ -6422,14 +6401,14 @@ static int32_t prepareStbStmtRand(
tmfree
(
tagsArray
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_set_tbname_tags() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_set_tbname_tags() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
}
else
{
ret
=
taos_stmt_set_tbname
(
stmt
,
tableName
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_set_tbname() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_set_tbname() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
...
...
@@ -6437,7 +6416,7 @@ static int32_t prepareStbStmtRand(
char
*
bindArray
=
calloc
(
1
,
sizeof
(
TAOS_BIND
)
*
(
stbInfo
->
columnCount
+
1
));
if
(
bindArray
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %d bind params
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %d bind params
\n
"
,
__func__
,
__LINE__
,
(
stbInfo
->
columnCount
+
1
));
return
-
1
;
}
...
...
@@ -6456,7 +6435,7 @@ static int32_t prepareStbStmtRand(
}
ret
=
taos_stmt_bind_param
(
stmt
,
(
TAOS_BIND
*
)
bindArray
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
free
(
bindArray
);
return
-
1
;
...
...
@@ -6464,7 +6443,7 @@ static int32_t prepareStbStmtRand(
// if msg > 3MB, break
ret
=
taos_stmt_add_batch
(
stmt
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
free
(
bindArray
);
return
-
1
;
...
...
@@ -6508,7 +6487,7 @@ static int32_t prepareStbStmtWithSample(
}
if
(
NULL
==
tagsValBuf
)
{
errorPrint
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
errorPrint
2
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
__func__
,
__LINE__
);
return
-
1
;
}
...
...
@@ -6516,7 +6495,7 @@ static int32_t prepareStbStmtWithSample(
char
*
tagsArray
=
calloc
(
1
,
sizeof
(
TAOS_BIND
)
*
stbInfo
->
tagCount
);
if
(
NULL
==
tagsArray
)
{
tmfree
(
tagsValBuf
);
errorPrint
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
errorPrint
2
(
"%s() LN%d, tag buf failed to allocate memory
\n
"
,
__func__
,
__LINE__
);
return
-
1
;
}
...
...
@@ -6535,14 +6514,14 @@ static int32_t prepareStbStmtWithSample(
tmfree
(
tagsArray
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_set_tbname_tags() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_set_tbname_tags() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
}
else
{
ret
=
taos_stmt_set_tbname
(
stmt
,
tableName
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_set_tbname() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_set_tbname() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
...
...
@@ -6564,14 +6543,14 @@ static int32_t prepareStbStmtWithSample(
}
ret
=
taos_stmt_bind_param
(
stmt
,
(
TAOS_BIND
*
)
bindArray
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_bind_param() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
// if msg > 3MB, break
ret
=
taos_stmt_add_batch
(
stmt
);
if
(
0
!=
ret
)
{
errorPrint
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, stmt_add_batch() failed! reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_stmt_errstr
(
stmt
));
return
-
1
;
}
...
...
@@ -6732,7 +6711,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
pThreadInfo
->
buffer
=
calloc
(
maxSqlLen
,
1
);
if
(
NULL
==
pThreadInfo
->
buffer
)
{
errorPrint
(
"%s() LN%d, Failed to alloc %"
PRIu64
" Bytes, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to alloc %"
PRIu64
" Bytes, reason:%s
\n
"
,
__func__
,
__LINE__
,
maxSqlLen
,
strerror
(
errno
));
return
NULL
;
}
...
...
@@ -6780,7 +6759,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
getTableName
(
tableName
,
pThreadInfo
,
tableSeq
);
if
(
0
==
strlen
(
tableName
))
{
errorPrint
(
"[%d] %s() LN%d, getTableName return null
\n
"
,
errorPrint
2
(
"[%d] %s() LN%d, getTableName return null
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
);
free
(
pThreadInfo
->
buffer
);
return
NULL
;
...
...
@@ -6847,7 +6826,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
debugPrint
(
"[%d] %s() LN%d, generated records is %d
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
,
generated
);
if
(
generated
<
0
)
{
errorPrint
(
"[%d] %s() LN%d, generated records is %d
\n
"
,
errorPrint
2
(
"[%d] %s() LN%d, generated records is %d
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
,
generated
);
goto
free_of_interlace
;
}
else
if
(
generated
==
0
)
{
...
...
@@ -6901,7 +6880,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
startTs
=
taosGetTimestampUs
();
if
(
recOfBatch
==
0
)
{
errorPrint
(
"[%d] %s() LN%d Failed to insert records of batch %d
\n
"
,
errorPrint
2
(
"[%d] %s() LN%d Failed to insert records of batch %d
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
,
batchPerTbl
);
if
(
batchPerTbl
>
0
)
{
...
...
@@ -6928,7 +6907,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
pThreadInfo
->
totalDelay
+=
delay
;
if
(
recOfBatch
!=
affectedRows
)
{
errorPrint
(
"[%d] %s() LN%d execInsert insert %d, affected rows: %"
PRId64
"
\n
%s
\n
"
,
errorPrint
2
(
"[%d] %s() LN%d execInsert insert %d, affected rows: %"
PRId64
"
\n
%s
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
,
recOfBatch
,
affectedRows
,
pThreadInfo
->
buffer
);
goto
free_of_interlace
;
...
...
@@ -6986,7 +6965,7 @@ static void* syncWriteProgressive(threadInfo *pThreadInfo) {
pThreadInfo
->
buffer
=
calloc
(
maxSqlLen
,
1
);
if
(
NULL
==
pThreadInfo
->
buffer
)
{
errorPrint
(
"Failed to alloc %"
PRIu64
" B
ytes, reason:%s
\n
"
,
errorPrint
2
(
"Failed to alloc %"
PRIu64
" b
ytes, reason:%s
\n
"
,
maxSqlLen
,
strerror
(
errno
));
return
NULL
;
...
...
@@ -7027,7 +7006,7 @@ static void* syncWriteProgressive(threadInfo *pThreadInfo) {
__func__
,
__LINE__
,
pThreadInfo
->
threadID
,
tableSeq
,
tableName
);
if
(
0
==
strlen
(
tableName
))
{
errorPrint
(
"[%d] %s() LN%d, getTableName return null
\n
"
,
errorPrint
2
(
"[%d] %s() LN%d, getTableName return null
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
);
free
(
pThreadInfo
->
buffer
);
return
NULL
;
...
...
@@ -7116,7 +7095,7 @@ static void* syncWriteProgressive(threadInfo *pThreadInfo) {
pThreadInfo
->
totalDelay
+=
delay
;
if
(
affectedRows
<
0
)
{
errorPrint
(
"%s() LN%d, affected rows: %d
\n
"
,
errorPrint
2
(
"%s() LN%d, affected rows: %d
\n
"
,
__func__
,
__LINE__
,
affectedRows
);
goto
free_of_progressive
;
}
...
...
@@ -7278,7 +7257,7 @@ static int convertHostToServAddr(char *host, uint16_t port, struct sockaddr_in *
uint16_t
rest_port
=
port
+
TSDB_PORT_HTTP
;
struct
hostent
*
server
=
gethostbyname
(
host
);
if
((
server
==
NULL
)
||
(
server
->
h_addr
==
NULL
))
{
errorPrint
(
"%s"
,
"ERROR,
no such host"
);
errorPrint
2
(
"%s"
,
"
no such host"
);
return
-
1
;
}
...
...
@@ -7303,7 +7282,7 @@ static int parseSampleFileToStmt(SSuperTable *stbInfo, uint32_t timePrec)
{
stbInfo
->
sampleBindArray
=
calloc
(
1
,
sizeof
(
char
*
)
*
MAX_SAMPLES_ONCE_FROM_FILE
);
if
(
stbInfo
->
sampleBindArray
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %"
PRIu64
" bind array buffer
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %"
PRIu64
" bind array buffer
\n
"
,
__func__
,
__LINE__
,
(
uint64_t
)
sizeof
(
char
*
)
*
MAX_SAMPLES_ONCE_FROM_FILE
);
return
-
1
;
}
...
...
@@ -7312,7 +7291,7 @@ static int parseSampleFileToStmt(SSuperTable *stbInfo, uint32_t timePrec)
for
(
int
i
=
0
;
i
<
MAX_SAMPLES_ONCE_FROM_FILE
;
i
++
)
{
char
*
bindArray
=
calloc
(
1
,
sizeof
(
TAOS_BIND
)
*
(
stbInfo
->
columnCount
+
1
));
if
(
bindArray
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %d bind params
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %d bind params
\n
"
,
__func__
,
__LINE__
,
(
stbInfo
->
columnCount
+
1
));
return
-
1
;
}
...
...
@@ -7344,7 +7323,7 @@ static int parseSampleFileToStmt(SSuperTable *stbInfo, uint32_t timePrec)
char
*
bindBuffer
=
calloc
(
1
,
index
+
1
);
if
(
bindBuffer
==
NULL
)
{
errorPrint
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
errorPrint
2
(
"%s() LN%d, Failed to allocate %d bind buffer
\n
"
,
__func__
,
__LINE__
,
DOUBLE_BUFF_LEN
);
return
-
1
;
}
...
...
@@ -7382,7 +7361,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
}
else
if
(
0
==
strncasecmp
(
precision
,
"ns"
,
2
))
{
timePrec
=
TSDB_TIME_PRECISION_NANO
;
}
else
{
errorPrint
(
"Not support precision: %s
\n
"
,
precision
);
errorPrint
2
(
"Not support precision: %s
\n
"
,
precision
);
exit
(
EXIT_FAILURE
);
}
}
...
...
@@ -7412,7 +7391,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
if
((
stbInfo
)
&&
(
0
==
strncasecmp
(
stbInfo
->
dataSource
,
"sample"
,
strlen
(
"sample"
))))
{
if
(
0
!=
prepareSampleDataForSTable
(
stbInfo
))
{
errorPrint
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
errorPrint
2
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -7422,7 +7401,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
g_Dbs
.
host
,
g_Dbs
.
user
,
g_Dbs
.
password
,
db_name
,
g_Dbs
.
port
);
if
(
NULL
==
taos0
)
{
errorPrint
(
"%s() LN%d, connect to server fail , reason: %s
\n
"
,
errorPrint
2
(
"%s() LN%d, connect to server fail , reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_errstr
(
NULL
));
exit
(
EXIT_FAILURE
);
}
...
...
@@ -7477,7 +7456,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
limit
*
TSDB_TABLE_NAME_LEN
);
if
(
stbInfo
->
childTblName
==
NULL
)
{
taos_close
(
taos0
);
errorPrint
(
"%s() LN%d, alloc memory failed!
\n
"
,
__func__
,
__LINE__
);
errorPrint
2
(
"%s() LN%d, alloc memory failed!
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -7583,7 +7562,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
g_Dbs
.
password
,
db_name
,
g_Dbs
.
port
);
if
(
NULL
==
pThreadInfo
->
taos
)
{
free
(
infos
);
errorPrint
(
errorPrint
2
(
"%s() LN%d, connect to server fail from insert sub thread, reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_errstr
(
NULL
));
...
...
@@ -7599,7 +7578,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
if
(
NULL
==
pThreadInfo
->
stmt
)
{
free
(
pids
);
free
(
infos
);
errorPrint
(
errorPrint
2
(
"%s() LN%d, failed init stmt, reason: %s
\n
"
,
__func__
,
__LINE__
,
taos_errstr
(
NULL
));
...
...
@@ -7611,7 +7590,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
free
(
pids
);
free
(
infos
);
free
(
stmtBuffer
);
errorPrint
(
"failed to execute taos_stmt_prepare. return 0x%x. reason: %s
\n
"
,
errorPrint
2
(
"failed to execute taos_stmt_prepare. return 0x%x. reason: %s
\n
"
,
ret
,
taos_stmt_errstr
(
pThreadInfo
->
stmt
));
exit
(
EXIT_FAILURE
);
}
...
...
@@ -7755,7 +7734,7 @@ static void *readTable(void *sarg) {
char
*
tb_prefix
=
pThreadInfo
->
tb_prefix
;
FILE
*
fp
=
fopen
(
pThreadInfo
->
filePath
,
"a"
);
if
(
NULL
==
fp
)
{
errorPrint
(
"fopen %s fail, reason:%s.
\n
"
,
pThreadInfo
->
filePath
,
strerror
(
errno
));
errorPrint
2
(
"fopen %s fail, reason:%s.
\n
"
,
pThreadInfo
->
filePath
,
strerror
(
errno
));
free
(
command
);
return
NULL
;
}
...
...
@@ -7791,7 +7770,7 @@ static void *readTable(void *sarg) {
int32_t
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
errorPrint
(
"Failed to query:%s
\n
"
,
taos_errstr
(
pSql
));
errorPrint
2
(
"Failed to query:%s
\n
"
,
taos_errstr
(
pSql
));
taos_free_result
(
pSql
);
taos_close
(
taos
);
fclose
(
fp
);
...
...
@@ -7873,7 +7852,7 @@ static void *readMetric(void *sarg) {
int32_t
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
errorPrint
(
"Failed to query:%s
\n
"
,
taos_errstr
(
pSql
));
errorPrint
2
(
"Failed to query:%s
\n
"
,
taos_errstr
(
pSql
));
taos_free_result
(
pSql
);
taos_close
(
taos
);
fclose
(
fp
);
...
...
@@ -7920,7 +7899,7 @@ static int insertTestProcess() {
debugPrint
(
"%d result file: %s
\n
"
,
__LINE__
,
g_Dbs
.
resultFile
);
g_fpOfInsertResult
=
fopen
(
g_Dbs
.
resultFile
,
"a"
);
if
(
NULL
==
g_fpOfInsertResult
)
{
errorPrint
(
"Failed to open %s for save result
\n
"
,
g_Dbs
.
resultFile
);
errorPrint
(
"Failed to open %s for save result
\n
"
,
g_Dbs
.
resultFile
);
return
-
1
;
}
...
...
@@ -8022,7 +8001,7 @@ static void *specifiedTableQuery(void *sarg) {
NULL
,
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
errorPrint
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
pThreadInfo
->
threadID
,
taos_errstr
(
NULL
));
return
NULL
;
}
else
{
...
...
@@ -8034,7 +8013,7 @@ static void *specifiedTableQuery(void *sarg) {
sprintf
(
sqlStr
,
"use %s"
,
g_queryInfo
.
dbName
);
if
(
0
!=
queryDbExec
(
pThreadInfo
->
taos
,
sqlStr
,
NO_INSERT_TYPE
,
false
))
{
taos_close
(
pThreadInfo
->
taos
);
errorPrint
(
"use database %s failed!
\n\n
"
,
errorPrint
(
"use database %s failed!
\n\n
"
,
g_queryInfo
.
dbName
);
return
NULL
;
}
...
...
@@ -8200,7 +8179,7 @@ static int queryTestProcess() {
NULL
,
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
exit
(
EXIT_FAILURE
);
}
...
...
@@ -8258,7 +8237,7 @@ static int queryTestProcess() {
taos_close
(
taos
);
free
(
infos
);
free
(
pids
);
errorPrint
(
"use database %s failed!
\n\n
"
,
errorPrint
2
(
"use database %s failed!
\n\n
"
,
g_queryInfo
.
dbName
);
return
-
1
;
}
...
...
@@ -8356,7 +8335,7 @@ static int queryTestProcess() {
static
void
stable_sub_callback
(
TAOS_SUB
*
tsub
,
TAOS_RES
*
res
,
void
*
param
,
int
code
)
{
if
(
res
==
NULL
||
taos_errno
(
res
)
!=
0
)
{
errorPrint
(
"%s() LN%d, failed to subscribe result, code:%d, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to subscribe result, code:%d, reason:%s
\n
"
,
__func__
,
__LINE__
,
code
,
taos_errstr
(
res
));
return
;
}
...
...
@@ -8369,7 +8348,7 @@ static void stable_sub_callback(
static
void
specified_sub_callback
(
TAOS_SUB
*
tsub
,
TAOS_RES
*
res
,
void
*
param
,
int
code
)
{
if
(
res
==
NULL
||
taos_errno
(
res
)
!=
0
)
{
errorPrint
(
"%s() LN%d, failed to subscribe result, code:%d, reason:%s
\n
"
,
errorPrint
2
(
"%s() LN%d, failed to subscribe result, code:%d, reason:%s
\n
"
,
__func__
,
__LINE__
,
code
,
taos_errstr
(
res
));
return
;
}
...
...
@@ -8408,7 +8387,7 @@ static TAOS_SUB* subscribeImpl(
}
if
(
tsub
==
NULL
)
{
errorPrint
(
"failed to create subscription. topic:%s, sql:%s
\n
"
,
topic
,
sql
);
errorPrint
2
(
"failed to create subscription. topic:%s, sql:%s
\n
"
,
topic
,
sql
);
return
NULL
;
}
...
...
@@ -8439,7 +8418,7 @@ static void *superSubscribe(void *sarg) {
g_queryInfo
.
dbName
,
g_queryInfo
.
port
);
if
(
pThreadInfo
->
taos
==
NULL
)
{
errorPrint
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
pThreadInfo
->
threadID
,
taos_errstr
(
NULL
));
free
(
subSqlStr
);
return
NULL
;
...
...
@@ -8450,7 +8429,7 @@ static void *superSubscribe(void *sarg) {
sprintf
(
sqlStr
,
"USE %s"
,
g_queryInfo
.
dbName
);
if
(
0
!=
queryDbExec
(
pThreadInfo
->
taos
,
sqlStr
,
NO_INSERT_TYPE
,
false
))
{
taos_close
(
pThreadInfo
->
taos
);
errorPrint
(
"use database %s failed!
\n\n
"
,
errorPrint
2
(
"use database %s failed!
\n\n
"
,
g_queryInfo
.
dbName
);
free
(
subSqlStr
);
return
NULL
;
...
...
@@ -8586,7 +8565,7 @@ static void *specifiedSubscribe(void *sarg) {
g_queryInfo
.
dbName
,
g_queryInfo
.
port
);
if
(
pThreadInfo
->
taos
==
NULL
)
{
errorPrint
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"[%d] Failed to connect to TDengine, reason:%s
\n
"
,
pThreadInfo
->
threadID
,
taos_errstr
(
NULL
));
return
NULL
;
}
...
...
@@ -8693,7 +8672,7 @@ static int subscribeTestProcess() {
g_queryInfo
.
dbName
,
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
exit
(
EXIT_FAILURE
);
}
...
...
@@ -8721,7 +8700,7 @@ static int subscribeTestProcess() {
g_queryInfo
.
specifiedQueryInfo
.
sqlCount
);
}
else
{
if
(
g_queryInfo
.
specifiedQueryInfo
.
concurrent
<=
0
)
{
errorPrint
(
"%s() LN%d, sepcified query sqlCount %d.
\n
"
,
errorPrint
2
(
"%s() LN%d, sepcified query sqlCount %d.
\n
"
,
__func__
,
__LINE__
,
g_queryInfo
.
specifiedQueryInfo
.
sqlCount
);
exit
(
EXIT_FAILURE
);
...
...
@@ -8738,7 +8717,7 @@ static int subscribeTestProcess() {
g_queryInfo
.
specifiedQueryInfo
.
concurrent
*
sizeof
(
threadInfo
));
if
((
NULL
==
pids
)
||
(
NULL
==
infos
))
{
errorPrint
(
"%s() LN%d, malloc failed for create threads
\n
"
,
__func__
,
__LINE__
);
errorPrint
2
(
"%s() LN%d, malloc failed for create threads
\n
"
,
__func__
,
__LINE__
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -8773,7 +8752,7 @@ static int subscribeTestProcess() {
g_queryInfo
.
superQueryInfo
.
threadCnt
*
sizeof
(
threadInfo
));
if
((
NULL
==
pidsOfStable
)
||
(
NULL
==
infosOfStable
))
{
errorPrint
(
"%s() LN%d, malloc failed for create threads
\n
"
,
errorPrint
2
(
"%s() LN%d, malloc failed for create threads
\n
"
,
__func__
,
__LINE__
);
// taos_close(taos);
exit
(
EXIT_FAILURE
);
...
...
@@ -9039,7 +9018,7 @@ static void querySqlFile(TAOS* taos, char* sqlFile)
memcpy
(
cmd
+
cmd_len
,
line
,
read_len
);
if
(
0
!=
queryDbExec
(
taos
,
cmd
,
NO_INSERT_TYPE
,
false
))
{
errorPrint
(
"%s() LN%d, queryDbExec %s failed!
\n
"
,
errorPrint
2
(
"%s() LN%d, queryDbExec %s failed!
\n
"
,
__func__
,
__LINE__
,
cmd
);
tmfree
(
cmd
);
tmfree
(
line
);
...
...
@@ -9113,7 +9092,7 @@ static void queryResult() {
g_Dbs
.
port
);
if
(
pThreadInfo
->
taos
==
NULL
)
{
free
(
pThreadInfo
);
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
errorPrint
2
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
exit
(
EXIT_FAILURE
);
}
...
...
@@ -9135,7 +9114,7 @@ static void testCmdLine() {
if
(
strlen
(
configDir
))
{
wordexp_t
full_path
;
if
(
wordexp
(
configDir
,
&
full_path
,
0
)
!=
0
)
{
errorPrint
(
"Invalid path %s
\n
"
,
configDir
);
errorPrint
(
"Invalid path %s
\n
"
,
configDir
);
return
;
}
taos_options
(
TSDB_OPTION_CONFIGDIR
,
full_path
.
we_wordv
[
0
]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录