Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
24ce15c2
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看板
未验证
提交
24ce15c2
编写于
6月 28, 2023
作者:
W
wade zhang
提交者:
GitHub
6月 28, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #21887 from taosdata/fix/TD-24912-MAIN
fix: restore current database while restoring connection
上级
d0542f99
91a6b891
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
1 deletion
+51
-1
tools/shell/src/shellWebsocket.c
tools/shell/src/shellWebsocket.c
+51
-1
未找到文件。
tools/shell/src/shellWebsocket.c
浏览文件 @
24ce15c2
...
...
@@ -17,6 +17,9 @@
#include <taosws.h>
#include <shellInt.h>
// save current database name
char
curDBName
[
128
]
=
""
;
// TDB_MAX_DBNAME_LEN is 24, put large
int
shell_conn_ws_server
(
bool
first
)
{
char
cuttedDsn
[
SHELL_WS_DSN_BUFF
]
=
{
0
};
int
dsnLen
=
strlen
(
shell
.
args
.
dsn
);
...
...
@@ -59,6 +62,14 @@ int shell_conn_ws_server(bool first) {
fprintf
(
stdout
,
"successfully connected to cloud service
\n
"
);
}
fflush
(
stdout
);
// switch to current database if have
if
(
curDBName
[
0
]
!=
0
)
{
char
command
[
256
];
sprintf
(
command
,
"use %s;"
,
curDBName
);
shellRunSingleCommandWebsocketImp
(
command
);
}
return
0
;
}
...
...
@@ -290,7 +301,46 @@ void shellRunSingleCommandWebsocketImp(char *command) {
if
(
shellRegexMatch
(
command
,
"^
\\
s*use
\\
s+[a-zA-Z0-9_]+
\\
s*;
\\
s*$"
,
REG_EXTENDED
|
REG_ICASE
))
{
fprintf
(
stdout
,
"Database changed.
\r\n\r\n
"
);
// copy dbname to curDBName
char
*
p
=
command
;
bool
firstStart
=
false
;
bool
firstEnd
=
false
;
int
i
=
0
;
while
(
*
p
!=
0
)
{
if
(
*
p
!=
' '
)
{
// not blank
if
(
!
firstStart
)
{
firstStart
=
true
;
}
else
if
(
firstEnd
)
{
if
(
*
p
==
';'
&&
*
p
!=
'\\'
)
{
break
;
}
// database name
curDBName
[
i
++
]
=
*
p
;
if
(
i
+
4
>
sizeof
(
curDBName
))
{
// DBName is too long, reset zero and break
i
=
0
;
break
;
}
}
}
else
{
// blank
if
(
firstStart
==
true
&&
firstEnd
==
false
){
firstEnd
=
true
;
}
if
(
firstStart
&&
firstEnd
&&
i
>
0
){
// blank after database name
break
;
}
}
// move next
p
++
;
}
// append end
curDBName
[
i
]
=
0
;
fprintf
(
stdout
,
"Database changed to %s.
\r\n\r\n
"
,
curDBName
);
fflush
(
stdout
);
ws_free_result
(
res
);
return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录