Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
801c8d63
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
801c8d63
编写于
2月 05, 2021
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/linux
上级
31273a89
21d7ba3e
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
112 addition
and
64 deletion
+112
-64
Jenkinsfile
Jenkinsfile
+5
-23
cmake/version.inc
cmake/version.inc
+26
-14
src/client/src/tscLocal.c
src/client/src/tscLocal.c
+6
-1
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+22
-10
src/common/src/tglobal.c
src/common/src/tglobal.c
+2
-4
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+18
-3
src/mnode/inc/mnodeDnode.h
src/mnode/inc/mnodeDnode.h
+1
-0
src/mnode/src/mnodeDnode.c
src/mnode/src/mnodeDnode.c
+22
-0
src/mnode/src/mnodeShow.c
src/mnode/src/mnodeShow.c
+5
-2
src/os/src/darwin/darwinEnv.c
src/os/src/darwin/darwinEnv.c
+4
-6
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+1
-1
未找到文件。
Jenkinsfile
浏览文件 @
801c8d63
...
...
@@ -31,7 +31,6 @@ def abort_previous(){
if
(
buildNumber
>
1
)
milestone
(
buildNumber
-
1
)
milestone
(
buildNumber
)
}
def
kipstage
=
0
def
pre_test
(){
catchError
(
buildResult:
'SUCCESS'
,
stageResult:
'FAILURE'
)
{
sh
'''
...
...
@@ -46,7 +45,7 @@ def pre_test(){
git pull
git fetch origin +refs/pull/${CHANGE_ID}/merge
git checkout -qf FETCH_HEAD
git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD develop)|grep -v -E '.*md|
.*src
/connector|Jenkinsfile' || exit 0
git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD develop)|grep -v -E '.*md|
//src/
/connector|Jenkinsfile' || exit 0
cd ${WK}
git reset --hard HEAD~10
git checkout develop
...
...
@@ -73,29 +72,12 @@ pipeline {
}
stages
{
stage
(
'pre_build'
){
agent
{
label
'master'
}
steps
{
sh
'''
cd ${WORKSPACE}
git checkout develop
git pull
git fetch origin +refs/pull/${CHANGE_ID}/merge
git checkout -qf FETCH_HEAD
'''
script
{
skipstage
=
sh
(
script:
"git --no-pager diff --name-only FETCH_HEAD develop|grep -v -E '.*md|//src//connector|Jenkinsfile|test-all.sh' || echo 1 "
,
returnStdout:
true
)
}
}
}
stage
(
'Parallel test stage'
)
{
//only build pr
when
{
changeRequest
()
expression
{
skipstage
==
0
}
}
parallel
{
stage
(
'python_1_s1'
)
{
...
...
@@ -145,7 +127,7 @@ pipeline {
stage
(
'test_b1_s2'
)
{
agent
{
label
'b1'
}
steps
{
timeout
(
time:
45
,
unit:
'MINUTES'
){
timeout
(
time:
90
,
unit:
'MINUTES'
){
pre_test
()
sh
'''
cd ${WKC}/tests
...
...
@@ -283,7 +265,7 @@ pipeline {
<li>构建结果:<span style="color:green"> Successful </span></li>
<li>构建编号:${BUILD_NUMBER}</li>
<li>触发用户:${env.CHANGE_AUTHOR}</li>
<li>提交信息:${CHANGE_TITLE}</li>
<li>提交信息:${
env.
CHANGE_TITLE}</li>
<li>构建地址:<a href=${BUILD_URL}>${BUILD_URL}</a></li>
<li>构建日志:<a href=${BUILD_URL}console>${BUILD_URL}console</a></li>
...
...
@@ -321,7 +303,7 @@ pipeline {
<li>构建结果:<span style="color:green"> Successful </span></li>
<li>构建编号:${BUILD_NUMBER}</li>
<li>触发用户:${env.CHANGE_AUTHOR}</li>
<li>提交信息:${CHANGE_TITLE}</li>
<li>提交信息:${
env.
CHANGE_TITLE}</li>
<li>构建地址:<a href=${BUILD_URL}>${BUILD_URL}</a></li>
<li>构建日志:<a href=${BUILD_URL}console>${BUILD_URL}console</a></li>
...
...
cmake/version.inc
浏览文件 @
801c8d63
...
...
@@ -13,28 +13,40 @@ ELSE ()
SET
(
TD_VER_COMPATIBLE
"2.0.0.0"
)
ENDIF
()
find_program
(
HAVE_GIT
NAMES
git
)
IF
(
DEFINED
GITINFO
)
SET
(
TD_VER_GIT
$
{
GITINFO
})
ELSEIF
(
HAVE_GIT
)
execute_process
(
COMMAND
git
log
-
1
--
format
=%
H
WORKING_DIRECTORY
$
{
TD_COMMUNITY_DIR
}
OUTPUT_VARIABLE
GIT_COMMITID
)
message
(
STATUS
"git log result:${GIT_COMMITID}"
)
IF
(
GIT_COMMITID
)
string
(
REGEX
REPLACE
"[
\n\t\r
]"
""
GIT_COMMITID
$
{
GIT_COMMITID
})
SET
(
TD_VER_GIT
$
{
GIT_COMMITID
})
ELSE
()
message
(
STATUS
"not a git repository"
)
SET
(
TD_VER_GIT
"no git commit id"
)
ENDIF
()
ELSE
()
execute_process
(
COMMAND
git
log
-
1
--
format
=%
H
WORKING_DIRECTORY
$
{
TD_COMMUNITY_DIR
}
OUTPUT_VARIABLE
GIT_COMMITID
)
string
(
REGEX
REPLACE
"[
\n\t\r
]"
""
GIT_COMMITID
$
{
GIT_COMMITID
})
SET
(
TD_VER_GIT
$
{
GIT_COMMITID
})
message
(
STATUS
"no git cmd"
)
SET
(
TD_VER_GIT
"no git commit id"
)
ENDIF
()
IF
(
DEFINED
GITINFOI
)
SET
(
TD_VER_GIT_INTERNAL
$
{
GITINFOI
})
ELSEIF
(
HAVE_GIT
)
execute_process
(
COMMAND
git
log
-
1
--
format
=%
H
WORKING_DIRECTORY
$
{
PROJECT_SOURCE_DIR
}
OUTPUT_VARIABLE
GIT_COMMITID
)
message
(
STATUS
"git log result:${GIT_COMMITID}"
)
IF
(
GIT_COMMITID
)
string
(
REGEX
REPLACE
"[
\n\t\r
]"
""
GIT_COMMITID
$
{
GIT_COMMITID
})
SET
(
TD_VER_GIT_INTERNAL
$
{
GIT_COMMITID
})
ELSE
()
message
(
STATUS
"not a git repository"
)
SET
(
TD_VER_GIT
"no git commit id"
)
ENDIF
()
ELSE
()
execute_process
(
COMMAND
git
log
-
1
--
format
=%
H
WORKING_DIRECTORY
$
{
PROJECT_SOURCE_DIR
}
OUTPUT_VARIABLE
GIT_COMMITID
)
string
(
REGEX
REPLACE
"[
\n\t\r
]"
""
GIT_COMMITID
$
{
GIT_COMMITID
})
SET
(
TD_VER_GIT_INTERNAL
$
{
GIT_COMMITID
})
message
(
STATUS
"no git cmd"
)
SET
(
TD_VER_GIT_INTERNAL
"no git commit id"
)
ENDIF
()
IF
(
DEFINED
VERDATE
)
...
...
src/client/src/tscLocal.c
浏览文件 @
801c8d63
...
...
@@ -892,7 +892,12 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
SSqlRes
*
pRes
=
&
pSql
->
res
;
if
(
pCmd
->
command
==
TSDB_SQL_CFG_LOCAL
)
{
pRes
->
code
=
(
uint8_t
)
taosCfgDynamicOptions
(
pCmd
->
payload
);
if
(
taosCfgDynamicOptions
(
pCmd
->
payload
))
{
pRes
->
code
=
TSDB_CODE_SUCCESS
;
}
else
{
pRes
->
code
=
TSDB_CODE_COM_INVALID_CFG_MSG
;
}
pRes
->
numOfRows
=
0
;
}
else
if
(
pCmd
->
command
==
TSDB_SQL_DESCRIBE_TABLE
)
{
pRes
->
code
=
(
uint8_t
)
tscProcessDescribeTable
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_RETRIEVE_EMPTY_RESULT
)
{
...
...
src/client/src/tscSQLParser.c
浏览文件 @
801c8d63
...
...
@@ -129,6 +129,7 @@ static int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo);
static
int32_t
doCheckForStream
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
);
static
int32_t
doCheckForQuery
(
SSqlObj
*
pSql
,
SQuerySQL
*
pQuerySql
,
int32_t
index
);
static
int32_t
exprTreeFromSqlExpr
(
SSqlCmd
*
pCmd
,
tExprNode
**
pExpr
,
const
tSQLExpr
*
pSqlExpr
,
SQueryInfo
*
pQueryInfo
,
SArray
*
pCols
,
int64_t
*
uid
);
static
bool
validateDebugFlag
(
int32_t
flag
);
int16_t
getNewResColId
(
SQueryInfo
*
pQueryInfo
)
{
return
pQueryInfo
->
resColumnId
--
;
...
...
@@ -173,6 +174,16 @@ static uint8_t convertOptr(SStrToken *pToken) {
}
}
static
bool
validateDebugFlag
(
int32_t
v
)
{
const
static
int
validFlag
[]
=
{
131
,
135
,
143
};
for
(
int
i
=
0
;
i
<
tListLen
(
validFlag
);
i
++
)
{
if
(
v
==
validFlag
[
i
])
{
return
true
;
}
}
return
false
;
}
/*
* Used during parsing query sql. Since the query sql usually small in length, error position
* is not needed in the final error message.
...
...
@@ -565,16 +576,16 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
int32_t
numOfToken
=
(
int32_t
)
taosArrayGetSize
(
pMiscInfo
->
a
);
SStrToken
*
t
=
taosArrayGet
(
pMiscInfo
->
a
,
0
);
SStrToken
*
t1
=
taosArrayGet
(
pMiscInfo
->
a
,
1
);
assert
(
numOfToken
>=
1
&&
numOfToken
<=
2
);
SStrToken
*
t
=
taosArrayGet
(
pMiscInfo
->
a
,
0
);
strncpy
(
pCmd
->
payload
,
t
->
z
,
t
->
n
);
if
(
numOfToken
==
2
)
{
SStrToken
*
t1
=
taosArrayGet
(
pMiscInfo
->
a
,
1
);
pCmd
->
payload
[
t
->
n
]
=
' '
;
// add sep
strncpy
(
&
pCmd
->
payload
[
t
->
n
+
1
],
t1
->
z
,
t1
->
n
);
}
break
;
}
return
TSDB_CODE_SUCCESS
;
}
case
TSDB_SQL_CREATE_TABLE
:
{
...
...
@@ -5357,13 +5368,15 @@ int32_t validateLocalConfig(SMiscInfo* pOptions) {
SDNodeDynConfOption
LOCAL_DYNAMIC_CFG_OPTIONS
[
6
]
=
{{
"resetLog"
,
8
},
{
"rpcDebugFlag"
,
12
},
{
"tmrDebugFlag"
,
12
},
{
"cDebugFlag"
,
10
},
{
"uDebugFlag"
,
10
},
{
"debugFlag"
,
9
}};
SStrToken
*
pOptionToken
=
taosArrayGet
(
pOptions
->
a
,
0
);
if
(
numOfToken
==
1
)
{
// reset log does not need value
for
(
int32_t
i
=
0
;
i
<
1
;
++
i
)
{
SDNodeDynConfOption
*
pOption
=
&
LOCAL_DYNAMIC_CFG_OPTIONS
[
i
];
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
if
((
pOption
->
len
==
pOptionToken
->
n
)
&&
(
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
))
{
return
TSDB_CODE_SUCCESS
;
}
}
...
...
@@ -5371,15 +5384,14 @@ int32_t validateLocalConfig(SMiscInfo* pOptions) {
SStrToken
*
pValToken
=
taosArrayGet
(
pOptions
->
a
,
1
);
int32_t
val
=
strtol
(
pValToken
->
z
,
NULL
,
10
);
if
(
val
<
131
||
val
>
199
)
{
// options value is out of valid range
if
(
!
validateDebugFlag
(
val
))
{
return
TSDB_CODE_TSC_INVALID_SQL
;
}
for
(
int32_t
i
=
1
;
i
<
tListLen
(
LOCAL_DYNAMIC_CFG_OPTIONS
);
++
i
)
{
SDNodeDynConfOption
*
pOption
=
&
LOCAL_DYNAMIC_CFG_OPTIONS
[
i
];
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
// options is valid
if
((
pOption
->
len
==
pOptionToken
->
n
)
&&
(
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
))
{
return
TSDB_CODE_SUCCESS
;
}
}
...
...
src/common/src/tglobal.c
浏览文件 @
801c8d63
...
...
@@ -273,7 +273,7 @@ bool taosCfgDynamicOptions(char *msg) {
int32_t
vint
=
0
;
paGetToken
(
msg
,
&
option
,
&
olen
);
if
(
olen
==
0
)
return
TSDB_CODE_COM_INVALID_CFG_MSG
;
if
(
olen
==
0
)
return
false
;
;
paGetToken
(
option
+
olen
+
1
,
&
value
,
&
vlen
);
if
(
vlen
==
0
)
...
...
@@ -316,11 +316,9 @@ bool taosCfgDynamicOptions(char *msg) {
}
return
true
;
}
if
(
strncasecmp
(
cfg
->
option
,
"debugFlag"
,
olen
)
==
0
)
{
taosSetAllDebugFlag
();
taosSetAllDebugFlag
();
}
return
true
;
}
...
...
src/kit/taosdemo/taosdemo.c
浏览文件 @
801c8d63
...
...
@@ -67,6 +67,7 @@ typedef struct DemoArguments {
char
*
sqlFile
;
bool
use_metric
;
bool
insert_only
;
bool
answer_yes
;
char
*
output_file
;
int
mode
;
char
*
datatype
[
MAX_NUM_DATATYPE
+
1
];
...
...
@@ -114,6 +115,7 @@ typedef struct DemoArguments {
{
0
,
'c'
,
"config_directory"
,
0
,
"Configuration directory. Default is '/etc/taos/'."
,
14
},
#endif
{
0
,
'x'
,
0
,
0
,
"Insert only flag."
,
13
},
{
0
,
'y'
,
0
,
0
,
"Default input yes for prompt"
,
13
},
{
0
,
'O'
,
"order"
,
0
,
"Insert mode--0: In order, 1: Out of order. Default is in order."
,
14
},
{
0
,
'R'
,
"rate"
,
0
,
"Out of order data's rate--if order=1 Default 10, min: 0, max: 50."
,
14
},
{
0
,
'D'
,
"delete table"
,
0
,
"Delete data methods——0: don't delete, 1: delete by table, 2: delete by stable, 3: delete by database"
,
14
},
...
...
@@ -210,6 +212,9 @@ typedef struct DemoArguments {
case
'x'
:
arguments
->
insert_only
=
true
;
break
;
case
'y'
:
arguments
->
answer_yes
=
true
;
break
;
case
'c'
:
if
(
wordexp
(
arg
,
&
full_path
,
0
)
!=
0
)
{
fprintf
(
stderr
,
"Invalid path %s
\n
"
,
arg
);
...
...
@@ -328,6 +333,8 @@ typedef struct DemoArguments {
#endif
printf
(
"%s%s
\n
"
,
indent
,
"-x"
);
printf
(
"%s%s%s
\n
"
,
indent
,
indent
,
"flag, Insert only flag."
);
printf
(
"%s%s
\n
"
,
indent
,
"-y"
);
printf
(
"%s%s%s
\n
"
,
indent
,
indent
,
"flag, Anser Yes for prompt."
);
printf
(
"%s%s
\n
"
,
indent
,
"-O"
);
printf
(
"%s%s%s
\n
"
,
indent
,
indent
,
"order, Insert mode--0: In order, 1: Out of order. Default is in order."
);
printf
(
"%s%s
\n
"
,
indent
,
"-R"
);
...
...
@@ -409,6 +416,8 @@ typedef struct DemoArguments {
arguments
->
use_metric
=
true
;
}
else
if
(
strcmp
(
argv
[
i
],
"-x"
)
==
0
)
{
arguments
->
insert_only
=
true
;
}
else
if
(
strcmp
(
argv
[
i
],
"-y"
)
==
0
)
{
arguments
->
answer_yes
=
true
;
}
else
if
(
strcmp
(
argv
[
i
],
"-c"
)
==
0
)
{
strcpy
(
configDir
,
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-O"
)
==
0
)
{
...
...
@@ -549,6 +558,7 @@ int main(int argc, char *argv[]) {
NULL
,
false
,
// use_metric
false
,
// insert_only
false
,
// answer_yes
"./output.txt"
,
// output_file
0
,
// mode
{
...
...
@@ -584,6 +594,7 @@ int main(int argc, char *argv[]) {
arguments
.
num_of_RPR
=
1000
;
arguments
.
use_metric
=
true
;
arguments
.
insert_only
=
false
;
arguments
.
answer_yes
=
false
;
// end change
parse_args
(
argc
,
argv
,
&
arguments
);
...
...
@@ -606,6 +617,7 @@ int main(int argc, char *argv[]) {
int
nrecords_per_request
=
arguments
.
num_of_RPR
;
bool
use_metric
=
arguments
.
use_metric
;
bool
insert_only
=
arguments
.
insert_only
;
bool
answer_yes
=
arguments
.
answer_yes
;
char
**
data_type
=
arguments
.
datatype
;
int
count_data_type
=
0
;
char
dataString
[
STRING_LEN
];
...
...
@@ -666,9 +678,12 @@ int main(int argc, char *argv[]) {
printf
(
"# Delete method: %d
\n
"
,
method_of_delete
);
printf
(
"# Test time: %d-%02d-%02d %02d:%02d:%02d
\n
"
,
tm
.
tm_year
+
1900
,
tm
.
tm_mon
+
1
,
tm
.
tm_mday
,
tm
.
tm_hour
,
tm
.
tm_min
,
tm
.
tm_sec
);
printf
(
"###################################################################
\n\n
"
);
printf
(
"Press enter key to continue"
);
(
void
)
getchar
();
if
(
!
answer_yes
)
{
printf
(
"###################################################################
\n\n
"
);
printf
(
"Press enter key to continue"
);
(
void
)
getchar
();
}
fprintf
(
fp
,
"###################################################################
\n
"
);
fprintf
(
fp
,
"# Server IP: %s:%hu
\n
"
,
ip_addr
==
NULL
?
"localhost"
:
ip_addr
,
port
);
...
...
src/mnode/inc/mnodeDnode.h
浏览文件 @
801c8d63
...
...
@@ -67,6 +67,7 @@ void mnodeCleanupDnodes();
int32_t
mnodeGetDnodesNum
();
int32_t
mnodeGetOnlinDnodesCpuCoreNum
();
int32_t
mnodeGetOnlineDnodesNum
();
void
mnodeGetOnlineAndTotalDnodesNum
(
int32_t
*
onlineNum
,
int32_t
*
totalNum
);
void
*
mnodeGetNextDnode
(
void
*
pIter
,
SDnodeObj
**
pDnode
);
void
mnodeCancelGetNextDnode
(
void
*
pIter
);
void
mnodeIncDnodeRef
(
SDnodeObj
*
pDnode
);
...
...
src/mnode/src/mnodeDnode.c
浏览文件 @
801c8d63
...
...
@@ -263,6 +263,28 @@ int32_t mnodeGetOnlineDnodesNum() {
return
onlineDnodes
;
}
void
mnodeGetOnlineAndTotalDnodesNum
(
int32_t
*
onlineNum
,
int32_t
*
totalNum
)
{
SDnodeObj
*
pDnode
=
NULL
;
void
*
pIter
=
NULL
;
int32_t
onlineDnodes
=
0
,
totalDnodes
=
0
;
while
(
1
)
{
pIter
=
mnodeGetNextDnode
(
pIter
,
&
pDnode
);
if
(
pDnode
==
NULL
)
break
;
if
(
pDnode
->
status
!=
TAOS_DN_STATUS_OFFLINE
)
++
onlineDnodes
;
++
totalDnodes
;
mnodeDecDnodeRef
(
pDnode
);
}
if
(
onlineNum
)
{
*
onlineNum
=
onlineDnodes
;
}
if
(
totalNum
)
{
*
totalNum
=
totalDnodes
;
}
}
void
*
mnodeGetDnode
(
int32_t
dnodeId
)
{
return
sdbGetRow
(
tsDnodeSdb
,
&
dnodeId
);
}
...
...
src/mnode/src/mnodeShow.c
浏览文件 @
801c8d63
...
...
@@ -280,8 +280,11 @@ static int32_t mnodeProcessHeartBeatMsg(SMnodeMsg *pMsg) {
}
}
pRsp
->
onlineDnodes
=
htonl
(
mnodeGetOnlineDnodesNum
());
pRsp
->
totalDnodes
=
htonl
(
mnodeGetDnodesNum
());
int32_t
onlineDnodes
=
0
,
totalDnodes
=
0
;
mnodeGetOnlineAndTotalDnodesNum
(
&
onlineDnodes
,
&
totalDnodes
);
pRsp
->
onlineDnodes
=
htonl
(
onlineDnodes
);
pRsp
->
totalDnodes
=
htonl
(
totalDnodes
);
mnodeGetMnodeEpSetForShell
(
&
pRsp
->
epSet
,
false
);
pMsg
->
rpcRsp
.
rsp
=
pRsp
;
...
...
src/os/src/darwin/darwinEnv.c
浏览文件 @
801c8d63
...
...
@@ -29,17 +29,15 @@ static const char* expand_like_shell(const char *path) {
void
osInit
()
{
if
(
configDir
[
0
]
==
0
)
{
strcpy
(
configDir
,
expand_like_shell
(
"
~/TDengine/cfg
"
));
strcpy
(
configDir
,
expand_like_shell
(
"
/usr/local/etc/taos
"
));
}
strcpy
(
tsDataDir
,
expand_like_shell
(
"/usr/local/var/lib/taos"
));
strcpy
(
tsLogDir
,
expand_like_shell
(
"/usr/local/var/log/taos"
));
strcpy
(
tsScriptDir
,
expand_like_shell
(
"/usr/local/etc/taos"
));
strcpy
(
tsVnodeDir
,
""
);
strcpy
(
tsDnodeDir
,
""
);
strcpy
(
tsMnodeDir
,
""
);
strcpy
(
tsDataDir
,
expand_like_shell
(
"~/TDengine/data"
));
strcpy
(
tsLogDir
,
expand_like_shell
(
"~/TDengine/log"
));
strcpy
(
tsScriptDir
,
expand_like_shell
(
"~/TDengine/cfg"
));
strcpy
(
tsOsName
,
"Darwin"
);
}
src/query/src/qExecutor.c
浏览文件 @
801c8d63
...
...
@@ -4571,7 +4571,7 @@ static void generateBlockDistResult(STableBlockDist *pTableBlockDist) {
if
(
pTableBlockDist
==
NULL
)
{
return
;
}
int64_t
min
=
INT64_MAX
,
max
=
INT64_MIN
,
avg
=
0
;
int64_t
min
=
0
,
max
=
0
,
avg
=
0
;
SArray
*
blockInfos
=
pTableBlockDist
->
dataBlockInfos
;
int64_t
totalRows
=
0
,
totalBlocks
=
taosArrayGetSize
(
blockInfos
);
for
(
size_t
i
=
0
;
i
<
taosArrayGetSize
(
blockInfos
);
i
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录