Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
25c52f20
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看板
未验证
提交
25c52f20
编写于
7月 06, 2022
作者:
wafwerar
提交者:
GitHub
7月 06, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #14593 from taosdata/fix/ZhiqiangWang/TD-13064-fix-mac-shell-error
os: fix Mac shell error
上级
de65590a
194459bf
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
121 addition
and
109 deletion
+121
-109
source/libs/parser/src/parUtil.c
source/libs/parser/src/parUtil.c
+0
-2
source/os/src/osDir.c
source/os/src/osDir.c
+8
-0
source/os/src/osSocket.c
source/os/src/osSocket.c
+3
-3
source/os/src/osSysinfo.c
source/os/src/osSysinfo.c
+3
-1
tools/shell/src/shellArguments.c
tools/shell/src/shellArguments.c
+41
-41
tools/shell/src/shellCommand.c
tools/shell/src/shellCommand.c
+4
-4
tools/shell/src/shellEngine.c
tools/shell/src/shellEngine.c
+43
-39
tools/shell/src/shellNettest.c
tools/shell/src/shellNettest.c
+9
-9
tools/shell/src/shellUtil.c
tools/shell/src/shellUtil.c
+10
-10
未找到文件。
source/libs/parser/src/parUtil.c
浏览文件 @
25c52f20
...
...
@@ -376,8 +376,6 @@ int32_t parseJsontoTagData(const char* json, SArray* pTagVals, STag** ppTag, voi
char
*
jsonKey
=
item
->
string
;
if
(
!
isValidateTag
(
jsonKey
))
{
fprintf
(
stdout
,
"%s(%d) %s %08"
PRId64
"
\n
"
,
__FILE__
,
__LINE__
,
__func__
,
taosGetSelfPthreadId
());
fflush
(
stdout
);
retCode
=
buildSyntaxErrMsg
(
pMsgBuf
,
"json key not validate"
,
jsonKey
);
goto
end
;
}
...
...
source/os/src/osDir.c
浏览文件 @
25c52f20
...
...
@@ -260,6 +260,14 @@ char *taosDirName(char *name) {
name
[
0
]
=
0
;
}
return
name
;
#elif defined(_TD_DARWIN_64)
char
*
end
=
strrchr
(
name
,
'/'
);
if
(
end
!=
NULL
)
{
*
end
=
'\0'
;
}
else
{
name
[
0
]
=
0
;
}
return
name
;
#else
return
dirname
(
name
);
#endif
...
...
source/os/src/osSocket.c
浏览文件 @
25c52f20
...
...
@@ -947,9 +947,9 @@ int32_t taosGetFqdn(char *fqdn) {
hostname
[
1023
]
=
'\0'
;
if
(
gethostname
(
hostname
,
1023
)
==
-
1
)
{
#ifdef WINDOWS
printf
(
"failed to get hostname, reason:%s"
,
strerror
(
WSAGetLastError
()));
printf
(
"failed to get hostname, reason:%s
\n
"
,
strerror
(
WSAGetLastError
()));
#else
printf
(
"failed to get hostname, reason:%s"
,
strerror
(
errno
));
printf
(
"failed to get hostname, reason:%s
\n
"
,
strerror
(
errno
));
#endif
assert
(
0
);
return
-
1
;
...
...
@@ -968,7 +968,7 @@ int32_t taosGetFqdn(char *fqdn) {
#endif // __APPLE__
int32_t
ret
=
getaddrinfo
(
hostname
,
NULL
,
&
hints
,
&
result
);
if
(
!
result
)
{
fprintf
(
stderr
,
"failed to get fqdn, code:%d, reason:%s"
,
ret
,
gai_strerror
(
ret
));
fprintf
(
stderr
,
"failed to get fqdn, code:%d, reason:%s
\n
"
,
ret
,
gai_strerror
(
ret
));
return
-
1
;
}
...
...
source/os/src/osSysinfo.c
浏览文件 @
25c52f20
...
...
@@ -759,9 +759,11 @@ int32_t taosGetSystemUUID(char *uid, int32_t uidlen) {
return
0
;
#elif defined(_TD_DARWIN_64)
uuid_t
uuid
=
{
0
};
char
buf
[
37
]
=
{
0
};
uuid_generate
(
uuid
);
// it's caller's responsibility to make enough space for `uid`, that's 36-char + 1-null
uuid_unparse_lower
(
uuid
,
uid
);
uuid_unparse_lower
(
uuid
,
buf
);
memcpy
(
uid
,
buf
,
uidlen
);
return
0
;
#else
int
len
=
0
;
...
...
tools/shell/src/shellArguments.c
浏览文件 @
25c52f20
...
...
@@ -44,27 +44,27 @@ static int32_t shellParseSingleOpt(int32_t key, char *arg);
void
shellPrintHelp
()
{
char
indent
[]
=
" "
;
printf
(
"Usage: taos [OPTION...]
\
n
\n
"
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-a,"
,
indent
,
SHELL_AUTH
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-A,"
,
indent
,
SHELL_GEN_AUTH
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-c,"
,
indent
,
SHELL_CFG_DIR
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-C,"
,
indent
,
SHELL_DMP_CFG
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-d,"
,
indent
,
SHELL_DB
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-f,"
,
indent
,
SHELL_FILE
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-h,"
,
indent
,
SHELL_HOST
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-k,"
,
indent
,
SHELL_CHECK
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-l,"
,
indent
,
SHELL_PKG_LEN
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-n,"
,
indent
,
SHELL_NET_ROLE
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-N,"
,
indent
,
SHELL_PKT_NUM
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-p,"
,
indent
,
SHELL_PASSWORD
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-P,"
,
indent
,
SHELL_PORT
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-r,"
,
indent
,
SHELL_RAW_TIME
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-s,"
,
indent
,
SHELL_CMD
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-t,"
,
indent
,
SHELL_STARTUP
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-u,"
,
indent
,
SHELL_USER
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-w,"
,
indent
,
SHELL_WIDTH
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-V,"
,
indent
,
SHELL_VERSION
);
printf
(
"
\
n\n
Report bugs to %s.
\n
"
,
SHELL_EMAIL
);
printf
(
"Usage: taos [OPTION...]
\
r\n\r
\n
"
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-a,"
,
indent
,
SHELL_AUTH
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-A,"
,
indent
,
SHELL_GEN_AUTH
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-c,"
,
indent
,
SHELL_CFG_DIR
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-C,"
,
indent
,
SHELL_DMP_CFG
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-d,"
,
indent
,
SHELL_DB
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-f,"
,
indent
,
SHELL_FILE
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-h,"
,
indent
,
SHELL_HOST
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-k,"
,
indent
,
SHELL_CHECK
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-l,"
,
indent
,
SHELL_PKG_LEN
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-n,"
,
indent
,
SHELL_NET_ROLE
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-N,"
,
indent
,
SHELL_PKT_NUM
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-p,"
,
indent
,
SHELL_PASSWORD
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-P,"
,
indent
,
SHELL_PORT
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-r,"
,
indent
,
SHELL_RAW_TIME
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-s,"
,
indent
,
SHELL_CMD
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-t,"
,
indent
,
SHELL_STARTUP
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-u,"
,
indent
,
SHELL_USER
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-w,"
,
indent
,
SHELL_WIDTH
);
printf
(
"%s%s%s%s
\
r\
n
"
,
indent
,
"-V,"
,
indent
,
SHELL_VERSION
);
printf
(
"
\
r\n\r\n
Report bugs to %s.
\r
\n
"
,
SHELL_EMAIL
);
}
#ifdef LINUX
...
...
@@ -196,23 +196,23 @@ int32_t shellParseArgsWithoutArgp(int argc, char *argv[]) {
char
*
key
=
argv
[
i
];
int32_t
keyLen
=
strlen
(
key
);
if
(
keyLen
!=
2
)
{
fprintf
(
stderr
,
"invalid option %s
\n
"
,
key
);
fprintf
(
stderr
,
"invalid option %s
\
r\
n
"
,
key
);
return
-
1
;
}
if
(
key
[
0
]
!=
'-'
)
{
fprintf
(
stderr
,
"invalid option %s
\n
"
,
key
);
fprintf
(
stderr
,
"invalid option %s
\
r\
n
"
,
key
);
return
-
1
;
}
if
(
key
[
1
]
==
'h'
||
key
[
1
]
==
'P'
||
key
[
1
]
==
'u'
||
key
[
1
]
==
'a'
||
key
[
1
]
==
'c'
||
key
[
1
]
==
's'
||
key
[
1
]
==
'f'
||
key
[
1
]
==
'd'
||
key
[
1
]
==
'w'
||
key
[
1
]
==
'n'
||
key
[
1
]
==
'l'
||
key
[
1
]
==
'N'
)
{
if
(
i
+
1
>=
argc
)
{
fprintf
(
stderr
,
"option %s requires an argument
\n
"
,
key
);
fprintf
(
stderr
,
"option %s requires an argument
\
r\
n
"
,
key
);
return
-
1
;
}
char
*
val
=
argv
[
i
+
1
];
if
(
val
[
0
]
==
'-'
)
{
fprintf
(
stderr
,
"option %s requires an argument
\n
"
,
key
);
fprintf
(
stderr
,
"option %s requires an argument
\
r\
n
"
,
key
);
return
-
1
;
}
shellParseSingleOpt
(
key
[
1
],
val
);
...
...
@@ -221,7 +221,7 @@ int32_t shellParseArgsWithoutArgp(int argc, char *argv[]) {
key
[
1
]
==
't'
||
key
[
1
]
==
'V'
||
key
[
1
]
==
'?'
||
key
[
1
]
==
1
)
{
shellParseSingleOpt
(
key
[
1
],
NULL
);
}
else
{
fprintf
(
stderr
,
"invalid option %s
\n
"
,
key
);
fprintf
(
stderr
,
"invalid option %s
\
r\
n
"
,
key
);
return
-
1
;
}
}
...
...
@@ -241,7 +241,7 @@ static void shellInitArgs(int argc, char *argv[]) {
}
taosSetConsoleEcho
(
true
);
if
(
EOF
==
getchar
())
{
fprintf
(
stderr
,
"getchar() return EOF
\n
"
);
fprintf
(
stderr
,
"getchar() return EOF
\
r\
n
"
);
}
}
else
{
tstrncpy
(
shell
.
args
.
password
,
(
char
*
)(
argv
[
i
]
+
2
),
sizeof
(
shell
.
args
.
password
));
...
...
@@ -263,22 +263,22 @@ static void shellInitArgs(int argc, char *argv[]) {
static
int32_t
shellCheckArgs
()
{
SShellArgs
*
pArgs
=
&
shell
.
args
;
if
(
pArgs
->
host
!=
NULL
&&
(
strlen
(
pArgs
->
host
)
<=
0
||
strlen
(
pArgs
->
host
)
>
TSDB_FQDN_LEN
))
{
printf
(
"Invalid host:%s
\n
"
,
pArgs
->
host
);
printf
(
"Invalid host:%s
\
r\
n
"
,
pArgs
->
host
);
return
-
1
;
}
if
(
pArgs
->
user
!=
NULL
&&
(
strlen
(
pArgs
->
user
)
<=
0
||
strlen
(
pArgs
->
user
)
>
TSDB_USER_LEN
))
{
printf
(
"Invalid user:%s
\n
"
,
pArgs
->
user
);
printf
(
"Invalid user:%s
\
r\
n
"
,
pArgs
->
user
);
return
-
1
;
}
if
(
pArgs
->
auth
!=
NULL
&&
(
strlen
(
pArgs
->
auth
)
<=
0
||
strlen
(
pArgs
->
auth
)
>
TSDB_PASSWORD_LEN
))
{
printf
(
"Invalid auth:%s
\n
"
,
pArgs
->
auth
);
printf
(
"Invalid auth:%s
\
r\
n
"
,
pArgs
->
auth
);
return
-
1
;
}
if
(
pArgs
->
database
!=
NULL
&&
(
strlen
(
pArgs
->
database
)
<=
0
||
strlen
(
pArgs
->
database
)
>
TSDB_DB_NAME_LEN
))
{
printf
(
"Invalid database:%s
\n
"
,
pArgs
->
database
);
printf
(
"Invalid database:%s
\
r\
n
"
,
pArgs
->
database
);
return
-
1
;
}
...
...
@@ -291,7 +291,7 @@ static int32_t shellCheckArgs() {
if
(
pArgs
->
cfgdir
!=
NULL
)
{
if
(
strlen
(
pArgs
->
cfgdir
)
<=
0
||
strlen
(
pArgs
->
cfgdir
)
>=
PATH_MAX
)
{
printf
(
"Invalid cfgdir:%s
\n
"
,
pArgs
->
cfgdir
);
printf
(
"Invalid cfgdir:%s
\
r\
n
"
,
pArgs
->
cfgdir
);
return
-
1
;
}
else
{
if
(
taosExpandDir
(
pArgs
->
cfgdir
,
configDir
,
PATH_MAX
)
!=
0
)
{
...
...
@@ -301,37 +301,37 @@ static int32_t shellCheckArgs() {
}
if
(
pArgs
->
commands
!=
NULL
&&
(
strlen
(
pArgs
->
commands
)
<=
0
))
{
printf
(
"Invalid commands:%s
\n
"
,
pArgs
->
commands
);
printf
(
"Invalid commands:%s
\
r\
n
"
,
pArgs
->
commands
);
return
-
1
;
}
if
(
pArgs
->
netrole
!=
NULL
&&
!
(
strcmp
(
pArgs
->
netrole
,
"client"
)
==
0
||
strcmp
(
pArgs
->
netrole
,
"server"
)
==
0
))
{
printf
(
"Invalid netrole:%s
\n
"
,
pArgs
->
netrole
);
printf
(
"Invalid netrole:%s
\
r\
n
"
,
pArgs
->
netrole
);
return
-
1
;
}
if
(
pArgs
->
password
!=
NULL
&&
(
strlen
(
pArgs
->
password
)
<=
0
))
{
printf
(
"Invalid password
\n
"
);
printf
(
"Invalid password
\
r\
n
"
);
return
-
1
;
}
if
(
pArgs
->
port
<
0
||
pArgs
->
port
>
65535
)
{
printf
(
"Invalid port
\n
"
);
printf
(
"Invalid port
\
r\
n
"
);
return
-
1
;
}
if
(
pArgs
->
pktLen
<
SHELL_MIN_PKG_LEN
||
pArgs
->
pktLen
>
SHELL_MAX_PKG_LEN
)
{
printf
(
"Invalid pktLen:%d, range:[%d, %d]
\n
"
,
pArgs
->
pktLen
,
SHELL_MIN_PKG_LEN
,
SHELL_MAX_PKG_LEN
);
printf
(
"Invalid pktLen:%d, range:[%d, %d]
\
r\
n
"
,
pArgs
->
pktLen
,
SHELL_MIN_PKG_LEN
,
SHELL_MAX_PKG_LEN
);
return
-
1
;
}
if
(
pArgs
->
pktNum
<
SHELL_MIN_PKG_NUM
||
pArgs
->
pktNum
>
SHELL_MAX_PKG_NUM
)
{
printf
(
"Invalid pktNum:%d, range:[%d, %d]
\n
"
,
pArgs
->
pktNum
,
SHELL_MIN_PKG_NUM
,
SHELL_MAX_PKG_NUM
);
printf
(
"Invalid pktNum:%d, range:[%d, %d]
\
r\
n
"
,
pArgs
->
pktNum
,
SHELL_MIN_PKG_NUM
,
SHELL_MAX_PKG_NUM
);
return
-
1
;
}
if
(
pArgs
->
displayWidth
<=
0
||
pArgs
->
displayWidth
>
10
*
1024
)
{
printf
(
"Invalid displayWidth:%d, range:[1, 10 * 1024]
\n
"
,
pArgs
->
displayWidth
);
printf
(
"Invalid displayWidth:%d, range:[1, 10 * 1024]
\
r\
n
"
,
pArgs
->
displayWidth
);
return
-
1
;
}
...
...
@@ -341,8 +341,8 @@ static int32_t shellCheckArgs() {
int32_t
shellParseArgs
(
int32_t
argc
,
char
*
argv
[])
{
shellInitArgs
(
argc
,
argv
);
shell
.
info
.
clientVersion
=
"Welcome to the TDengine shell from %s, Client Version:%s
\n
"
"Copyright (c) 2022 by TAOS Data, Inc. All rights reserved.
\
n
\n
"
;
"Welcome to the TDengine shell from %s, Client Version:%s
\
r\
n
"
"Copyright (c) 2022 by TAOS Data, Inc. All rights reserved.
\
r\n\r
\n
"
;
shell
.
info
.
promptHeader
=
TAOS_CONSOLE_PROMPT_HEADER
;
shell
.
info
.
promptContinue
=
TAOS_CONSOLE_PROMPT_CONTINUE
;
shell
.
info
.
promptSize
=
6
;
...
...
tools/shell/src/shellCommand.c
浏览文件 @
25c52f20
...
...
@@ -314,7 +314,7 @@ void shellGetScreenSize(int32_t *ws_col, int32_t *ws_row) {
#else
struct
winsize
w
;
if
(
ioctl
(
0
,
TIOCGWINSZ
,
&
w
)
<
0
||
w
.
ws_col
==
0
||
w
.
ws_row
==
0
)
{
// fprintf(stderr, "No stream device, and use default value(col 120, row 30)\n");
// fprintf(stderr, "No stream device, and use default value(col 120, row 30)\
r\
n");
if
(
ws_col
!=
NULL
)
*
ws_col
=
120
;
if
(
ws_row
!=
NULL
)
*
ws_row
=
30
;
}
else
{
...
...
@@ -473,7 +473,7 @@ int32_t shellReadCommand(char *command) {
shellPositionCursorHome
(
&
cmd
);
break
;
case
3
:
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
shellResetCommand
(
&
cmd
,
""
);
#ifdef WINDOWS
raise
(
SIGINT
);
...
...
@@ -483,7 +483,7 @@ int32_t shellReadCommand(char *command) {
break
;
case
4
:
// EOF or Ctrl+D
taosResetTerminalMode
();
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
return
-
1
;
case
5
:
// ctrl E
shellPositionCursorEnd
(
&
cmd
);
...
...
@@ -495,7 +495,7 @@ int32_t shellReadCommand(char *command) {
case
'\r'
:
#ifdef WINDOWS
#else
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
#endif
if
(
shellIsReadyGo
(
&
cmd
))
{
sprintf
(
command
,
"%s%s"
,
cmd
.
buffer
,
cmd
.
command
);
...
...
tools/shell/src/shellEngine.c
浏览文件 @
25c52f20
...
...
@@ -180,7 +180,7 @@ void shellRunSingleCommandImp(char *command) {
}
if
(
shellRegexMatch
(
command
,
"^
\\
s*use
\\
s+[a-zA-Z0-9_]+
\\
s*;
\\
s*$"
,
REG_EXTENDED
|
REG_ICASE
))
{
fprintf
(
stdout
,
"Database changed.
\
n
\n
"
);
fprintf
(
stdout
,
"Database changed.
\
r\n\r
\n
"
);
fflush
(
stdout
);
taos_free_result
(
pSql
);
...
...
@@ -197,19 +197,19 @@ void shellRunSingleCommandImp(char *command) {
et
=
taosGetTimestampUs
();
if
(
error_no
==
0
)
{
printf
(
"Query OK, %d rows affected (%.6fs)
\n
"
,
numOfRows
,
(
et
-
st
)
/
1E6
);
printf
(
"Query OK, %d rows affected (%.6fs)
\
r\
n
"
,
numOfRows
,
(
et
-
st
)
/
1E6
);
}
else
{
printf
(
"Query interrupted (%s), %d rows affected (%.6fs)
\n
"
,
taos_errstr
(
pSql
),
numOfRows
,
(
et
-
st
)
/
1E6
);
printf
(
"Query interrupted (%s), %d rows affected (%.6fs)
\
r\
n
"
,
taos_errstr
(
pSql
),
numOfRows
,
(
et
-
st
)
/
1E6
);
}
taos_free_result
(
pSql
);
}
else
{
int32_t
num_rows_affacted
=
taos_affected_rows
(
pSql
);
taos_free_result
(
pSql
);
et
=
taosGetTimestampUs
();
printf
(
"Query OK, %d of %d rows affected (%.6fs)
\n
"
,
num_rows_affacted
,
num_rows_affacted
,
(
et
-
st
)
/
1E6
);
printf
(
"Query OK, %d of %d rows affected (%.6fs)
\
r\
n
"
,
num_rows_affacted
,
num_rows_affacted
,
(
et
-
st
)
/
1E6
);
}
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
}
char
*
shellFormatTimestamp
(
char
*
buf
,
int64_t
val
,
int32_t
precision
)
{
...
...
@@ -344,7 +344,7 @@ int32_t shellDumpResultToFile(const char *fname, TAOS_RES *tres) {
TdFilePtr
pFile
=
taosOpenFile
(
fullname
,
TD_FILE_CREATE
|
TD_FILE_WRITE
|
TD_FILE_TRUNC
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
fprintf
(
stderr
,
"failed to open file: %s
\n
"
,
fullname
);
fprintf
(
stderr
,
"failed to open file: %s
\
r\
n
"
,
fullname
);
return
-
1
;
}
...
...
@@ -358,7 +358,7 @@ int32_t shellDumpResultToFile(const char *fname, TAOS_RES *tres) {
}
taosFprintfFile
(
pFile
,
"%s"
,
fields
[
col
].
name
);
}
taosFprintfFile
(
pFile
,
"
\n
"
);
taosFprintfFile
(
pFile
,
"
\
r\
n
"
);
int32_t
numOfRows
=
0
;
do
{
...
...
@@ -369,7 +369,7 @@ int32_t shellDumpResultToFile(const char *fname, TAOS_RES *tres) {
}
shellDumpFieldToFile
(
pFile
,
(
const
char
*
)
row
[
i
],
fields
+
i
,
length
[
i
],
precision
);
}
taosFprintfFile
(
pFile
,
"
\n
"
);
taosFprintfFile
(
pFile
,
"
\
r\
n
"
);
numOfRows
++
;
row
=
taos_fetch_row
(
tres
);
...
...
@@ -559,7 +559,7 @@ int32_t shellVerticalPrintResult(TAOS_RES *tres, const char *sql) {
int32_t
showMore
=
1
;
do
{
if
(
numOfRows
<
resShowMaxNum
)
{
printf
(
"*************************** %d.row ***************************
\n
"
,
numOfRows
+
1
);
printf
(
"*************************** %d.row ***************************
\
r\
n
"
,
numOfRows
+
1
);
int32_t
*
length
=
taos_fetch_lengths
(
tres
);
...
...
@@ -570,16 +570,17 @@ int32_t shellVerticalPrintResult(TAOS_RES *tres, const char *sql) {
printf
(
"%*.s%s: "
,
padding
,
" "
,
field
->
name
);
shellPrintField
((
const
char
*
)
row
[
i
],
field
,
0
,
length
[
i
],
precision
);
putchar
(
'\r'
);
putchar
(
'\n'
);
}
}
else
if
(
showMore
)
{
printf
(
"
\n
"
);
printf
(
" Notice: The result shows only the first %d rows.
\n
"
,
SHELL_DEFAULT_RES_SHOW_NUM
);
printf
(
" You can use the `LIMIT` clause to get fewer result to show.
\n
"
);
printf
(
" Or use '>>' to redirect the whole set of the result to a specified file.
\n
"
);
printf
(
"
\n
"
);
printf
(
" You can use Ctrl+C to stop the underway fetching.
\n
"
);
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
printf
(
" Notice: The result shows only the first %d rows.
\
r\
n
"
,
SHELL_DEFAULT_RES_SHOW_NUM
);
printf
(
" You can use the `LIMIT` clause to get fewer result to show.
\
r\
n
"
);
printf
(
" Or use '>>' to redirect the whole set of the result to a specified file.
\
r\
n
"
);
printf
(
"
\
r\
n
"
);
printf
(
" You can use Ctrl+C to stop the underway fetching.
\
r\
n
"
);
printf
(
"
\
r\
n
"
);
showMore
=
0
;
}
...
...
@@ -667,10 +668,12 @@ void shellPrintHeader(TAOS_FIELD *fields, int32_t *width, int32_t num_fields) {
rowWidth
+=
width
[
col
]
+
3
;
}
putchar
(
'\r'
);
putchar
(
'\n'
);
for
(
int32_t
i
=
0
;
i
<
rowWidth
;
i
++
)
{
putchar
(
'='
);
}
putchar
(
'\r'
);
putchar
(
'\n'
);
}
...
...
@@ -709,15 +712,16 @@ int32_t shellHorizontalPrintResult(TAOS_RES *tres, const char *sql) {
putchar
(
' '
);
putchar
(
'|'
);
}
putchar
(
'\r'
);
putchar
(
'\n'
);
}
else
if
(
showMore
)
{
printf
(
"
\n
"
);
printf
(
" Notice: The result shows only the first %d rows.
\n
"
,
SHELL_DEFAULT_RES_SHOW_NUM
);
printf
(
" You can use the `LIMIT` clause to get fewer result to show.
\n
"
);
printf
(
" Or use '>>' to redirect the whole set of the result to a specified file.
\n
"
);
printf
(
"
\n
"
);
printf
(
" You can use Ctrl+C to stop the underway fetching.
\n
"
);
printf
(
"
\n
"
);
printf
(
"
\
r\
n
"
);
printf
(
" Notice: The result shows only the first %d rows.
\
r\
n
"
,
SHELL_DEFAULT_RES_SHOW_NUM
);
printf
(
" You can use the `LIMIT` clause to get fewer result to show.
\
r\
n
"
);
printf
(
" Or use '>>' to redirect the whole set of the result to a specified file.
\
r\
n
"
);
printf
(
"
\
r\
n
"
);
printf
(
" You can use Ctrl+C to stop the underway fetching.
\
r\
n
"
);
printf
(
"
\
r\
n
"
);
showMore
=
0
;
}
...
...
@@ -794,7 +798,7 @@ void shellCleanupHistory() {
void
shellPrintError
(
TAOS_RES
*
tres
,
int64_t
st
)
{
int64_t
et
=
taosGetTimestampUs
();
fprintf
(
stderr
,
"
\
n
DB error: %s (%.6fs)
\n
"
,
taos_errstr
(
tres
),
(
et
-
st
)
/
1E6
);
fprintf
(
stderr
,
"
\
r\n
DB error: %s (%.6fs)
\r
\n
"
,
taos_errstr
(
tres
),
(
et
-
st
)
/
1E6
);
taos_free_result
(
tres
);
}
...
...
@@ -816,7 +820,7 @@ void shellSourceFile(const char *file) {
TdFilePtr
pFile
=
taosOpenFile
(
fullname
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
fprintf
(
stderr
,
"failed to open file %s
\n
"
,
fullname
);
fprintf
(
stderr
,
"failed to open file %s
\
r\
n
"
,
fullname
);
taosMemoryFree
(
cmd
);
return
;
}
...
...
@@ -837,7 +841,7 @@ void shellSourceFile(const char *file) {
}
memcpy
(
cmd
+
cmd_len
,
line
,
read_len
);
printf
(
"%s%s
\n
"
,
shell
.
info
.
promptHeader
,
cmd
);
printf
(
"%s%s
\
r\
n
"
,
shell
.
info
.
promptHeader
,
cmd
);
shellRunCommand
(
cmd
);
memset
(
cmd
,
0
,
TSDB_MAX_ALLOWED_SQL_LEN
);
cmd_len
=
0
;
...
...
@@ -851,7 +855,7 @@ void shellSourceFile(const char *file) {
void
shellGetGrantInfo
()
{
char
sinfo
[
1024
]
=
{
0
};
tstrncpy
(
sinfo
,
taos_get_server_info
(
shell
.
conn
),
sizeof
(
sinfo
));
strtok
(
sinfo
,
"
\n
"
);
strtok
(
sinfo
,
"
\
r\
n
"
);
char
sql
[]
=
"show grants"
;
...
...
@@ -860,25 +864,25 @@ void shellGetGrantInfo() {
int32_t
code
=
taos_errno
(
tres
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_OPS_NOT_SUPPORT
&&
code
!=
TSDB_CODE_MND_NO_RIGHTS
)
{
fprintf
(
stderr
,
"Failed to check Server Edition, Reason:0x%04x:%s
\
n
\n
"
,
code
,
taos_errstr
(
tres
));
fprintf
(
stderr
,
"Failed to check Server Edition, Reason:0x%04x:%s
\
r\n\r
\n
"
,
code
,
taos_errstr
(
tres
));
}
return
;
}
int32_t
num_fields
=
taos_field_count
(
tres
);
if
(
num_fields
==
0
)
{
fprintf
(
stderr
,
"
\
n
Invalid grant information.
\n
"
);
fprintf
(
stderr
,
"
\
r\n
Invalid grant information.
\r
\n
"
);
exit
(
0
);
}
else
{
if
(
tres
==
NULL
)
{
fprintf
(
stderr
,
"
\
n
Grant information is null.
\n
"
);
fprintf
(
stderr
,
"
\
r\n
Grant information is null.
\r
\n
"
);
exit
(
0
);
}
TAOS_FIELD
*
fields
=
taos_fetch_fields
(
tres
);
TAOS_ROW
row
=
taos_fetch_row
(
tres
);
if
(
row
==
NULL
)
{
fprintf
(
stderr
,
"
\
n
Failed to get grant information from server. Abort.
\n
"
);
fprintf
(
stderr
,
"
\
r\n
Failed to get grant information from server. Abort.
\r
\n
"
);
exit
(
0
);
}
...
...
@@ -891,17 +895,17 @@ void shellGetGrantInfo() {
memcpy
(
expired
,
row
[
2
],
fields
[
2
].
bytes
);
if
(
strcmp
(
serverVersion
,
"community"
)
==
0
)
{
fprintf
(
stdout
,
"Server is Community Edition.
\n
"
);
fprintf
(
stdout
,
"Server is Community Edition.
\
r\
n
"
);
}
else
if
(
strcmp
(
expiretime
,
"unlimited"
)
==
0
)
{
fprintf
(
stdout
,
"Server is Enterprise %s Edition, %s and will never expire.
\n
"
,
serverVersion
,
sinfo
);
fprintf
(
stdout
,
"Server is Enterprise %s Edition, %s and will never expire.
\
r\
n
"
,
serverVersion
,
sinfo
);
}
else
{
fprintf
(
stdout
,
"Server is Enterprise %s Edition, %s and will expire at %s.
\n
"
,
serverVersion
,
sinfo
,
expiretime
);
fprintf
(
stdout
,
"Server is Enterprise %s Edition, %s and will expire at %s.
\
r\
n
"
,
serverVersion
,
sinfo
,
expiretime
);
}
taos_free_result
(
tres
);
}
fprintf
(
stdout
,
"
\n
"
);
fprintf
(
stdout
,
"
\
r\
n
"
);
}
void
shellQueryInterruptHandler
(
int32_t
signum
,
void
*
sigInfo
,
void
*
context
)
{
tsem_post
(
&
shell
.
cancelSem
);
}
...
...
@@ -921,7 +925,7 @@ void *shellCancelHandler(void *arg) {
}
taosResetTerminalMode
();
printf
(
"
\
n
Receive SIGTERM or other signal, quit shell.
\n
"
);
printf
(
"
\
r\n
Receive SIGTERM or other signal, quit shell.
\r
\n
"
);
shellWriteHistory
();
shellExit
();
}
...
...
@@ -936,7 +940,7 @@ void *shellThreadLoop(void *arg) {
char
*
command
=
taosMemoryMalloc
(
SHELL_MAX_COMMAND_SIZE
);
if
(
command
==
NULL
)
{
printf
(
"failed to malloc command
\n
"
);
printf
(
"failed to malloc command
\
r\
n
"
);
return
NULL
;
}
...
...
@@ -979,7 +983,7 @@ int32_t shellExecute() {
if
(
pArgs
->
commands
!=
NULL
||
pArgs
->
file
[
0
]
!=
0
)
{
if
(
pArgs
->
commands
!=
NULL
)
{
printf
(
"%s%s
\n
"
,
shell
.
info
.
promptHeader
,
pArgs
->
commands
);
printf
(
"%s%s
\
r\
n
"
,
shell
.
info
.
promptHeader
,
pArgs
->
commands
);
char
*
cmd
=
strdup
(
pArgs
->
commands
);
shellRunCommand
(
cmd
);
taosMemoryFree
(
cmd
);
...
...
@@ -996,7 +1000,7 @@ int32_t shellExecute() {
}
if
(
tsem_init
(
&
shell
.
cancelSem
,
0
,
0
)
!=
0
)
{
printf
(
"failed to create cancel semphore
\n
"
);
printf
(
"failed to create cancel semphore
\
r\
n
"
);
return
-
1
;
}
...
...
tools/shell/src/shellNettest.c
浏览文件 @
25c52f20
...
...
@@ -34,7 +34,7 @@ static void shellWorkAsClient() {
clientRpc
=
rpcOpen
(
&
rpcInit
);
if
(
clientRpc
==
NULL
)
{
printf
(
"failed to init net test client since %s
\n
"
,
terrstr
());
printf
(
"failed to init net test client since %s
\
r\
n
"
,
terrstr
());
goto
_OVER
;
}
...
...
@@ -49,7 +49,7 @@ static void shellWorkAsClient() {
pArgs
->
port
=
tsServerPort
;
}
printf
(
"network test client is initialized, the server is %s:%u
\n
"
,
fqdn
,
pArgs
->
port
);
printf
(
"network test client is initialized, the server is %s:%u
\
r\
n
"
,
fqdn
,
pArgs
->
port
);
tstrncpy
(
epSet
.
eps
[
0
].
fqdn
,
fqdn
,
TSDB_FQDN_LEN
);
epSet
.
eps
[
0
].
port
=
(
uint16_t
)
pArgs
->
port
;
...
...
@@ -62,13 +62,13 @@ static void shellWorkAsClient() {
rpcMsg
.
pCont
=
rpcMallocCont
(
pArgs
->
pktLen
);
rpcMsg
.
contLen
=
pArgs
->
pktLen
;
printf
(
"request is sent, size:%d
\n
"
,
rpcMsg
.
contLen
);
printf
(
"request is sent, size:%d
\
r\
n
"
,
rpcMsg
.
contLen
);
rpcSendRecv
(
clientRpc
,
&
epSet
,
&
rpcMsg
,
&
rpcRsp
);
if
(
rpcRsp
.
code
==
0
&&
rpcRsp
.
contLen
==
rpcMsg
.
contLen
)
{
printf
(
"response is received, size:%d
\n
"
,
rpcMsg
.
contLen
);
printf
(
"response is received, size:%d
\
r\
n
"
,
rpcMsg
.
contLen
);
if
(
rpcRsp
.
code
==
0
)
totalSucc
++
;
}
else
{
printf
(
"response not received since %s
\n
"
,
tstrerror
(
rpcRsp
.
code
));
printf
(
"response not received since %s
\
r\
n
"
,
tstrerror
(
rpcRsp
.
code
));
}
rpcFreeCont
(
rpcRsp
.
pCont
);
...
...
@@ -78,7 +78,7 @@ static void shellWorkAsClient() {
uint64_t
endTime
=
taosGetTimestampUs
();
uint64_t
elT
=
endTime
-
startTime
;
printf
(
"
\
n
total succ:%5d/%d
\t
cost:%8.2lf ms
\t
speed:%8.2lf MB/s
\n
"
,
totalSucc
,
pArgs
->
pktNum
,
elT
/
1000
.
0
,
printf
(
"
\
r\n
total succ:%5d/%d
\t
cost:%8.2lf ms
\t
speed:%8.2lf MB/s
\r
\n
"
,
totalSucc
,
pArgs
->
pktNum
,
elT
/
1000
.
0
,
pArgs
->
pktLen
/
(
elT
/
1000000
.
0
)
/
1024
.
0
/
1024
.
0
*
totalSucc
);
_OVER:
...
...
@@ -91,7 +91,7 @@ _OVER:
}
static
void
shellProcessMsg
(
void
*
p
,
SRpcMsg
*
pRpc
,
SEpSet
*
pEpSet
)
{
printf
(
"request is received, size:%d
\n
"
,
pRpc
->
contLen
);
printf
(
"request is received, size:%d
\
r\
n
"
,
pRpc
->
contLen
);
fflush
(
stdout
);
SRpcMsg
rsp
=
{.
info
=
pRpc
->
info
,
.
code
=
0
};
rsp
.
pCont
=
rpcMallocCont
(
pRpc
->
contLen
);
...
...
@@ -124,9 +124,9 @@ static void shellWorkAsServer() {
void
*
serverRpc
=
rpcOpen
(
&
rpcInit
);
if
(
serverRpc
==
NULL
)
{
printf
(
"failed to init net test server since %s
\n
"
,
terrstr
());
printf
(
"failed to init net test server since %s
\
r\
n
"
,
terrstr
());
}
else
{
printf
(
"network test server is initialized, port:%u
\n
"
,
pArgs
->
port
);
printf
(
"network test server is initialized, port:%u
\
r\
n
"
,
pArgs
->
port
);
taosSetSignal
(
SIGTERM
,
shellNettestHandler
);
while
(
1
)
taosMsleep
(
10
);
}
...
...
tools/shell/src/shellUtil.c
浏览文件 @
25c52f20
...
...
@@ -40,7 +40,7 @@ bool shellRegexMatch(const char *s, const char *reg, int32_t cflags) {
return
false
;
}
else
{
regerror
(
reti
,
&
regex
,
msgbuf
,
sizeof
(
msgbuf
));
fprintf
(
stderr
,
"Regex match failed: %s
\n
"
,
msgbuf
);
fprintf
(
stderr
,
"Regex match failed: %s
\
r\
n
"
,
msgbuf
);
regfree
(
&
regex
);
shellExit
();
}
...
...
@@ -68,19 +68,19 @@ int32_t shellCheckIntSize() {
return
0
;
}
void
shellPrintVersion
()
{
printf
(
"version: %s
\n
"
,
version
);
}
void
shellPrintVersion
()
{
printf
(
"version: %s
\
r\
n
"
,
version
);
}
void
shellGenerateAuth
()
{
char
secretEncrypt
[
TSDB_PASSWORD_LEN
+
1
]
=
{
0
};
taosEncryptPass_c
((
uint8_t
*
)
shell
.
args
.
password
,
strlen
(
shell
.
args
.
password
),
secretEncrypt
);
printf
(
"%s
\n
"
,
secretEncrypt
);
printf
(
"%s
\
r\
n
"
,
secretEncrypt
);
fflush
(
stdout
);
}
void
shellDumpConfig
()
{
SConfig
*
pCfg
=
taosGetCfg
();
if
(
pCfg
==
NULL
)
{
printf
(
"TDengine read global config failed!
\n
"
);
printf
(
"TDengine read global config failed!
\
r\
n
"
);
}
else
{
cfgDumpCfg
(
pCfg
,
1
,
true
);
}
...
...
@@ -95,23 +95,23 @@ void shellCheckServerStatus() {
code
=
taos_check_server_status
(
shell
.
args
.
host
,
shell
.
args
.
port
,
details
,
1024
);
switch
(
code
)
{
case
TSDB_SRV_STATUS_UNAVAILABLE
:
printf
(
"0: unavailable
\n
"
);
printf
(
"0: unavailable
\
r\
n
"
);
break
;
case
TSDB_SRV_STATUS_NETWORK_OK
:
printf
(
"1: network ok
\n
"
);
printf
(
"1: network ok
\
r\
n
"
);
break
;
case
TSDB_SRV_STATUS_SERVICE_OK
:
printf
(
"2: service ok
\n
"
);
printf
(
"2: service ok
\
r\
n
"
);
break
;
case
TSDB_SRV_STATUS_SERVICE_DEGRADED
:
printf
(
"3: service degraded
\n
"
);
printf
(
"3: service degraded
\
r\
n
"
);
break
;
case
TSDB_SRV_STATUS_EXTING
:
printf
(
"4: exiting
\n
"
);
printf
(
"4: exiting
\
r\
n
"
);
break
;
}
if
(
strlen
(
details
)
!=
0
)
{
printf
(
"%s
\
n
\n
"
,
details
);
printf
(
"%s
\
r\n\r
\n
"
,
details
);
}
fflush
(
stdout
);
if
(
code
==
TSDB_SRV_STATUS_NETWORK_OK
&&
shell
.
args
.
is_startup
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录