Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ea8832ba
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看板
提交
ea8832ba
编写于
4月 18, 2022
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/valgrind' into feature/3.0_liaohj
上级
71578728
649a9ac2
变更
44
展开全部
隐藏空白更改
内联
并排
Showing
44 changed file
with
1031 addition
and
719 deletion
+1031
-719
example/CMakeLists.txt
example/CMakeLists.txt
+3
-3
include/os/osMemory.h
include/os/osMemory.h
+6
-6
packaging/make_install.sh
packaging/make_install.sh
+540
-421
source/client/CMakeLists.txt
source/client/CMakeLists.txt
+20
-1
source/client/src/clientMain.c
source/client/src/clientMain.c
+1
-1
source/client/test/CMakeLists.txt
source/client/test/CMakeLists.txt
+2
-2
source/common/src/tglobal.c
source/common/src/tglobal.c
+1
-1
source/dnode/mgmt/interface/CMakeLists.txt
source/dnode/mgmt/interface/CMakeLists.txt
+1
-1
source/dnode/mgmt/mgmt_vnode/src/vmInt.c
source/dnode/mgmt/mgmt_vnode/src/vmInt.c
+1
-0
source/dnode/vnode/CMakeLists.txt
source/dnode/vnode/CMakeLists.txt
+2
-3
source/dnode/vnode/src/inc/meta.h
source/dnode/vnode/src/inc/meta.h
+16
-30
source/dnode/vnode/src/inc/vnd.h
source/dnode/vnode/src/inc/vnd.h
+6
-6
source/dnode/vnode/src/meta/metaMain.c
source/dnode/vnode/src/meta/metaMain.c
+0
-111
source/dnode/vnode/src/meta/metaOpen.c
source/dnode/vnode/src/meta/metaOpen.c
+66
-0
source/dnode/vnode/src/vnd/vnodeCfg.c
source/dnode/vnode/src/vnd/vnodeCfg.c
+0
-7
source/dnode/vnode/src/vnd/vnodeOpen.c
source/dnode/vnode/src/vnd/vnodeOpen.c
+4
-7
source/libs/catalog/test/CMakeLists.txt
source/libs/catalog/test/CMakeLists.txt
+1
-1
source/libs/executor/src/indexoperator.c
source/libs/executor/src/indexoperator.c
+246
-10
source/libs/executor/test/CMakeLists.txt
source/libs/executor/test/CMakeLists.txt
+1
-1
source/libs/qworker/src/qworker.c
source/libs/qworker/src/qworker.c
+3
-0
source/libs/scheduler/test/CMakeLists.txt
source/libs/scheduler/test/CMakeLists.txt
+1
-1
source/util/src/tcache.c
source/util/src/tcache.c
+2
-0
source/util/src/tconfig.c
source/util/src/tconfig.c
+3
-3
source/util/src/tlog.c
source/util/src/tlog.c
+85
-78
tests/script/tsim/parser/fourArithmetic-basic.sim
tests/script/tsim/parser/fourArithmetic-basic.sim
+0
-1
tests/script/tsim/query/charScalarFunction.sim
tests/script/tsim/query/charScalarFunction.sim
+0
-1
tests/script/tsim/query/scalarFunction.sim
tests/script/tsim/query/scalarFunction.sim
+0
-1
tests/script/tsim/query/session.sim
tests/script/tsim/query/session.sim
+0
-1
tests/script/tsim/tmq/basic1.sim
tests/script/tsim/tmq/basic1.sim
+0
-1
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrCtb.sim
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrCtb.sim
+0
-1
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrStb.sim
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrStb.sim
+0
-1
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrCtb.sim
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrCtb.sim
+0
-1
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrStb.sim
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrStb.sim
+0
-1
tests/script/tsim/tmq/mainConsumerInMultiTopic.sim
tests/script/tsim/tmq/mainConsumerInMultiTopic.sim
+0
-1
tests/script/tsim/tmq/mainConsumerInOneTopic.sim
tests/script/tsim/tmq/mainConsumerInOneTopic.sim
+0
-1
tests/script/tsim/tmq/multiTopic.sim
tests/script/tsim/tmq/multiTopic.sim
+0
-1
tests/script/tsim/tmq/oneTopic.sim
tests/script/tsim/tmq/oneTopic.sim
+0
-1
tests/script/tsim/tmq/overlapTopic2Con1Cgrp.sim
tests/script/tsim/tmq/overlapTopic2Con1Cgrp.sim
+0
-1
tests/test/c/CMakeLists.txt
tests/test/c/CMakeLists.txt
+3
-3
tests/tsim/CMakeLists.txt
tests/tsim/CMakeLists.txt
+1
-1
tests/tsim/inc/simInt.h
tests/tsim/inc/simInt.h
+1
-1
tests/tsim/src/simExe.c
tests/tsim/src/simExe.c
+13
-4
tools/shell/CMakeLists.txt
tools/shell/CMakeLists.txt
+1
-1
tools/shell/src/shellMain.c
tools/shell/src/shellMain.c
+1
-1
未找到文件。
example/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -18,15 +18,15 @@ target_sources(demoapi
)
target_link_libraries
(
tmq
taos
taos
_static
)
target_link_libraries
(
tstream
taos
taos
_static
)
target_link_libraries
(
demoapi
taos
taos
_static
)
target_include_directories
(
tmq
...
...
include/os/osMemory.h
浏览文件 @
ea8832ba
...
...
@@ -36,12 +36,12 @@ void *taosMemoryStrDup(void *ptr);
void
taosMemoryFree
(
void
*
ptr
);
int32_t
taosMemorySize
(
void
*
ptr
);
#define taosMemoryFreeClear(ptr) \
do { \
if (ptr) { \
taosMemoryFree((void
*)ptr);
\
(ptr) = NULL; \
} \
#define taosMemoryFreeClear(ptr)
\
do {
\
if (ptr) {
\
taosMemoryFree((void
*)ptr);
\
(ptr) = NULL;
\
}
\
} while (0)
#ifdef __cplusplus
...
...
packaging/make_install.sh
浏览文件 @
ea8832ba
此差异已折叠。
点击以展开。
source/client/CMakeLists.txt
浏览文件 @
ea8832ba
aux_source_directory
(
src CLIENT_SRC
)
add_library
(
taos
${
CLIENT_SRC
}
)
add_library
(
taos
SHARED
${
CLIENT_SRC
}
)
target_include_directories
(
taos
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/client"
...
...
@@ -11,6 +11,25 @@ target_link_libraries(
PRIVATE os util common transport nodes parser command planner catalog scheduler function qcom
)
set_target_properties
(
taos
PROPERTIES
VERSION
${
TD_VER_NUMBER
}
SOVERSION
${
TD_VER_NUMBER
}
)
add_library
(
taos_static STATIC
${
CLIENT_SRC
}
)
target_include_directories
(
taos_static
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/client"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_link_libraries
(
taos_static
INTERFACE api
PRIVATE os util common transport nodes parser command planner catalog scheduler function qcom
)
if
(
${
BUILD_TEST
}
)
ADD_SUBDIRECTORY
(
test
)
endif
(
${
BUILD_TEST
}
)
\ No newline at end of file
source/client/src/clientMain.c
浏览文件 @
ea8832ba
...
...
@@ -69,9 +69,9 @@ void taos_cleanup(void) {
rpcCleanup
();
catalogDestroy
();
schedulerDestroy
();
taosCloseLog
();
tscInfo
(
"all local resources released"
);
taosCloseLog
();
}
setConfRet
taos_set_config
(
const
char
*
config
)
{
...
...
source/client/test/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -8,13 +8,13 @@ AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST)
ADD_EXECUTABLE
(
clientTest clientTests.cpp
)
TARGET_LINK_LIBRARIES
(
clientTest
PUBLIC os util common transport parser catalog scheduler function gtest taos qcom
PUBLIC os util common transport parser catalog scheduler function gtest taos
_static
qcom
)
ADD_EXECUTABLE
(
tmqTest tmqTest.cpp
)
TARGET_LINK_LIBRARIES
(
tmqTest
PUBLIC os util common transport parser catalog scheduler function gtest taos qcom
PUBLIC os util common transport parser catalog scheduler function gtest taos
_static
qcom
)
TARGET_INCLUDE_DIRECTORIES
(
...
...
source/common/src/tglobal.c
浏览文件 @
ea8832ba
...
...
@@ -238,7 +238,7 @@ static int32_t taosLoadCfg(SConfig *pCfg, const char *inputCfgDir, const char *e
if
(
cfgLoad
(
pCfg
,
CFG_STYPE_CFG_FILE
,
cfgDir
)
!=
0
)
{
if
(
cfgLoad
(
pCfg
,
CFG_STYPE_CFG_FILE
,
cfgFile
)
!=
0
)
{
u
Error
(
"failed to load from config file:%s
since %s"
,
cfgFile
,
terrstr
());
u
Info
(
"cfg file:%s not read
since %s"
,
cfgFile
,
terrstr
());
return
0
;
}
}
...
...
source/dnode/mgmt/interface/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -6,5 +6,5 @@ target_include_directories(
PUBLIC
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_link_libraries
(
dnode_interface cjson mnode vnode qnode snode bnode wal sync taos tfs monitor
dnode_interface cjson mnode vnode qnode snode bnode wal sync taos
_static
tfs monitor
)
\ No newline at end of file
source/dnode/mgmt/mgmt_vnode/src/vmInt.c
浏览文件 @
ea8832ba
...
...
@@ -262,6 +262,7 @@ static void vmCleanup(SMgmtWrapper *pWrapper) {
vmCloseVnodes
(
pMgmt
);
vmStopWorker
(
pMgmt
);
vnodeCleanup
();
tfsClose
(
pMgmt
->
pTfs
);
// walCleanUp();
taosMemoryFree
(
pMgmt
);
pWrapper
->
pMgmt
=
NULL
;
...
...
source/dnode/vnode/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -18,12 +18,11 @@ target_sources(
"src/vnd/vnodeSvr.c"
# meta
# "src/meta/metaBDBImpl
.c"
"src/meta/metaOpen
.c"
"src/meta/metaIdx.c"
"src/meta/metaMain.c"
"src/meta/metaTable.c"
"src/meta/metaTbUid.c"
"src/meta/metaTDBImpl.c"
# "src/meta/metaBDBImpl.c"
# tsdb
"src/tsdb/tsdbTDBImpl.c"
...
...
source/dnode/vnode/src/inc/meta.h
浏览文件 @
ea8832ba
...
...
@@ -20,7 +20,6 @@
extern
"C"
{
#endif
typedef
struct
SMetaCache
SMetaCache
;
typedef
struct
SMetaIdx
SMetaIdx
;
typedef
struct
SMetaDB
SMetaDB
;
typedef
struct
SMCtbCursor
SMCtbCursor
;
...
...
@@ -36,13 +35,22 @@ typedef struct SMSmaCursor SMSmaCursor;
#define metaTrace(...) do { if (metaDebugFlag & DEBUG_TRACE) { taosPrintLog("META ", DEBUG_TRACE, metaDebugFlag, __VA_ARGS__); }} while(0)
// clang-format on
// metaOpen ==================
int
metaOpen
(
SVnode
*
pVnode
,
SMeta
**
ppMeta
);
int
metaClose
(
SMeta
*
pMeta
);
// metaIdx ==================
int
metaOpenIdx
(
SMeta
*
pMeta
);
void
metaCloseIdx
(
SMeta
*
pMeta
);
int
metaSaveTableToIdx
(
SMeta
*
pMeta
,
const
STbCfg
*
pTbOptions
);
int
metaRemoveTableFromIdx
(
SMeta
*
pMeta
,
tb_uid_t
uid
);
static
FORCE_INLINE
tb_uid_t
metaGenerateUid
(
SMeta
*
pMeta
)
{
return
tGenIdPI64
();
}
#define META_SUPER_TABLE TD_SUPER_TABLE
#define META_CHILD_TABLE TD_CHILD_TABLE
#define META_NORMAL_TABLE TD_NORMAL_TABLE
SMeta
*
metaOpen
(
const
char
*
path
,
SMemAllocatorFactory
*
pMAF
);
void
metaClose
(
SMeta
*
pMeta
);
void
metaRemove
(
const
char
*
path
);
int
metaCreateTable
(
SMeta
*
pMeta
,
STbCfg
*
pTbCfg
);
int
metaDropTable
(
SMeta
*
pMeta
,
tb_uid_t
uid
);
int
metaCommit
(
SMeta
*
pMeta
);
...
...
@@ -71,37 +79,15 @@ int metaRemoveTableFromDb(SMeta* pMeta, tb_uid_t uid);
int
metaSaveSmaToDB
(
SMeta
*
pMeta
,
STSma
*
pTbCfg
);
int
metaRemoveSmaFromDb
(
SMeta
*
pMeta
,
int64_t
indexUid
);
// SMetaCache
int
metaOpenCache
(
SMeta
*
pMeta
);
void
metaCloseCache
(
SMeta
*
pMeta
);
// SMetaIdx
int
metaOpenIdx
(
SMeta
*
pMeta
);
void
metaCloseIdx
(
SMeta
*
pMeta
);
int
metaSaveTableToIdx
(
SMeta
*
pMeta
,
const
STbCfg
*
pTbOptions
);
int
metaRemoveTableFromIdx
(
SMeta
*
pMeta
,
tb_uid_t
uid
);
// STbUidGnrt
typedef
struct
STbUidGenerator
{
tb_uid_t
nextUid
;
}
STbUidGenerator
;
// STableUidGenerator
int
metaOpenUidGnrt
(
SMeta
*
pMeta
);
void
metaCloseUidGnrt
(
SMeta
*
pMeta
);
// tb_uid_t
#define IVLD_TB_UID 0
tb_uid_t
metaGenerateUid
(
SMeta
*
pMeta
);
struct
SMeta
{
char
*
path
;
SVnode
*
pVnode
;
SMetaDB
*
pDB
;
SMetaIdx
*
pIdx
;
SMetaCache
*
pCache
;
STbUidGenerator
uidGnrt
;
SMemAllocatorFactory
*
pmaf
;
char
*
path
;
SVnode
*
pVnode
;
SMetaDB
*
pDB
;
SMetaIdx
*
pIdx
;
};
#ifdef __cplusplus
...
...
source/dnode/vnode/src/inc/vnd.h
浏览文件 @
ea8832ba
...
...
@@ -44,6 +44,11 @@ int vnodeGetTableMeta(SVnode* pVnode, SRpcMsg* pMsg);
int
vnodeSaveInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pCfg
);
int
vnodeCommitInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pInfo
);
int
vnodeLoadInfo
(
const
char
*
dir
,
SVnodeInfo
*
pInfo
);
int
vnodeBegin
(
SVnode
*
pVnode
,
int
option
);
int
vnodeSyncCommit
(
SVnode
*
pVnode
);
int
vnodeAsyncCommit
(
SVnode
*
pVnode
);
#define vnodeShouldCommit vnodeBufPoolIsFull
#if 1
// SVBufPool
...
...
@@ -84,13 +89,8 @@ bool vmaIsFull(SVMemAllocator* pVMA);
// vnodeCfg.h
extern
const
SVnodeCfg
vnodeCfgDefault
;
int
vnodeCheckCfg
(
const
SVnodeCfg
*
);
void
vnodeOptionsCopy
(
SVnodeCfg
*
pDest
,
const
SVnodeCfg
*
pSrc
);
int
vnodeCheckCfg
(
const
SVnodeCfg
*
);
// For commit
#define vnodeShouldCommit vnodeBufPoolIsFull
int
vnodeSyncCommit
(
SVnode
*
pVnode
);
int
vnodeAsyncCommit
(
SVnode
*
pVnode
);
#endif
#ifdef __cplusplus
...
...
source/dnode/vnode/src/meta/metaMain.c
已删除
100644 → 0
浏览文件 @
71578728
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "tcoding.h"
#include "vnodeInt.h"
static
SMeta
*
metaNew
(
const
char
*
path
,
SMemAllocatorFactory
*
pMAF
);
static
void
metaFree
(
SMeta
*
pMeta
);
static
int
metaOpenImpl
(
SMeta
*
pMeta
);
static
void
metaCloseImpl
(
SMeta
*
pMeta
);
SMeta
*
metaOpen
(
const
char
*
path
,
SMemAllocatorFactory
*
pMAF
)
{
SMeta
*
pMeta
=
NULL
;
// Allocate handle
pMeta
=
metaNew
(
path
,
pMAF
);
if
(
pMeta
==
NULL
)
{
// TODO: handle error
return
NULL
;
}
// Create META path (TODO)
taosMkDir
(
path
);
// Open meta
if
(
metaOpenImpl
(
pMeta
)
<
0
)
{
metaFree
(
pMeta
);
return
NULL
;
}
return
pMeta
;
}
void
metaClose
(
SMeta
*
pMeta
)
{
if
(
pMeta
)
{
metaCloseImpl
(
pMeta
);
metaFree
(
pMeta
);
}
}
void
metaRemove
(
const
char
*
path
)
{
taosRemoveDir
(
path
);
}
/* ------------------------ STATIC METHODS ------------------------ */
static
SMeta
*
metaNew
(
const
char
*
path
,
SMemAllocatorFactory
*
pMAF
)
{
SMeta
*
pMeta
;
size_t
psize
=
strlen
(
path
);
pMeta
=
(
SMeta
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pMeta
));
if
(
pMeta
==
NULL
)
{
return
NULL
;
}
pMeta
->
path
=
strdup
(
path
);
if
(
pMeta
->
path
==
NULL
)
{
metaFree
(
pMeta
);
return
NULL
;
}
return
pMeta
;
};
static
void
metaFree
(
SMeta
*
pMeta
)
{
if
(
pMeta
)
{
taosMemoryFreeClear
(
pMeta
->
path
);
taosMemoryFree
(
pMeta
);
}
}
static
int
metaOpenImpl
(
SMeta
*
pMeta
)
{
// Open meta db
if
(
metaOpenDB
(
pMeta
)
<
0
)
{
// TODO: handle error
metaCloseImpl
(
pMeta
);
return
-
1
;
}
// Open meta index
if
(
metaOpenIdx
(
pMeta
)
<
0
)
{
// TODO: handle error
metaCloseImpl
(
pMeta
);
return
-
1
;
}
// Open meta table uid generator
if
(
metaOpenUidGnrt
(
pMeta
)
<
0
)
{
// TODO: handle error
metaCloseImpl
(
pMeta
);
return
-
1
;
}
return
0
;
}
static
void
metaCloseImpl
(
SMeta
*
pMeta
)
{
metaCloseUidGnrt
(
pMeta
);
metaCloseIdx
(
pMeta
);
metaCloseDB
(
pMeta
);
}
\ No newline at end of file
source/dnode/vnode/src/meta/meta
TbUid
.c
→
source/dnode/vnode/src/meta/meta
Open
.c
浏览文件 @
ea8832ba
...
...
@@ -15,16 +15,52 @@
#include "vnodeInt.h"
int
metaOpenUidGnrt
(
SMeta
*
pMeta
)
{
// Init a generator
pMeta
->
uidGnrt
.
nextUid
=
IVLD_TB_UID
;
int
metaOpen
(
SVnode
*
pVnode
,
SMeta
**
ppMeta
)
{
SMeta
*
pMeta
=
NULL
;
int
slen
;
*
ppMeta
=
NULL
;
// create handle
slen
=
strlen
(
tfsGetPrimaryPath
(
pVnode
->
pTfs
))
+
strlen
(
pVnode
->
path
)
+
strlen
(
VNODE_META_DIR
)
+
3
;
if
((
pMeta
=
taosMemoryCalloc
(
1
,
sizeof
(
*
pMeta
)
+
slen
))
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
pMeta
->
path
=
(
char
*
)
&
pMeta
[
1
];
sprintf
(
pMeta
->
path
,
"%s%s%s%s%s"
,
tfsGetPrimaryPath
(
pVnode
->
pTfs
),
TD_DIRSEP
,
pVnode
->
path
,
TD_DIRSEP
,
VNODE_META_DIR
);
pMeta
->
pVnode
=
pVnode
;
// create path if not created yet
taosMkDir
(
pMeta
->
path
);
// open meta
if
(
metaOpenDB
(
pMeta
)
<
0
)
{
goto
_err
;
}
if
(
metaOpenIdx
(
pMeta
)
<
0
)
{
goto
_err
;
}
*
ppMeta
=
pMeta
;
return
0
;
}
void
metaCloseUidGnrt
(
SMeta
*
pMeta
)
{
/* TODO */
_err:
if
(
pMeta
->
pIdx
)
metaCloseIdx
(
pMeta
);
if
(
pMeta
->
pDB
)
metaCloseDB
(
pMeta
);
taosMemoryFree
(
pMeta
);
return
-
1
;
}
tb_uid_t
metaGenerateUid
(
SMeta
*
pMeta
)
{
// Generate a new table UID
return
tGenIdPI64
();
}
int
metaClose
(
SMeta
*
pMeta
)
{
if
(
pMeta
)
{
metaCloseIdx
(
pMeta
);
metaCloseDB
(
pMeta
);
taosMemoryFree
(
pMeta
);
}
return
0
;
}
\ No newline at end of file
source/dnode/vnode/src/vnd/vnodeCfg.c
浏览文件 @
ea8832ba
...
...
@@ -23,11 +23,6 @@ int vnodeCheckCfg(const SVnodeCfg *pCfg) {
return
0
;
}
#if 1 //======================================================================
void
vnodeOptionsCopy
(
SVnodeCfg
*
pDest
,
const
SVnodeCfg
*
pSrc
)
{
memcpy
((
void
*
)
pDest
,
(
void
*
)
pSrc
,
sizeof
(
SVnodeCfg
));
}
int
vnodeValidateTableHash
(
SVnodeCfg
*
pVnodeOptions
,
char
*
tableFName
)
{
uint32_t
hashValue
=
0
;
...
...
@@ -47,5 +42,3 @@ int vnodeValidateTableHash(SVnodeCfg *pVnodeOptions, char *tableFName) {
return
TSDB_CODE_SUCCESS
;
}
#endif
\ No newline at end of file
source/dnode/vnode/src/vnd/vnodeOpen.c
浏览文件 @
ea8832ba
...
...
@@ -65,14 +65,15 @@ SVnode *vnodeOpen(const char *path, STfs *pTfs, SMsgCb msgCb) {
}
// create handle
pVnode
=
(
SVnode
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pVnode
));
pVnode
=
(
SVnode
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pVnode
)
+
strlen
(
path
)
+
1
);
if
(
pVnode
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
vError
(
"vgId: %d failed to open vnode since %s"
,
info
.
config
.
vgId
,
tstrerror
(
terrno
));
return
NULL
;
}
pVnode
->
path
=
strdup
(
dir
);
pVnode
->
path
=
(
char
*
)
&
pVnode
[
1
];
strcpy
(
pVnode
->
path
,
path
);
pVnode
->
config
=
info
.
config
;
pVnode
->
state
.
committed
=
info
.
state
.
committed
;
pVnode
->
state
.
processed
=
pVnode
->
state
.
applied
=
pVnode
->
state
.
committed
;
...
...
@@ -88,9 +89,7 @@ SVnode *vnodeOpen(const char *path, STfs *pTfs, SMsgCb msgCb) {
}
// open meta
sprintf
(
tdir
,
"%s%s%s"
,
dir
,
TD_DIRSEP
,
VNODE_META_DIR
);
pVnode
->
pMeta
=
metaOpen
(
tdir
,
vBufPoolGetMAF
(
pVnode
));
if
(
pVnode
->
pMeta
==
NULL
)
{
if
(
metaOpen
(
pVnode
,
&
pVnode
->
pMeta
)
<
0
)
{
vError
(
"vgId: %d failed to open vnode meta since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
goto
_err
;
}
...
...
@@ -141,7 +140,6 @@ _err:
if
(
pVnode
->
pTsdb
)
tsdbClose
(
pVnode
->
pTsdb
);
if
(
pVnode
->
pMeta
)
metaClose
(
pVnode
->
pMeta
);
tsem_destroy
(
&
(
pVnode
->
canCommit
));
taosMemoryFreeClear
(
pVnode
->
path
);
taosMemoryFree
(
pVnode
);
return
NULL
;
}
...
...
@@ -159,7 +157,6 @@ void vnodeClose(SVnode *pVnode) {
vnodeCloseBufPool
(
pVnode
);
// destroy handle
tsem_destroy
(
&
(
pVnode
->
canCommit
));
taosMemoryFreeClear
(
pVnode
->
path
);
taosMemoryFree
(
pVnode
);
}
}
source/libs/catalog/test/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -8,7 +8,7 @@ AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST)
ADD_EXECUTABLE
(
catalogTest
${
SOURCE_LIST
}
)
TARGET_LINK_LIBRARIES
(
catalogTest
PUBLIC os util common catalog transport gtest qcom taos
PUBLIC os util common catalog transport gtest qcom taos
_static
)
TARGET_INCLUDE_DIRECTORIES
(
...
...
source/libs/executor/src/indexoperator.c
浏览文件 @
ea8832ba
...
...
@@ -22,38 +22,275 @@ typedef struct SIFCtx {
SHashObj
*
pRes
;
/* element is SScalarParam */
}
SIFCtx
;
#define SIF_ERR_RET(c) \
do { \
int32_t _code = c; \
if (_code != TSDB_CODE_SUCCESS) { \
terrno = _code; \
return _code; \
} \
} while (0)
#define SIF_RET(c) \
do { \
int32_t _code = c; \
if (_code != TSDB_CODE_SUCCESS) { \
terrno = _code; \
} \
return _code; \
} while (0)
#define SIF_ERR_JRET(c) \
do { \
code = c; \
if (code != TSDB_CODE_SUCCESS) { \
terrno = code; \
goto _return; \
} \
} while (0)
typedef
struct
SIFParam
{
SArray
*
result
;
SHashObj
*
pFilter
;
}
SIFParam
;
typedef
int32_t
(
*
sif_func_t
)(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
);
// construct tag filter operator later
static
void
destroyTagFilterOperatorInfo
(
void
*
param
)
{
STagFilterOperatorInfo
*
pInfo
=
(
STagFilterOperatorInfo
*
)
param
;
}
static
void
destroyTagFilterOperatorInfo
(
void
*
param
)
{
STagFilterOperatorInfo
*
pInfo
=
(
STagFilterOperatorInfo
*
)
param
;
}
static
void
sifFreeParam
(
SIFParam
*
param
)
{
if
(
param
==
NULL
)
return
;
taosArrayDestroy
(
param
->
result
);
}
int32_t
sifInitOperParams
(
SIFParam
*
params
,
SOperatorNode
*
node
,
SIFCtx
*
ctx
)
{
static
int32_t
sifGetOperParamNum
(
EOperatorType
ty
)
{
if
(
OP_TYPE_IS_NULL
==
ty
||
OP_TYPE_IS_NOT_NULL
==
ty
||
OP_TYPE_IS_TRUE
==
ty
||
OP_TYPE_IS_NOT_TRUE
==
ty
||
OP_TYPE_IS_FALSE
==
ty
||
OP_TYPE_IS_NOT_FALSE
==
ty
||
OP_TYPE_IS_UNKNOWN
==
ty
||
OP_TYPE_IS_NOT_UNKNOWN
==
ty
||
OP_TYPE_MINUS
==
ty
)
{
return
1
;
}
return
2
;
}
static
int32_t
sifInitParam
(
SNode
*
node
,
SIFParam
*
param
,
SIFCtx
*
ctx
)
{
switch
(
nodeType
(
node
))
{
case
QUERY_NODE_VALUE
:
{
SValueNode
*
vn
=
(
SValueNode
*
)
node
;
break
;
}
case
QUERY_NODE_COLUMN
:
{
SColumnNode
*
cn
=
(
SColumnNode
*
)
node
;
break
;
}
case
QUERY_NODE_NODE_LIST
:
{
SNodeListNode
*
nl
=
(
SNodeListNode
*
)
node
;
if
(
LIST_LENGTH
(
nl
->
pNodeList
)
<=
0
)
{
qError
(
"invalid length for node:%p, length: %d"
,
node
,
LIST_LENGTH
(
nl
->
pNodeList
));
SIF_ERR_RET
(
TSDB_CODE_QRY_INVALID_INPUT
);
}
if
(
taosHashPut
(
ctx
->
pRes
,
&
node
,
POINTER_BYTES
,
param
,
sizeof
(
*
param
)))
{
taosHashCleanup
(
param
->
pFilter
);
qError
(
"taosHashPut nodeList failed, size:%d"
,
(
int32_t
)
sizeof
(
*
param
));
SIF_ERR_RET
(
TSDB_CODE_QRY_OUT_OF_MEMORY
);
}
break
;
}
case
QUERY_NODE_FUNCTION
:
case
QUERY_NODE_OPERATOR
:
case
QUERY_NODE_LOGIC_CONDITION
:
{
SIFParam
*
res
=
(
SIFParam
*
)
taosHashGet
(
ctx
->
pRes
,
&
node
,
POINTER_BYTES
);
if
(
NULL
==
res
)
{
qError
(
"no result for node, type:%d, node:%p"
,
nodeType
(
node
),
node
);
SIF_ERR_RET
(
TSDB_CODE_QRY_APP_ERROR
);
}
*
param
=
*
res
;
break
;
}
default:
break
;
}
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifInitOperParams
(
SIFParam
**
params
,
SOperatorNode
*
node
,
SIFCtx
*
ctx
)
{
int32_t
code
=
0
;
return
code
;
int32_t
nParam
=
sifGetOperParamNum
(
node
->
opType
);
if
(
NULL
==
node
->
pLeft
||
(
nParam
==
2
&&
NULL
==
node
->
pRight
))
{
qError
(
"invalid operation node, left: %p, rigth: %p"
,
node
->
pLeft
,
node
->
pRight
);
SIF_ERR_RET
(
TSDB_CODE_QRY_INVALID_INPUT
);
}
SIFParam
*
paramList
=
taosMemoryCalloc
(
nParam
,
sizeof
(
SIFParam
));
if
(
NULL
==
paramList
)
{
SIF_ERR_RET
(
TSDB_CODE_QRY_OUT_OF_MEMORY
);
}
SIF_ERR_JRET
(
sifInitParam
(
node
->
pLeft
,
&
paramList
[
0
],
ctx
));
if
(
nParam
>
1
)
{
SIF_ERR_JRET
(
sifInitParam
(
node
->
pRight
,
&
paramList
[
1
],
ctx
));
}
*
params
=
paramList
;
return
TSDB_CODE_SUCCESS
;
_return:
taosMemoryFree
(
paramList
);
SIF_RET
(
code
);
}
static
int32_t
sifInitParamList
(
SIFParam
**
params
,
SNodeList
*
nodeList
,
SIFCtx
*
ctx
)
{
int32_t
code
=
0
;
SIFParam
*
tParams
=
taosMemoryCalloc
(
nodeList
->
length
,
sizeof
(
SIFParam
));
if
(
tParams
==
NULL
)
{
qError
(
"failed to calloc, nodeList: %p"
,
nodeList
);
SIF_ERR_RET
(
TSDB_CODE_QRY_OUT_OF_MEMORY
);
}
SListCell
*
cell
=
nodeList
->
pHead
;
for
(
int32_t
i
=
0
;
i
<
nodeList
->
length
;
i
++
)
{
if
(
NULL
==
cell
||
NULL
==
cell
->
pNode
)
{
SIF_ERR_JRET
(
TSDB_CODE_QRY_INVALID_INPUT
);
}
SIF_ERR_JRET
(
sifInitParam
(
cell
->
pNode
,
&
tParams
[
i
],
ctx
));
cell
=
cell
->
pNext
;
}
*
params
=
tParams
;
return
TSDB_CODE_SUCCESS
;
_return:
taosMemoryFree
(
tParams
);
SIF_RET
(
code
);
}
static
int32_t
sifExecFunction
(
SFunctionNode
*
node
,
SIFCtx
*
ctx
,
SIFParam
*
output
)
{
qError
(
"index-filter not support buildin function"
);
return
TSDB_CODE_QRY_INVALID_INPUT
;
}
static
int32_t
sifLessThanFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifLessEqualFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifGreaterThanFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifGreaterEqualFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifEqualFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifNotEqualFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifInFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifNotInFunc
(
SNode
*
left
,
SNode
*
right
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifLikeFunc
(
SNode
*
left
,
SNode
*
right
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifNotLikeFunc
(
SNode
*
left
,
SNode
*
right
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifMatchFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifNotMatchFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// impl later
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifDefaultFunc
(
SNode
*
left
,
SNode
*
rigth
,
SIFParam
*
output
)
{
// add more except
return
TSDB_CODE_QRY_INVALID_INPUT
;
}
static
sif_func_t
sifGetOperFn
(
int32_t
funcId
)
{
// impl later
switch
(
funcId
)
{
case
OP_TYPE_GREATER_THAN
:
return
sifGreaterThanFunc
;
case
OP_TYPE_GREATER_EQUAL
:
return
sifGreaterEqualFunc
;
case
OP_TYPE_LOWER_THAN
:
return
sifLessThanFunc
;
case
OP_TYPE_LOWER_EQUAL
:
return
sifLessEqualFunc
;
case
OP_TYPE_EQUAL
:
return
sifEqualFunc
;
case
OP_TYPE_NOT_EQUAL
:
return
sifNotEqualFunc
;
case
OP_TYPE_IN
:
return
sifInFunc
;
case
OP_TYPE_NOT_IN
:
return
sifNotInFunc
;
case
OP_TYPE_LIKE
:
return
sifLikeFunc
;
case
OP_TYPE_NOT_LIKE
:
return
sifNotLikeFunc
;
case
OP_TYPE_MATCH
:
return
sifMatchFunc
;
case
OP_TYPE_NMATCH
:
return
sifNotMatchFunc
;
default:
return
sifDefaultFunc
;
}
return
sifDefaultFunc
;
}
static
int32_t
sifExecOper
(
SOperatorNode
*
node
,
SIFCtx
*
ctx
,
SIFParam
*
output
)
{
int32_t
code
=
0
;
SIFParam
*
params
=
NULL
;
SIF_ERR_RET
(
sifInitOperParams
(
&
params
,
node
,
ctx
));
return
TSDB_CODE_SUCCESS
;
int32_t
nParam
=
sifGetOperParamNum
(
node
->
opType
);
if
(
nParam
<=
1
)
{
SIF_ERR_JRET
(
TSDB_CODE_QRY_INVALID_INPUT
);
}
sif_func_t
operFn
=
sifGetOperFn
(
node
->
opType
);
return
operFn
(
node
->
pLeft
,
node
->
pRight
,
output
);
_return:
taosMemoryFree
(
params
);
SIF_RET
(
code
);
}
static
int32_t
sifExecLogic
(
SLogicConditionNode
*
node
,
SIFCtx
*
ctx
,
SIFParam
*
output
)
{
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
sifExecLogic
(
SLogicConditionNode
*
node
,
SIFCtx
*
ctx
,
SIFParam
*
output
)
{
if
(
NULL
==
node
->
pParameterList
||
node
->
pParameterList
->
length
<=
0
)
{
qError
(
"invalid logic parameter list, list:%p, paramNum:%d"
,
node
->
pParameterList
,
node
->
pParameterList
?
node
->
pParameterList
->
length
:
0
);
return
TSDB_CODE_QRY_INVALID_INPUT
;
}
int32_t
code
;
SIFParam
*
params
=
NULL
;
SIF_ERR_RET
(
sifInitParamList
(
&
params
,
node
->
pParameterList
,
ctx
));
for
(
int32_t
m
=
0
;
m
<
node
->
pParameterList
->
length
;
m
++
)
{
// add impl later
if
(
node
->
condType
==
LOGIC_COND_TYPE_AND
)
{
taosArrayAddAll
(
output
->
result
,
params
[
m
].
result
);
}
else
if
(
node
->
condType
==
LOGIC_COND_TYPE_OR
)
{
taosArrayAddAll
(
output
->
result
,
params
[
m
].
result
);
}
else
if
(
node
->
condType
==
LOGIC_COND_TYPE_NOT
)
{
taosArrayAddAll
(
output
->
result
,
params
[
m
].
result
);
}
}
_return:
taosMemoryFree
(
params
);
SIF_RET
(
code
);
}
static
EDealRes
sifWalkFunction
(
SNode
*
pNode
,
void
*
context
)
{
// impl later
SFunctionNode
*
node
=
(
SFunctionNode
*
)
pNode
;
SIFParam
output
=
{
0
};
...
...
@@ -104,8 +341,7 @@ static EDealRes sifWalkOper(SNode *pNode, void *context) {
}
EDealRes
sifCalcWalker
(
SNode
*
node
,
void
*
context
)
{
if
(
QUERY_NODE_VALUE
==
nodeType
(
node
)
||
QUERY_NODE_NODE_LIST
==
nodeType
(
node
)
||
QUERY_NODE_COLUMN
==
nodeType
(
node
))
{
if
(
QUERY_NODE_VALUE
==
nodeType
(
node
)
||
QUERY_NODE_NODE_LIST
==
nodeType
(
node
)
||
QUERY_NODE_COLUMN
==
nodeType
(
node
))
{
return
DEAL_RES_CONTINUE
;
}
SIFCtx
*
ctx
=
(
SIFCtx
*
)
context
;
...
...
source/libs/executor/test/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -8,7 +8,7 @@ AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST)
ADD_EXECUTABLE
(
executorTest
${
SOURCE_LIST
}
)
TARGET_LINK_LIBRARIES
(
executorTest
PRIVATE os util common transport gtest taos qcom executor function planner scalar nodes
PRIVATE os util common transport gtest taos
_static
qcom executor function planner scalar nodes
)
TARGET_INCLUDE_DIRECTORIES
(
...
...
source/libs/qworker/src/qworker.c
浏览文件 @
ea8832ba
...
...
@@ -1470,6 +1470,9 @@ void qWorkerDestroy(void **qWorkerMgmt) {
//TODO FREE ALL
taosHashCleanup
(
mgmt
->
ctxHash
);
taosHashCleanup
(
mgmt
->
schHash
);
taosMemoryFreeClear
(
*
qWorkerMgmt
);
}
...
...
source/libs/scheduler/test/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -8,7 +8,7 @@ AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST)
ADD_EXECUTABLE
(
schedulerTest
${
SOURCE_LIST
}
)
TARGET_LINK_LIBRARIES
(
schedulerTest
PUBLIC os util common catalog transport gtest qcom taos planner scheduler
PUBLIC os util common catalog transport gtest qcom taos
_static
planner scheduler
)
TARGET_INCLUDE_DIRECTORIES
(
...
...
source/util/src/tcache.c
浏览文件 @
ea8832ba
...
...
@@ -910,6 +910,8 @@ void taosCacheRefresh(SCacheObj *pCacheObj, __cache_trav_fn_t fp, void *param1)
void
taosStopCacheRefreshWorker
(
void
)
{
stopRefreshWorker
=
true
;
taosThreadJoin
(
cacheRefreshWorker
,
NULL
);
taosArrayDestroy
(
pCacheArrayList
);
}
size_t
taosCacheGetNumOfObj
(
const
SCacheObj
*
pCacheObj
)
{
...
...
source/util/src/tconfig.c
浏览文件 @
ea8832ba
...
...
@@ -591,12 +591,12 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) {
}
int32_t
cfgLoadFromEnvVar
(
SConfig
*
pConfig
)
{
u
Info
(
"load from env variables not implemented yet"
);
u
Debug
(
"load from env variables not implemented yet"
);
return
0
;
}
int32_t
cfgLoadFromEnvFile
(
SConfig
*
pConfig
,
const
char
*
filepath
)
{
u
Info
(
"load from env file not implemented yet"
);
u
Debug
(
"load from env file not implemented yet"
);
return
0
;
}
...
...
@@ -655,6 +655,6 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) {
}
int32_t
cfgLoadFromApollUrl
(
SConfig
*
pConfig
,
const
char
*
url
)
{
u
Info
(
"load from apoll url not implemented yet"
);
u
Debug
(
"load from apoll url not implemented yet"
);
return
0
;
}
source/util/src/tlog.c
浏览文件 @
ea8832ba
...
...
@@ -38,27 +38,26 @@
#define LOG_BUF_MUTEX(x) ((x)->buffMutex)
typedef
struct
{
char
*
buffer
;
int32_t
buffStart
;
int32_t
buffEnd
;
int32_t
buffSize
;
int32_t
minBuffSize
;
TdFilePtr
pFile
;
int32_t
stop
;
TdThread
asyncThread
;
char
*
buffer
;
int32_t
buffStart
;
int32_t
buffEnd
;
int32_t
buffSize
;
int32_t
minBuffSize
;
TdFilePtr
pFile
;
int32_t
stop
;
TdThread
asyncThread
;
TdThreadMutex
buffMutex
;
tsem_t
buffNotEmpty
;
}
SLogBuff
;
typedef
struct
{
int32_t
fileNum
;
int32_t
maxLines
;
int32_t
lines
;
int32_t
flag
;
int32_t
openInProgress
;
pid_t
pid
;
char
logName
[
LOG_FILE_NAME_LEN
];
SLogBuff
*
logHandle
;
int32_t
fileNum
;
int32_t
maxLines
;
int32_t
lines
;
int32_t
flag
;
int32_t
openInProgress
;
pid_t
pid
;
char
logName
[
LOG_FILE_NAME_LEN
];
SLogBuff
*
logHandle
;
TdThreadMutex
logMutex
;
}
SLogObj
;
...
...
@@ -100,7 +99,7 @@ int64_t dbgBigWN = 0;
int64_t
dbgWSize
=
0
;
static
void
*
taosAsyncOutputLog
(
void
*
param
);
static
int32_t
taosPushLogBuffer
(
SLogBuff
*
tLogBuf
f
,
const
char
*
msg
,
int32_t
msgLen
);
static
int32_t
taosPushLogBuffer
(
SLogBuff
*
pLogBu
f
,
const
char
*
msg
,
int32_t
msgLen
);
static
SLogBuff
*
taosLogBuffNew
(
int32_t
bufSize
);
static
void
taosCloseLogByFd
(
TdFilePtr
pFile
);
static
int32_t
taosOpenLogFile
(
char
*
fn
,
int32_t
maxLines
,
int32_t
maxFileNum
);
...
...
@@ -136,16 +135,24 @@ static void taosStopLog() {
}
}
static
void
taosLogBuffDestroy
()
{
taosThreadMutexDestroy
(
&
tsLogObj
.
logHandle
->
buffMutex
);
taosCloseFile
(
&
tsLogObj
.
logHandle
->
pFile
);
taosMemoryFreeClear
(
tsLogObj
.
logHandle
->
buffer
);
memset
(
&
tsLogObj
.
logHandle
->
buffer
,
0
,
sizeof
(
tsLogObj
.
logHandle
->
buffer
));
taosThreadMutexDestroy
(
&
tsLogObj
.
logMutex
);
taosMemoryFreeClear
(
tsLogObj
.
logHandle
);
memset
(
&
tsLogObj
.
logHandle
,
0
,
sizeof
(
tsLogObj
.
logHandle
));
tsLogObj
.
logHandle
=
NULL
;
}
void
taosCloseLog
()
{
taosStopLog
();
if
(
taosCheckPthreadValid
(
tsLogObj
.
logHandle
->
asyncThread
))
{
taosThreadJoin
(
tsLogObj
.
logHandle
->
asyncThread
,
NULL
);
}
tsLogInited
=
0
;
// In case that other threads still use log resources causing invalid write in valgrind
// we comment two lines below.
// taosLogBuffDestroy(tsLogObj.logHandle);
// taosCloseLog();
taosLogBuffDestroy
(
tsLogObj
.
logHandle
);
}
static
bool
taosLockLogFile
(
TdFilePtr
pFile
)
{
...
...
@@ -231,7 +238,7 @@ static int32_t taosOpenNewLogFile() {
tsLogObj
.
openInProgress
=
1
;
uInfo
(
"open new log file ......"
);
TdThread
thread
;
TdThread
thread
;
TdThreadAttr
attr
;
taosThreadAttrInit
(
&
attr
);
taosThreadAttrSetDetachState
(
&
attr
,
PTHREAD_CREATE_DETACHED
);
...
...
@@ -506,45 +513,45 @@ static void taosCloseLogByFd(TdFilePtr pFile) {
}
static
SLogBuff
*
taosLogBuffNew
(
int32_t
bufSize
)
{
SLogBuff
*
tLogBuf
f
=
NULL
;
SLogBuff
*
pLogBu
f
=
NULL
;
tLogBuf
f
=
taosMemoryCalloc
(
1
,
sizeof
(
SLogBuff
));
if
(
tLogBuf
f
==
NULL
)
return
NULL
;
pLogBu
f
=
taosMemoryCalloc
(
1
,
sizeof
(
SLogBuff
));
if
(
pLogBu
f
==
NULL
)
return
NULL
;
LOG_BUF_BUFFER
(
tLogBuf
f
)
=
taosMemoryMalloc
(
bufSize
);
if
(
LOG_BUF_BUFFER
(
tLogBuf
f
)
==
NULL
)
goto
_err
;
LOG_BUF_BUFFER
(
pLogBu
f
)
=
taosMemoryMalloc
(
bufSize
);
if
(
LOG_BUF_BUFFER
(
pLogBu
f
)
==
NULL
)
goto
_err
;
LOG_BUF_START
(
tLogBuff
)
=
LOG_BUF_END
(
tLogBuf
f
)
=
0
;
LOG_BUF_SIZE
(
tLogBuf
f
)
=
bufSize
;
tLogBuf
f
->
minBuffSize
=
bufSize
/
10
;
tLogBuf
f
->
stop
=
0
;
LOG_BUF_START
(
pLogBuf
)
=
LOG_BUF_END
(
pLogBu
f
)
=
0
;
LOG_BUF_SIZE
(
pLogBu
f
)
=
bufSize
;
pLogBu
f
->
minBuffSize
=
bufSize
/
10
;
pLogBu
f
->
stop
=
0
;
if
(
taosThreadMutexInit
(
&
LOG_BUF_MUTEX
(
tLogBuf
f
),
NULL
)
<
0
)
goto
_err
;
// tsem_init(&(
tLogBuf
f->buffNotEmpty), 0, 0);
if
(
taosThreadMutexInit
(
&
LOG_BUF_MUTEX
(
pLogBu
f
),
NULL
)
<
0
)
goto
_err
;
// tsem_init(&(
pLogBu
f->buffNotEmpty), 0, 0);
return
tLogBuf
f
;
return
pLogBu
f
;
_err:
taosMemoryFreeClear
(
LOG_BUF_BUFFER
(
tLogBuf
f
));
taosMemoryFreeClear
(
tLogBuf
f
);
taosMemoryFreeClear
(
LOG_BUF_BUFFER
(
pLogBu
f
));
taosMemoryFreeClear
(
pLogBu
f
);
return
NULL
;
}
static
void
taosCopyLogBuffer
(
SLogBuff
*
tLogBuf
f
,
int32_t
start
,
int32_t
end
,
const
char
*
msg
,
int32_t
msgLen
)
{
static
void
taosCopyLogBuffer
(
SLogBuff
*
pLogBu
f
,
int32_t
start
,
int32_t
end
,
const
char
*
msg
,
int32_t
msgLen
)
{
if
(
start
>
end
)
{
memcpy
(
LOG_BUF_BUFFER
(
tLogBuf
f
)
+
end
,
msg
,
msgLen
);
memcpy
(
LOG_BUF_BUFFER
(
pLogBu
f
)
+
end
,
msg
,
msgLen
);
}
else
{
if
(
LOG_BUF_SIZE
(
tLogBuf
f
)
-
end
<
msgLen
)
{
memcpy
(
LOG_BUF_BUFFER
(
tLogBuff
)
+
end
,
msg
,
LOG_BUF_SIZE
(
tLogBuf
f
)
-
end
);
memcpy
(
LOG_BUF_BUFFER
(
tLogBuff
),
msg
+
LOG_BUF_SIZE
(
tLogBuff
)
-
end
,
msgLen
-
LOG_BUF_SIZE
(
tLogBuf
f
)
+
end
);
if
(
LOG_BUF_SIZE
(
pLogBu
f
)
-
end
<
msgLen
)
{
memcpy
(
LOG_BUF_BUFFER
(
pLogBuf
)
+
end
,
msg
,
LOG_BUF_SIZE
(
pLogBu
f
)
-
end
);
memcpy
(
LOG_BUF_BUFFER
(
pLogBuf
),
msg
+
LOG_BUF_SIZE
(
pLogBuf
)
-
end
,
msgLen
-
LOG_BUF_SIZE
(
pLogBu
f
)
+
end
);
}
else
{
memcpy
(
LOG_BUF_BUFFER
(
tLogBuf
f
)
+
end
,
msg
,
msgLen
);
memcpy
(
LOG_BUF_BUFFER
(
pLogBu
f
)
+
end
,
msg
,
msgLen
);
}
}
LOG_BUF_END
(
tLogBuff
)
=
(
LOG_BUF_END
(
tLogBuff
)
+
msgLen
)
%
LOG_BUF_SIZE
(
tLogBuf
f
);
LOG_BUF_END
(
pLogBuf
)
=
(
LOG_BUF_END
(
pLogBuf
)
+
msgLen
)
%
LOG_BUF_SIZE
(
pLogBu
f
);
}
static
int32_t
taosPushLogBuffer
(
SLogBuff
*
tLogBuf
f
,
const
char
*
msg
,
int32_t
msgLen
)
{
static
int32_t
taosPushLogBuffer
(
SLogBuff
*
pLogBu
f
,
const
char
*
msg
,
int32_t
msgLen
)
{
int32_t
start
=
0
;
int32_t
end
=
0
;
int32_t
remainSize
=
0
;
...
...
@@ -552,13 +559,13 @@ static int32_t taosPushLogBuffer(SLogBuff *tLogBuff, const char *msg, int32_t ms
char
tmpBuf
[
40
]
=
{
0
};
int32_t
tmpBufLen
=
0
;
if
(
tLogBuff
==
NULL
||
tLogBuf
f
->
stop
)
return
-
1
;
if
(
pLogBuf
==
NULL
||
pLogBu
f
->
stop
)
return
-
1
;
taosThreadMutexLock
(
&
LOG_BUF_MUTEX
(
tLogBuf
f
));
start
=
LOG_BUF_START
(
tLogBuf
f
);
end
=
LOG_BUF_END
(
tLogBuf
f
);
taosThreadMutexLock
(
&
LOG_BUF_MUTEX
(
pLogBu
f
));
start
=
LOG_BUF_START
(
pLogBu
f
);
end
=
LOG_BUF_END
(
pLogBu
f
);
remainSize
=
(
start
>
end
)
?
(
start
-
end
-
1
)
:
(
start
+
LOG_BUF_SIZE
(
tLogBuf
f
)
-
end
-
1
);
remainSize
=
(
start
>
end
)
?
(
start
-
end
-
1
)
:
(
start
+
LOG_BUF_SIZE
(
pLogBu
f
)
-
end
-
1
);
if
(
lostLine
>
0
)
{
sprintf
(
tmpBuf
,
"...Lost %"
PRId64
" lines here...
\n
"
,
lostLine
);
...
...
@@ -568,47 +575,47 @@ static int32_t taosPushLogBuffer(SLogBuff *tLogBuff, const char *msg, int32_t ms
if
(
remainSize
<=
msgLen
||
((
lostLine
>
0
)
&&
(
remainSize
<=
(
msgLen
+
tmpBufLen
))))
{
lostLine
++
;
tsAsyncLogLostLines
++
;
taosThreadMutexUnlock
(
&
LOG_BUF_MUTEX
(
tLogBuf
f
));
taosThreadMutexUnlock
(
&
LOG_BUF_MUTEX
(
pLogBu
f
));
return
-
1
;
}
if
(
lostLine
>
0
)
{
taosCopyLogBuffer
(
tLogBuf
f
,
start
,
end
,
tmpBuf
,
tmpBufLen
);
taosCopyLogBuffer
(
pLogBu
f
,
start
,
end
,
tmpBuf
,
tmpBufLen
);
lostLine
=
0
;
}
taosCopyLogBuffer
(
tLogBuff
,
LOG_BUF_START
(
tLogBuff
),
LOG_BUF_END
(
tLogBuf
f
),
msg
,
msgLen
);
taosCopyLogBuffer
(
pLogBuf
,
LOG_BUF_START
(
pLogBuf
),
LOG_BUF_END
(
pLogBu
f
),
msg
,
msgLen
);
// int32_t w = atomic_sub_fetch_32(&waitLock, 1);
/*
if (w <= 0 || ((remainSize - msgLen - tmpBufLen) < (LOG_BUF_SIZE(
tLogBuf
f) * 4 /5))) {
tsem_post(&(
tLogBuf
f->buffNotEmpty));
if (w <= 0 || ((remainSize - msgLen - tmpBufLen) < (LOG_BUF_SIZE(
pLogBu
f) * 4 /5))) {
tsem_post(&(
pLogBu
f->buffNotEmpty));
dbgPostN++;
} else {
dbgNoPostN++;
}
*/
taosThreadMutexUnlock
(
&
LOG_BUF_MUTEX
(
tLogBuf
f
));
taosThreadMutexUnlock
(
&
LOG_BUF_MUTEX
(
pLogBu
f
));
return
0
;
}
static
int32_t
taosGetLogRemainSize
(
SLogBuff
*
tLogBuf
f
,
int32_t
start
,
int32_t
end
)
{
static
int32_t
taosGetLogRemainSize
(
SLogBuff
*
pLogBu
f
,
int32_t
start
,
int32_t
end
)
{
int32_t
rSize
=
end
-
start
;
return
rSize
>=
0
?
rSize
:
LOG_BUF_SIZE
(
tLogBuf
f
)
+
rSize
;
return
rSize
>=
0
?
rSize
:
LOG_BUF_SIZE
(
pLogBu
f
)
+
rSize
;
}
static
void
taosWriteLog
(
SLogBuff
*
tLogBuf
f
)
{
static
void
taosWriteLog
(
SLogBuff
*
pLogBu
f
)
{
static
int32_t
lastDuration
=
0
;
int32_t
remainChecked
=
0
;
int32_t
start
,
end
,
pollSize
;
do
{
if
(
remainChecked
==
0
)
{
start
=
LOG_BUF_START
(
tLogBuf
f
);
end
=
LOG_BUF_END
(
tLogBuf
f
);
start
=
LOG_BUF_START
(
pLogBu
f
);
end
=
LOG_BUF_END
(
pLogBu
f
);
if
(
start
==
end
)
{
dbgEmptyW
++
;
...
...
@@ -616,8 +623,8 @@ static void taosWriteLog(SLogBuff *tLogBuff) {
return
;
}
pollSize
=
taosGetLogRemainSize
(
tLogBuf
f
,
start
,
end
);
if
(
pollSize
<
tLogBuf
f
->
minBuffSize
)
{
pollSize
=
taosGetLogRemainSize
(
pLogBu
f
,
start
,
end
);
if
(
pollSize
<
pLogBu
f
->
minBuffSize
)
{
lastDuration
+=
tsWriteInterval
;
if
(
lastDuration
<
LOG_MAX_WAIT_MSEC
)
{
break
;
...
...
@@ -628,38 +635,38 @@ static void taosWriteLog(SLogBuff *tLogBuff) {
}
if
(
start
<
end
)
{
taosWriteFile
(
tLogBuff
->
pFile
,
LOG_BUF_BUFFER
(
tLogBuf
f
)
+
start
,
pollSize
);
taosWriteFile
(
pLogBuf
->
pFile
,
LOG_BUF_BUFFER
(
pLogBu
f
)
+
start
,
pollSize
);
}
else
{
int32_t
tsize
=
LOG_BUF_SIZE
(
tLogBuf
f
)
-
start
;
taosWriteFile
(
tLogBuff
->
pFile
,
LOG_BUF_BUFFER
(
tLogBuf
f
)
+
start
,
tsize
);
int32_t
tsize
=
LOG_BUF_SIZE
(
pLogBu
f
)
-
start
;
taosWriteFile
(
pLogBuf
->
pFile
,
LOG_BUF_BUFFER
(
pLogBu
f
)
+
start
,
tsize
);
taosWriteFile
(
tLogBuff
->
pFile
,
LOG_BUF_BUFFER
(
tLogBuf
f
),
end
);
taosWriteFile
(
pLogBuf
->
pFile
,
LOG_BUF_BUFFER
(
pLogBu
f
),
end
);
}
dbgWN
++
;
dbgWSize
+=
pollSize
;
if
(
pollSize
<
tLogBuf
f
->
minBuffSize
)
{
if
(
pollSize
<
pLogBu
f
->
minBuffSize
)
{
dbgSmallWN
++
;
if
(
tsWriteInterval
<
LOG_MAX_INTERVAL
)
{
tsWriteInterval
+=
LOG_INTERVAL_STEP
;
}
}
else
if
(
pollSize
>
LOG_BUF_SIZE
(
tLogBuf
f
)
/
3
)
{
}
else
if
(
pollSize
>
LOG_BUF_SIZE
(
pLogBu
f
)
/
3
)
{
dbgBigWN
++
;
tsWriteInterval
=
LOG_MIN_INTERVAL
;
}
else
if
(
pollSize
>
LOG_BUF_SIZE
(
tLogBuf
f
)
/
4
)
{
}
else
if
(
pollSize
>
LOG_BUF_SIZE
(
pLogBu
f
)
/
4
)
{
if
(
tsWriteInterval
>
LOG_MIN_INTERVAL
)
{
tsWriteInterval
-=
LOG_INTERVAL_STEP
;
}
}
LOG_BUF_START
(
tLogBuff
)
=
(
LOG_BUF_START
(
tLogBuff
)
+
pollSize
)
%
LOG_BUF_SIZE
(
tLogBuf
f
);
LOG_BUF_START
(
pLogBuf
)
=
(
LOG_BUF_START
(
pLogBuf
)
+
pollSize
)
%
LOG_BUF_SIZE
(
pLogBu
f
);
start
=
LOG_BUF_START
(
tLogBuf
f
);
end
=
LOG_BUF_END
(
tLogBuf
f
);
start
=
LOG_BUF_START
(
pLogBu
f
);
end
=
LOG_BUF_END
(
pLogBu
f
);
pollSize
=
taosGetLogRemainSize
(
tLogBuf
f
,
start
,
end
);
if
(
pollSize
<
tLogBuf
f
->
minBuffSize
)
{
pollSize
=
taosGetLogRemainSize
(
pLogBu
f
,
start
,
end
);
if
(
pollSize
<
pLogBu
f
->
minBuffSize
)
{
break
;
}
...
...
@@ -670,16 +677,16 @@ static void taosWriteLog(SLogBuff *tLogBuff) {
}
static
void
*
taosAsyncOutputLog
(
void
*
param
)
{
SLogBuff
*
tLogBuf
f
=
(
SLogBuff
*
)
param
;
SLogBuff
*
pLogBu
f
=
(
SLogBuff
*
)
param
;
setThreadName
(
"log"
);
while
(
1
)
{
taosMsleep
(
tsWriteInterval
);
// Polling the buffer
taosWriteLog
(
tLogBuf
f
);
taosWriteLog
(
pLogBu
f
);
if
(
tLogBuf
f
->
stop
)
break
;
if
(
pLogBu
f
->
stop
)
break
;
}
return
NULL
;
...
...
tests/script/tsim/parser/fourArithmetic-basic.sim
浏览文件 @
ea8832ba
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/query/charScalarFunction.sim
浏览文件 @
ea8832ba
...
...
@@ -2,7 +2,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/query/scalarFunction.sim
浏览文件 @
ea8832ba
...
...
@@ -2,7 +2,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/query/session.sim
浏览文件 @
ea8832ba
...
...
@@ -2,7 +2,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/basic1.sim
浏览文件 @
ea8832ba
...
...
@@ -11,7 +11,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrCtb.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/main2Con1Cgrp1TopicFrStb.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrCtb.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/main2Con1Cgrp2TopicFrStb.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/mainConsumerInMultiTopic.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/mainConsumerInOneTopic.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/multiTopic.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/oneTopic.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/script/tsim/tmq/overlapTopic2Con1Cgrp.sim
浏览文件 @
ea8832ba
...
...
@@ -14,7 +14,6 @@
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
...
...
tests/test/c/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -3,21 +3,21 @@ add_executable(tmq_demo tmqDemo.c)
add_executable
(
tmq_sim tmqSim.c
)
target_link_libraries
(
create_table
PUBLIC taos
PUBLIC taos
_static
PUBLIC util
PUBLIC common
PUBLIC os
)
target_link_libraries
(
tmq_demo
PUBLIC taos
PUBLIC taos
_static
PUBLIC util
PUBLIC common
PUBLIC os
)
target_link_libraries
(
tmq_sim
PUBLIC taos
PUBLIC taos
_static
PUBLIC util
PUBLIC common
PUBLIC os
...
...
tests/tsim/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -2,7 +2,7 @@ aux_source_directory(src TSIM_SRC)
add_executable
(
tsim
${
TSIM_SRC
}
)
target_link_libraries
(
tsim
PUBLIC taos
PUBLIC taos
_static
PUBLIC util
PUBLIC common
PUBLIC os
...
...
tests/tsim/inc/simInt.h
浏览文件 @
ea8832ba
...
...
@@ -33,7 +33,7 @@
#define MAX_BACKGROUND_SCRIPT_NUM 10
#define MAX_FILE_NAME_LEN 256
#define MAX_ERROR_LEN 1024
#define MAX_QUERY_VALUE_LEN 40
#define MAX_QUERY_VALUE_LEN
102
40
#define MAX_QUERY_COL_NUM 20
#define MAX_QUERY_ROW_NUM 20
#define MAX_SYSTEM_RESULT_LEN 2048
...
...
tests/tsim/src/simExe.c
浏览文件 @
ea8832ba
...
...
@@ -18,7 +18,7 @@
void
simLogSql
(
char
*
sql
,
bool
useSharp
)
{
static
TdFilePtr
pFile
=
NULL
;
char
filename
[
256
];
char
filename
[
256
];
sprintf
(
filename
,
"%s/sim.sql"
,
simScriptDir
);
if
(
pFile
==
NULL
)
{
// fp = fopen(filename, "w");
...
...
@@ -305,7 +305,8 @@ bool simExecuteRunBackCmd(SScript *script, char *option) {
return
true
;
}
void
simReplaceStr
(
char
*
buf
,
char
*
src
,
char
*
dst
)
{
bool
simReplaceStr
(
char
*
buf
,
char
*
src
,
char
*
dst
)
{
bool
replaced
=
false
;
char
*
begin
=
strstr
(
buf
,
src
);
if
(
begin
!=
NULL
)
{
int32_t
srcLen
=
(
int32_t
)
strlen
(
src
);
...
...
@@ -320,13 +321,16 @@ void simReplaceStr(char *buf, char *src, char *dst) {
}
memcpy
(
begin
,
dst
,
dstLen
);
replaced
=
true
;
}
simInfo
(
"system cmd is %s"
,
buf
);
return
replaced
;
}
bool
simExecuteSystemCmd
(
SScript
*
script
,
char
*
option
)
{
char
buf
[
4096
]
=
{
0
};
bool
replaced
=
false
;
#ifndef WINDOWS
sprintf
(
buf
,
"cd %s; "
,
simScriptDir
);
...
...
@@ -341,7 +345,7 @@ bool simExecuteSystemCmd(SScript *script, char *option) {
}
if
(
useValgrind
)
{
simReplaceStr
(
buf
,
"exec.sh"
,
"exec.sh -v"
);
replaced
=
simReplaceStr
(
buf
,
"exec.sh"
,
"exec.sh -v"
);
}
simLogSql
(
buf
,
true
);
...
...
@@ -359,6 +363,11 @@ bool simExecuteSystemCmd(SScript *script, char *option) {
sprintf
(
script
->
system_exit_code
,
"%d"
,
code
);
script
->
linePos
++
;
if
(
replaced
&&
strstr
(
buf
,
"start"
)
!=
NULL
)
{
simInfo
(
"====> startup is slow in valgrind mode, so sleep 5 seconds after exec.sh -s start"
);
taosMsleep
(
5000
);
}
return
true
;
}
...
...
@@ -774,7 +783,7 @@ bool simExecuteSqlSlowCmd(SScript *script, char *rest) {
bool
simExecuteRestfulCmd
(
SScript
*
script
,
char
*
rest
)
{
TdFilePtr
pFile
=
NULL
;
char
filename
[
256
];
char
filename
[
256
];
sprintf
(
filename
,
"%s/tmp.sql"
,
simScriptDir
);
// fp = fopen(filename, "w");
pFile
=
taosOpenFile
(
filename
,
TD_FILE_CREATE
|
TD_FILE_WRITE
|
TD_FILE_TRUNC
|
TD_FILE_STREAM
);
...
...
tools/shell/CMakeLists.txt
浏览文件 @
ea8832ba
...
...
@@ -3,7 +3,7 @@ aux_source_directory(src SHELL_SRC)
add_executable
(
shell
${
SHELL_SRC
}
)
target_link_libraries
(
shell
PUBLIC taos
PUBLIC taos
_static
PRIVATE os common transport util
)
target_include_directories
(
...
...
tools/shell/src/shellMain.c
浏览文件 @
ea8832ba
...
...
@@ -45,7 +45,7 @@ static tsem_t cancelSem;
static
struct
argp_option
options
[]
=
{
{
"host"
,
'h'
,
"HOST"
,
0
,
"TDengine server FQDN to connect. The default host is localhost."
},
{
"password"
,
'p'
,
0
,
0
,
"The password to use when connecting to the server."
},
{
"password"
,
'p'
,
0
,
0
,
"The password to use when connecting to the server."
},
{
"port"
,
'P'
,
"PORT"
,
0
,
"The TCP/IP port number to use for the connection."
},
{
"user"
,
'u'
,
"USER"
,
0
,
"The user name to use when connecting to the server."
},
{
"auth"
,
'A'
,
"Auth"
,
0
,
"The auth string to use when connecting to the server."
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录