Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
fb62d4bb
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看板
未验证
提交
fb62d4bb
编写于
7月 28, 2021
作者:
sangshuduo
提交者:
GitHub
7月 28, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-5591]<fix>: taosdemo coredump when query 4096 columns. (#7055)
上级
82eaa2a5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
16 deletion
+15
-16
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+15
-16
未找到文件。
src/kit/taosdemo/taosdemo.c
浏览文件 @
fb62d4bb
...
...
@@ -95,7 +95,6 @@ extern char configDir[];
#define MAX_SUPER_TABLE_COUNT 200
#define MAX_QUERY_SQL_COUNT 100
#define MAX_QUERY_SQL_LENGTH BUFFER_SIZE
#define MAX_DATABASE_COUNT 256
#define INPUT_BUF_LEN 256
...
...
@@ -382,7 +381,7 @@ typedef struct SpecifiedQueryInfo_S {
uint64_t
queryTimes
;
bool
subscribeRestart
;
int
subscribeKeepProgress
;
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
sql
[
MAX_QUERY_SQL_COUNT
][
BUFFER_SIZE
+
1
];
char
result
[
MAX_QUERY_SQL_COUNT
][
MAX_FILE_NAME_LEN
];
int
resubAfterConsume
[
MAX_QUERY_SQL_COUNT
];
int
endAfterConsume
[
MAX_QUERY_SQL_COUNT
];
...
...
@@ -405,7 +404,7 @@ typedef struct SuperQueryInfo_S {
int64_t
childTblCount
;
char
childTblPrefix
[
TSDB_TABLE_NAME_LEN
-
20
];
// 20 characters reserved for seq
int
sqlCount
;
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
sql
[
MAX_QUERY_SQL_COUNT
][
BUFFER_SIZE
+
1
];
char
result
[
MAX_QUERY_SQL_COUNT
][
MAX_FILE_NAME_LEN
];
int
resubAfterConsume
;
int
endAfterConsume
;
...
...
@@ -1252,14 +1251,14 @@ static void fetchResult(TAOS_RES *res, threadInfo* pThreadInfo) {
// fetch the records row by row
while
((
row
=
taos_fetch_row
(
res
)))
{
if
(
totalLen
>=
100
*
1024
*
1024
-
32000
)
{
if
(
totalLen
>=
(
100
*
1024
*
1024
-
HEAD_BUFF_LEN
*
2
)
)
{
if
(
strlen
(
pThreadInfo
->
filePath
)
>
0
)
appendResultBufToFile
(
databuf
,
pThreadInfo
);
totalLen
=
0
;
memset
(
databuf
,
0
,
100
*
1024
*
1024
);
}
num_rows
++
;
char
temp
[
16000
]
=
{
0
};
char
temp
[
HEAD_BUFF_LEN
]
=
{
0
};
int
len
=
taos_print_row
(
temp
,
row
,
fields
,
num_fields
);
len
+=
sprintf
(
temp
+
len
,
"
\n
"
);
//printf("query result:%s\n", temp);
...
...
@@ -2164,15 +2163,15 @@ static void printfDbInfoForQueryToFile(
}
static
void
printfQuerySystemInfo
(
TAOS
*
taos
)
{
char
filename
[
MAX_QUERY_SQL_LENGTH
+
1
]
=
{
0
};
char
buffer
[
MAX_QUERY_SQL_LENGTH
+
1
]
=
{
0
};
char
filename
[
BUFFER_SIZE
+
1
]
=
{
0
};
char
buffer
[
BUFFER_SIZE
+
1
]
=
{
0
};
TAOS_RES
*
res
;
time_t
t
;
struct
tm
*
lt
;
time
(
&
t
);
lt
=
localtime
(
&
t
);
snprintf
(
filename
,
MAX_QUERY_SQL_LENGTH
,
"querySystemInfo-%d-%d-%d %d:%d:%d"
,
snprintf
(
filename
,
BUFFER_SIZE
,
"querySystemInfo-%d-%d-%d %d:%d:%d"
,
lt
->
tm_year
+
1900
,
lt
->
tm_mon
,
lt
->
tm_mday
,
lt
->
tm_hour
,
lt
->
tm_min
,
lt
->
tm_sec
);
...
...
@@ -2204,12 +2203,12 @@ static void printfQuerySystemInfo(TAOS * taos) {
printfDbInfoForQueryToFile
(
filename
,
dbInfos
[
i
],
i
);
// show db.vgroups
snprintf
(
buffer
,
MAX_QUERY_SQL_LENGTH
,
"show %s.vgroups;"
,
dbInfos
[
i
]
->
name
);
snprintf
(
buffer
,
BUFFER_SIZE
,
"show %s.vgroups;"
,
dbInfos
[
i
]
->
name
);
res
=
taos_query
(
taos
,
buffer
);
xDumpResultToFile
(
filename
,
res
);
// show db.stables
snprintf
(
buffer
,
MAX_QUERY_SQL_LENGTH
,
"show %s.stables;"
,
dbInfos
[
i
]
->
name
);
snprintf
(
buffer
,
BUFFER_SIZE
,
"show %s.stables;"
,
dbInfos
[
i
]
->
name
);
res
=
taos_query
(
taos
,
buffer
);
xDumpResultToFile
(
filename
,
res
);
free
(
dbInfos
[
i
]);
...
...
@@ -4529,7 +4528,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
goto
PARSE_OVER
;
}
tstrncpy
(
g_queryInfo
.
specifiedQueryInfo
.
sql
[
j
],
sqlStr
->
valuestring
,
MAX_QUERY_SQL_LENGTH
);
sqlStr
->
valuestring
,
BUFFER_SIZE
);
// default value is -1, which mean infinite loop
g_queryInfo
.
specifiedQueryInfo
.
endAfterConsume
[
j
]
=
-
1
;
...
...
@@ -4751,7 +4750,7 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
goto
PARSE_OVER
;
}
tstrncpy
(
g_queryInfo
.
superQueryInfo
.
sql
[
j
],
sqlStr
->
valuestring
,
MAX_QUERY_SQL_LENGTH
);
BUFFER_SIZE
);
cJSON
*
result
=
cJSON_GetObjectItem
(
sql
,
"result"
);
if
(
result
!=
NULL
&&
result
->
type
==
cJSON_String
...
...
@@ -7404,14 +7403,14 @@ static void replaceChildTblName(char* inSql, char* outSql, int tblIndex) {
tstrncpy
(
outSql
,
inSql
,
pos
-
inSql
+
1
);
//printf("1: %s\n", outSql);
strncat
(
outSql
,
subTblName
,
MAX_QUERY_SQL_LENGTH
-
1
);
strncat
(
outSql
,
subTblName
,
BUFFER_SIZE
-
1
);
//printf("2: %s\n", outSql);
strncat
(
outSql
,
pos
+
strlen
(
sourceString
),
MAX_QUERY_SQL_LENGTH
-
1
);
strncat
(
outSql
,
pos
+
strlen
(
sourceString
),
BUFFER_SIZE
-
1
);
//printf("3: %s\n", outSql);
}
static
void
*
superTableQuery
(
void
*
sarg
)
{
char
sqlstr
[
MAX_QUERY_SQL_LENGTH
];
char
sqlstr
[
BUFFER_SIZE
];
threadInfo
*
pThreadInfo
=
(
threadInfo
*
)
sarg
;
setThreadName
(
"superTableQuery"
);
...
...
@@ -7714,7 +7713,7 @@ static TAOS_SUB* subscribeImpl(
static
void
*
superSubscribe
(
void
*
sarg
)
{
threadInfo
*
pThreadInfo
=
(
threadInfo
*
)
sarg
;
char
subSqlstr
[
MAX_QUERY_SQL_LENGTH
];
char
subSqlstr
[
BUFFER_SIZE
];
TAOS_SUB
*
tsub
[
MAX_QUERY_SQL_COUNT
]
=
{
0
};
uint64_t
tsubSeq
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录