Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6ed6f0fc
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看板
提交
6ed6f0fc
编写于
7月 16, 2022
作者:
A
Alex Duan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(shell): -DMEMORY_SANITIZER=true check memory leak and fix
上级
a6dda144
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
18 deletion
+28
-18
src/kit/shell/src/shellAuto.c
src/kit/shell/src/shellAuto.c
+26
-17
src/kit/shell/src/tire.c
src/kit/shell/src/tire.c
+2
-1
未找到文件。
src/kit/shell/src/shellAuto.c
浏览文件 @
6ed6f0fc
...
...
@@ -83,11 +83,11 @@ SWords shellCommands[] = {
{
"delete from <all_table> where"
,
0
,
0
,
NULL
},
#endif
{
"drop database <db_name>"
,
0
,
0
,
NULL
},
{
"drop table <all_table> "
,
0
,
0
,
NULL
},
{
"drop dnode <dnode_id>"
,
0
,
0
,
NULL
},
{
"drop user <user_name> ;"
,
0
,
0
,
NULL
},
{
"drop function"
,
0
,
0
,
NULL
},
{
"drop topic"
,
0
,
0
,
NULL
},
{
"drop table <all_table>;"
,
0
,
0
,
NULL
},
{
"drop user <user_name>;"
,
0
,
0
,
NULL
},
{
"kill connection"
,
0
,
0
,
NULL
},
{
"kill query"
,
0
,
0
,
NULL
},
{
"kill stream"
,
0
,
0
,
NULL
},
...
...
@@ -366,10 +366,10 @@ void showHelp() {
describe <all_table> ;
\n
\
delete from <all_table> where ...
\n
\
drop database <db_name>;
\n
\
drop table <all_table>;
\n
\
drop dnode <dnode_id>;
\n
\
drop function <function_id>;
\n
\
drop topic <topic_id>;
\n
\
drop table <all_table>;
\n
\
drop user <user_name>;
\n
\
----- K -----
\n
\
kill connection <connection_id>;
\n
\
...
...
@@ -1087,12 +1087,14 @@ bool firstMatchCommand(TAOS * con, Command * cmd) {
if
(
match
==
NULL
)
{
// not match , nothing to do
freeCommand
(
input
);
free
(
input
);
return
false
;
}
// print to screen
printScreen
(
con
,
cmd
,
match
);
freeCommand
(
input
);
free
(
input
);
return
true
;
}
...
...
@@ -1145,6 +1147,9 @@ bool nextMatchCommand(TAOS * con, Command * cmd, SWords * firstMatch) {
match
=
matchCommand
(
input
,
false
);
if
(
match
==
NULL
)
{
freeCommand
(
input
);
if
(
input
->
source
)
free
(
input
->
source
);
free
(
input
);
return
false
;
}
}
...
...
@@ -1158,6 +1163,7 @@ bool nextMatchCommand(TAOS * con, Command * cmd, SWords * firstMatch) {
input
->
source
=
NULL
;
}
freeCommand
(
input
);
free
(
input
);
return
true
;
}
...
...
@@ -1247,22 +1253,20 @@ bool fieldsInputEnd(char* sql) {
}
// not in ','
char
*
p
=
strrchr
(
sql
,
','
);
char
*
p3
=
strrchr
(
sql
,
','
);
char
*
p
=
p3
;
// like select ts, age,' '
if
(
p
)
{
++
p
;
bool
allBlank
=
true
;
int
cnt
=
0
;
// blank count ,
continue many blank i
s one blank
char
*
plast
=
NULL
;
bool
allBlank
=
true
;
// after last ',' all char is blank
int
cnt
=
0
;
// blank count ,
like ' ' a
s one blank
char
*
plast
=
NULL
;
// last blank position
while
(
*
p
)
{
if
(
*
p
!
=
' '
)
{
allBlank
=
false
;
plast
=
NULL
;
if
(
*
p
=
=
' '
)
{
plast
=
p
;
cnt
++
;
}
else
{
if
(
plast
==
NULL
)
{
plast
=
p
;
cnt
++
;
}
allBlank
=
false
;
}
++
p
;
}
...
...
@@ -1272,14 +1276,19 @@ bool fieldsInputEnd(char* sql) {
return
false
;
}
// if last char not ' ', then not end field, like select count(*), su + tab can fill sum(
// like 'select count(*),sum(age) fr' need return true
if
(
plast
&&
plast
>
p3
&&
p2
>
p1
&&
plast
>
p2
&&
p1
>
p3
)
{
return
true
;
}
// if last char not ' ', then not end field, like 'select count(*), su' can fill sum(
if
(
sql
[
strlen
(
sql
)
-
1
]
!=
' '
&&
cnt
<=
1
)
{
return
false
;
}
}
char
*
p
3
=
strrchr
(
sql
,
' '
);
if
(
p
3
==
NULL
)
{
char
*
p
4
=
strrchr
(
sql
,
' '
);
if
(
p
4
==
NULL
)
{
// only one word
return
false
;
}
...
...
src/kit/shell/src/tire.c
浏览文件 @
6ed6f0fc
...
...
@@ -58,13 +58,14 @@ void freeTire(STire* tire) {
// free from list
StrName
*
item
=
tire
->
head
;
while
(
item
)
{
StrName
*
next
=
item
->
next
;
// free string
tfree
(
item
->
name
);
// free node
tfree
(
item
);
// move next
item
=
item
->
next
;
item
=
next
;
}
tire
->
head
=
tire
->
tail
=
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录