Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ea8832ba
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
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
...
...
@@ -4,7 +4,7 @@
# is required to use systemd to manage services at boot
set
-e
#
set -x
#set -x
# -----------------------Variables definition
source_dir
=
$1
...
...
@@ -13,40 +13,52 @@ osType=$3
verNumber
=
$4
if
[
"
$osType
"
!=
"Darwin"
]
;
then
script_dir
=
$(
dirname
$(
readlink
-f
"
$0
"
))
script_dir
=
$(
dirname
$(
readlink
-f
"
$0
"
))
else
script_dir
=
${
source_dir
}
/packaging/tools
script_dir
=
${
source_dir
}
/packaging/tools
fi
# Dynamic directory
clientName
=
"taos"
serverName
=
"taosd"
logDir
=
"/var/log/taos"
dataDir
=
"/var/lib/taos"
configDir
=
"/etc/taos"
configFile
=
"taos.cfg"
installDir
=
"/usr/local/taos"
productName
=
"TDengine"
emailName
=
"taosdata.com"
uninstallScript
=
"rmtaos"
if
[
"
$osType
"
!=
"Darwin"
]
;
then
data_dir
=
"/var/lib/taos"
log_dir
=
"/var/log/taos"
data_dir
=
${
dataDir
}
log_dir
=
${
logDir
}
cfg_install_dir
=
"/etc/taos"
cfg_install_dir
=
${
configDir
}
bin_link_dir
=
"/usr/bin"
lib_link_dir
=
"/usr/lib"
lib64_link_dir
=
"/usr/lib64"
inc_link_dir
=
"/usr/include"
bin_link_dir
=
"/usr/bin"
lib_link_dir
=
"/usr/lib"
lib64_link_dir
=
"/usr/lib64"
inc_link_dir
=
"/usr/include"
install_main_dir
=
"/usr/local/taos"
install_main_dir
=
${
installDir
}
bin_dir
=
"/usr/local/taos
/bin"
bin_dir
=
"
${
installDir
}
/bin"
else
data_dir
=
"/usr/local/var/lib/taos
"
log_dir
=
"/usr/local/var/log/taos
"
data_dir
=
"/usr/local
${
dataDir
}
"
log_dir
=
"/usr/local
${
logDir
}
"
cfg_install_dir
=
"/usr/local/etc/taos
"
cfg_install_dir
=
"/usr/local
${
configDir
}
"
bin_link_dir
=
"/usr/local/bin"
lib_link_dir
=
"/usr/local/lib"
inc_link_dir
=
"/usr/local/include"
bin_link_dir
=
"/usr/local/bin"
lib_link_dir
=
"/usr/local/lib"
inc_link_dir
=
"/usr/local/include"
install_main_dir
=
"/usr/local/Cellar/tdengine/
${
verNumber
}
"
install_main_dir
=
"/usr/local/Cellar/tdengine/
${
verNumber
}
"
install_main_2_dir
=
"/usr/local/Cellar/tdengine@
${
verNumber
}
/
${
verNumber
}
"
bin_dir
=
"/usr/local/Cellar/tdengine/
${
verNumber
}
/bin"
bin_dir
=
"/usr/local/Cellar/tdengine/
${
verNumber
}
/bin"
bin_2_dir
=
"/usr/local/Cellar/tdengine@
${
verNumber
}
/
${
verNumber
}
/bin"
fi
service_config_dir
=
"/etc/systemd/system"
...
...
@@ -60,479 +72,586 @@ NC='\033[0m'
csudo
=
""
if
[
"
$osType
"
!=
"Darwin"
]
;
then
if
command
-v
sudo
>
/dev/null
;
then
csudo
=
"sudo"
fi
initd_mod
=
0
service_mod
=
2
if
pidof systemd &> /dev/null
;
then
service_mod
=
0
elif
$(
which service &> /dev/null
)
;
then
service_mod
=
1
service_config_dir
=
"/etc/init.d"
if
$(
which chkconfig &> /dev/null
)
;
then
initd_mod
=
1
elif
$(
which insserv &> /dev/null
)
;
then
initd_mod
=
2
elif
$(
which update-rc.d &> /dev/null
)
;
then
initd_mod
=
3
else
service_mod
=
2
fi
else
service_mod
=
2
fi
service_mod
=
2
os_type
=
0
# get the operating system type for using the corresponding init file
# ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
#osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
osinfo
=
$(
cat
/etc/os-release |
grep
"NAME"
|
cut
-d
'"'
-f2
)
#echo "osinfo: ${osinfo}"
os_type
=
0
if
echo
$osinfo
|
grep
-qwi
"ubuntu"
;
then
echo
"this is ubuntu system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"debian"
;
then
echo
"this is debian system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"Kylin"
;
then
echo
"this is Kylin system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"centos"
;
then
echo
"this is centos system"
os_type
=
2
elif
echo
$osinfo
|
grep
-qwi
"fedora"
;
then
echo
"this is fedora system"
os_type
=
2
if
[
"
$osType
"
!=
"Darwin"
]
;
then
if
command
-v
sudo
>
/dev/null
;
then
csudo
=
"sudo "
fi
initd_mod
=
0
if
pidof systemd &>/dev/null
;
then
service_mod
=
0
elif
$(
which service &>/dev/null
)
;
then
service_mod
=
1
service_config_dir
=
"/etc/init.d"
if
$(
which chkconfig &>/dev/null
)
;
then
initd_mod
=
1
elif
$(
which insserv &>/dev/null
)
;
then
initd_mod
=
2
elif
$(
which update-rc.d &>/dev/null
)
;
then
initd_mod
=
3
else
echo
"
${
osinfo
}
: This is an officially unverified linux system, If there are any problems with the installation and operation, "
echo
"please feel free to contact taosdata.com for support."
os_type
=
1
service_mod
=
2
fi
else
service_mod
=
2
fi
# get the operating system type for using the corresponding init file
# ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
#osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
osinfo
=
$(
cat
/etc/os-release |
grep
"NAME"
|
cut
-d
'"'
-f2
)
#echo "osinfo: ${osinfo}"
if
echo
$osinfo
|
grep
-qwi
"ubuntu"
;
then
echo
"this is ubuntu system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"debian"
;
then
echo
"this is debian system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"Kylin"
;
then
echo
"this is Kylin system"
os_type
=
1
elif
echo
$osinfo
|
grep
-qwi
"centos"
;
then
echo
"this is centos system"
os_type
=
2
elif
echo
$osinfo
|
grep
-qwi
"fedora"
;
then
echo
"this is fedora system"
os_type
=
2
else
echo
"
${
osinfo
}
: This is an officially unverified linux system, If there are any problems with the installation and operation, "
echo
"please feel free to contact
${
emailName
}
for support."
os_type
=
1
fi
fi
function
kill_taosadapter
()
{
pid
=
$(
ps
-ef
|
grep
"taosadapter"
|
grep
-v
"grep"
|
awk
'{print $2}'
)
if
[
-n
"
$pid
"
]
;
then
${
csudo
}
kill
-9
$pid
||
:
fi
}
function
kill_taosd
()
{
pid
=
$(
ps
-ef
|
grep
"taosd"
|
grep
-v
"grep"
|
awk
'{print $2}'
)
if
[
-n
"
$pid
"
]
;
then
${
csudo
}
kill
-9
$pid
||
:
fi
ps
-ef
|
grep
${
serverName
}
pid
=
$(
ps
-ef
|
grep
-w
${
serverName
}
|
grep
-v
"grep"
|
awk
'{print $2}'
)
if
[
-n
"
$pid
"
]
;
then
${
csudo
}
kill
-9
$pid
||
:
fi
}
function
install_main_path
()
{
#create install main dir and all sub dir
${
csudo
}
rm
-rf
${
install_main_dir
}
||
:
${
csudo
}
mkdir
-p
${
install_main_dir
}
${
csudo
}
mkdir
-p
${
install_main_dir
}
/cfg
${
csudo
}
mkdir
-p
${
install_main_dir
}
/bin
${
csudo
}
mkdir
-p
${
install_main_dir
}
/connector
${
csudo
}
mkdir
-p
${
install_main_dir
}
/driver
${
csudo
}
mkdir
-p
${
install_main_dir
}
/examples
${
csudo
}
mkdir
-p
${
install_main_dir
}
/include
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
mkdir
-p
${
install_main_dir
}
/init.d
fi
#create install main dir and all sub dir
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-rf
${
install_main_dir
}
||
:
${
csudo
}
mkdir
-p
${
install_main_dir
}
${
csudo
}
mkdir
-p
${
install_main_dir
}
/cfg
${
csudo
}
mkdir
-p
${
install_main_dir
}
/bin
# ${csudo}mkdir -p ${install_main_dir}/connector
${
csudo
}
mkdir
-p
${
install_main_dir
}
/driver
${
csudo
}
mkdir
-p
${
install_main_dir
}
/examples
${
csudo
}
mkdir
-p
${
install_main_dir
}
/include
# ${csudo}mkdir -p ${install_main_dir}/init.d
else
${
csudo
}
rm
-rf
${
install_main_dir
}
||
${
csudo
}
rm
-rf
${
install_main_2_dir
}
||
:
${
csudo
}
mkdir
-p
${
install_main_dir
}
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
${
csudo
}
mkdir
-p
${
install_main_dir
}
/cfg
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
/cfg
${
csudo
}
mkdir
-p
${
install_main_dir
}
/bin
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
/bin
# ${csudo}mkdir -p ${install_main_dir}/connector || ${csudo}mkdir -p ${install_main_2_dir}/connector
${
csudo
}
mkdir
-p
${
install_main_dir
}
/driver
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
/driver
${
csudo
}
mkdir
-p
${
install_main_dir
}
/examples
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
/examples
${
csudo
}
mkdir
-p
${
install_main_dir
}
/include
||
${
csudo
}
mkdir
-p
${
install_main_2_dir
}
/include
fi
}
function
install_bin
()
{
# Remove links
${
csudo
}
rm
-f
${
bin_link_dir
}
/taos
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosd
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosdemo
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosdump
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
bin_link_dir
}
/perfMonitor
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/set_core
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/rmtaos
||
:
fi
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/
*
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/taosd-dump-cfg.gdb
${
install_main_dir
}
/bin
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
cp
-r
${
script_dir
}
/remove.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/set_core.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/startPre.sh
${
install_main_dir
}
/bin
||
:
else
${
csudo
}
cp
-r
${
script_dir
}
/remove_client.sh
${
install_main_dir
}
/bin
||
:
fi
${
csudo
}
chmod
0555
${
install_main_dir
}
/bin/
*
||
:
# Remove links
${
csudo
}
rm
-f
${
bin_link_dir
}
/
${
clientName
}
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/
${
serverName
}
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosadapter
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosdemo
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/taosdump
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
bin_link_dir
}
/perfMonitor
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/set_core
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/run_taosd_and_taosadapter.sh
||
:
${
csudo
}
rm
-f
${
bin_link_dir
}
/
${
uninstallScript
}
||
:
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/
${
clientName
}
${
install_main_dir
}
/bin
||
:
[
-f
${
binary_dir
}
/build/bin/taosBenchmark
]
&&
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/taosBenchmark
${
install_main_dir
}
/bin
||
:
[
-f
${
install_main_dir
}
/bin/taosBenchmark
]
&&
${
csudo
}
ln
-sf
${
install_main_dir
}
/bin/taosBenchmark
${
install_main_dir
}
/bin/taosdemo
||
:
[
-f
${
binary_dir
}
/build/bin/taosdump
]
&&
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/taosdump
${
install_main_dir
}
/bin
||
:
[
-f
${
binary_dir
}
/build/bin/taosadapter
]
&&
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/taosadapter
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/
${
serverName
}
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/tarbitrator
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/taosd-dump-cfg.gdb
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/remove.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/set_core.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/run_taosd_and_taosadapter.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/startPre.sh
${
install_main_dir
}
/bin
||
:
${
csudo
}
chmod
0555
${
install_main_dir
}
/bin/
*
#Make link
[
-x
${
install_main_dir
}
/bin/taos
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taos
${
bin_link_dir
}
/taos
||
:
[
-x
${
install_main_dir
}
/bin/taosd
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosd
${
bin_link_dir
}
/taosd
||
:
[
-x
${
install_main_dir
}
/bin/taosdump
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdump
${
bin_link_dir
}
/taosdump
||
:
[
-x
${
install_main_dir
}
/bin/taosdemo
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdemo
${
bin_link_dir
}
/taosdemo
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
[
-x
${
install_main_dir
}
/bin/perfMonitor
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/perfMonitor
${
bin_link_dir
}
/perfMonitor
||
:
[
-x
${
install_main_dir
}
/set_core.sh
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/set_core.sh
${
bin_link_dir
}
/set_core
||
:
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
[
-x
${
install_main_dir
}
/bin/remove.sh
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/remove.sh
${
bin_link_dir
}
/rmtaos
||
:
fi
[
-x
${
install_main_dir
}
/bin/
${
clientName
}
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/
${
clientName
}
${
bin_link_dir
}
/
${
clientName
}
||
:
[
-x
${
install_main_dir
}
/bin/
${
serverName
}
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/
${
serverName
}
${
bin_link_dir
}
/
${
serverName
}
||
:
[
-x
${
install_main_dir
}
/bin/taosadapter
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosadapter
${
bin_link_dir
}
/taosadapter
||
:
[
-x
${
install_main_dir
}
/bin/taosdump
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdump
${
bin_link_dir
}
/taosdump
||
:
[
-x
${
install_main_dir
}
/bin/taosdemo
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdemo
${
bin_link_dir
}
/taosdemo
||
:
[
-x
${
install_main_dir
}
/bin/perfMonitor
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/perfMonitor
${
bin_link_dir
}
/perfMonitor
||
:
[
-x
${
install_main_dir
}
/set_core.sh
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/set_core.sh
${
bin_link_dir
}
/set_core
||
:
[
-x
${
install_main_dir
}
/run_taosd_and_taosadapter.sh
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/run_taosd_and_taosadapter.sh
${
bin_link_dir
}
/run_taosd_and_taosadapter.sh
||
:
[
-x
${
install_main_dir
}
/bin/remove.sh
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/remove.sh
${
bin_link_dir
}
/
${
uninstallScript
}
||
:
else
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/
*
${
install_main_dir
}
/bin
||
${
csudo
}
cp
-r
${
binary_dir
}
/build/bin/
*
${
install_main_2_dir
}
/bin
||
:
${
csudo
}
cp
-r
${
script_dir
}
/taosd-dump-cfg.gdb
${
install_main_dir
}
/bin
||
${
csudo
}
cp
-r
${
script_dir
}
/taosd-dump-cfg.gdb
${
install_main_2_dir
}
||
:
${
csudo
}
cp
-r
${
script_dir
}
/remove_client.sh
${
install_main_dir
}
/bin
||
${
csudo
}
cp
-r
${
script_dir
}
/remove_client.sh
${
install_main_2_dir
}
/bin
||
:
${
csudo
}
chmod
0555
${
install_main_dir
}
/bin/
*
||
${
csudo
}
chmod
0555
${
install_main_2_dir
}
/bin/
*
#Make link
[
-x
${
install_main_dir
}
/bin/
${
clientName
}
]
||
[
-x
${
install_main_2_dir
}
/bin/
${
clientName
}
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/
${
clientName
}
${
bin_link_dir
}
/
${
clientName
}
||
${
csudo
}
ln
-s
${
install_main_2_dir
}
/bin/
${
clientName
}
||
:
[
-x
${
install_main_dir
}
/bin/
${
serverName
}
]
||
[
-x
${
install_main_2_dir
}
/bin/
${
serverName
}
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/
${
serverName
}
${
bin_link_dir
}
/
${
serverName
}
||
${
csudo
}
ln
-s
${
install_main_2_dir
}
/bin/
${
serverName
}
||
:
[
-x
${
install_main_dir
}
/bin/taosadapter
]
||
[
-x
${
install_main_2_dir
}
/bin/taosadapter
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosadapter
${
bin_link_dir
}
/taosadapter
||
${
csudo
}
ln
-s
${
install_main_2_dir
}
/bin/taosadapter
||
:
[
-x
${
install_main_dir
}
/bin/taosdump
]
||
[
-x
${
install_main_2_dir
}
/bin/taosdump
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdump
${
bin_link_dir
}
/taosdump
||
ln
-s
${
install_main_2_dir
}
/bin/taosdump
${
bin_link_dir
}
/taosdump
||
:
[
-x
${
install_main_dir
}
/bin/taosdemo
]
||
[
-x
${
install_main_2_dir
}
/bin/taosdemo
]
&&
${
csudo
}
ln
-s
${
install_main_dir
}
/bin/taosdemo
${
bin_link_dir
}
/taosdemo
||
ln
-s
${
install_main_2_dir
}
/bin/taosdemo
${
bin_link_dir
}
/taosdemo
||
:
fi
}
function
install_jemalloc
()
{
if
[
"
$osType
"
!=
"Darwin"
]
;
then
/usr/bin/install
-c
-d
/usr/local/bin
if
[
-f
${
binary_dir
}
/build/bin/jemalloc-config
]
;
then
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jemalloc-config /usr/local/bin
fi
if
[
-f
${
binary_dir
}
/build/bin/jemalloc.sh
]
;
then
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jemalloc.sh /usr/local/bin
fi
if
[
-f
${
binary_dir
}
/build/bin/jeprof
]
;
then
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jeprof /usr/local/bin
fi
if
[
-f
${
binary_dir
}
/build/include/jemalloc/jemalloc.h
]
;
then
/usr/bin/install
-c
-d
/usr/local/include/jemalloc
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
fi
if
[
-f
${
binary_dir
}
/build/lib/libjemalloc.so.2
]
;
then
/usr/bin/install
-c
-d
/usr/local/lib
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc.so.2 /usr/local/lib
ln
-sf
libjemalloc.so.2 /usr/local/lib/libjemalloc.so
/usr/bin/install
-c
-d
/usr/local/lib
if
[
-f
${
binary_dir
}
/build/lib/libjemalloc.a
]
;
then
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc.a /usr/local/lib
fi
if
[
-f
${
binary_dir
}
/build/lib/libjemalloc_pic.a
]
;
then
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc_pic.a /usr/local/lib
fi
if
[
-f
${
binary_dir
}
/build/lib/pkgconfig/jemalloc.pc
]
;
then
/usr/bin/install
-c
-d
/usr/local/lib/pkgconfig
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
fi
fi
if
[
-f
${
binary_dir
}
/build/share/doc/jemalloc/jemalloc.html
]
;
then
/usr/bin/install
-c
-d
/usr/local/share/doc/jemalloc
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
fi
if
[
-f
${
binary_dir
}
/build/share/man/man3/jemalloc.3
]
;
then
/usr/bin/install
-c
-d
/usr/local/share/man/man3
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/share/man/man3/jemalloc.3 /usr/local/share/man/man3
fi
if
[
-d
/etc/ld.so.conf.d
]
;
then
echo
"/usr/local/lib"
|
${
csudo
}
tee
/etc/ld.so.conf.d/jemalloc.conf
${
csudo
}
ldconfig
else
echo
"/etc/ld.so.conf.d not found!"
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
/usr/bin/install
-c
-d
/usr/local/bin
if
[
-f
"
${
binary_dir
}
/build/bin/jemalloc-config"
]
;
then
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jemalloc-config /usr/local/bin
fi
if
[
-f
"
${
binary_dir
}
/build/bin/jemalloc.sh"
]
;
then
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jemalloc.sh /usr/local/bin
fi
if
[
-f
"
${
binary_dir
}
/build/bin/jeprof"
]
;
then
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/bin/jeprof /usr/local/bin
fi
if
[
-f
"
${
binary_dir
}
/build/include/jemalloc/jemalloc.h"
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/include/jemalloc
${
csudo
}
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/include/jemalloc/jemalloc.h
\
/usr/local/include/jemalloc
fi
if
[
-f
"
${
binary_dir
}
/build/lib/libjemalloc.so.2"
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/lib
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc.so.2 /usr/local/lib
${
csudo
}
ln
-sf
libjemalloc.so.2 /usr/local/lib/libjemalloc.so
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/lib
[
-f
${
binary_dir
}
/build/lib/libjemalloc.a
]
&&
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc.a /usr/local/lib
[
-f
${
binary_dir
}
/build/lib/libjemalloc_pic.a
]
&&
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/lib/libjemalloc_pic.a /usr/local/lib
if
[
-f
"
${
binary_dir
}
/build/lib/pkgconfig/jemalloc.pc"
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/lib/pkgconfig
${
csudo
}
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/lib/pkgconfig/jemalloc.pc
\
/usr/local/lib/pkgconfig
fi
if
[
-d
/etc/ld.so.conf.d
]
;
then
echo
"/usr/local/lib"
|
${
csudo
}
tee
/etc/ld.so.conf.d/jemalloc.conf
>
/dev/null
||
echo
-e
"failed to write /etc/ld.so.conf.d/jemalloc.conf"
${
csudo
}
ldconfig
else
echo
"/etc/ld.so.conf.d not found!"
fi
fi
}
function
install_lib
()
{
# Remove links
${
csudo
}
rm
-f
${
lib_link_dir
}
/libtaos.
*
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
lib64_link_dir
}
/libtaos.
*
||
:
if
[
-f
"
${
binary_dir
}
/build/share/doc/jemalloc/jemalloc.html"
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/share/doc/jemalloc
${
csudo
}
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/share/doc/jemalloc/jemalloc.html
\
/usr/local/share/doc/jemalloc
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
cp
${
binary_dir
}
/build/lib/libtaos.so
${
install_main_dir
}
/driver/libtaos.so.
${
verNumber
}
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/driver/
*
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
${
lib_link_dir
}
/libtaos.so.1
${
csudo
}
ln
-sf
${
lib_link_dir
}
/libtaos.so.1
${
lib_link_dir
}
/libtaos.so
if
[
-d
"
${
lib64_link_dir
}
"
]
;
then
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
${
lib64_link_dir
}
/libtaos.so.1
${
csudo
}
ln
-sf
${
lib64_link_dir
}
/libtaos.so.1
${
lib64_link_dir
}
/libtaos.so
fi
else
${
csudo
}
cp
-Rf
${
binary_dir
}
/build/lib/libtaos.
${
verNumber
}
.dylib
${
install_main_dir
}
/driver
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/driver/
*
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
${
lib_link_dir
}
/libtaos.1.dylib
${
csudo
}
ln
-sf
${
lib_link_dir
}
/libtaos.1.dylib
${
lib_link_dir
}
/libtaos.dylib
if
[
-f
"
${
binary_dir
}
/build/share/man/man3/jemalloc.3"
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/share/man/man3
${
csudo
}
/usr/bin/install
-c
-m
644
${
binary_dir
}
/build/share/man/man3/jemalloc.3
\
/usr/local/share/man/man3
fi
install_jemalloc
fi
}
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ldconfig
function
install_avro
()
{
if
[
"
$osType
"
!=
"Darwin"
]
;
then
if
[
-f
"
${
binary_dir
}
/build/
$1
/libavro.so.23.0.0"
]
&&
[
-d
/usr/local/
$1
]
;
then
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/
$1
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/
$1
/libavro.so.23.0.0 /usr/local/
$1
${
csudo
}
ln
-sf
libavro.so.23.0.0 /usr/local/
$1
/libavro.so.23
${
csudo
}
ln
-sf
libavro.so.23 /usr/local/
$1
/libavro.so
${
csudo
}
/usr/bin/install
-c
-d
/usr/local/
$1
[
-f
${
binary_dir
}
/build/
$1
/libavro.a
]
&&
${
csudo
}
/usr/bin/install
-c
-m
755
${
binary_dir
}
/build/
$1
/libavro.a /usr/local/
$1
if
[
-d
/etc/ld.so.conf.d
]
;
then
echo
"/usr/local/
$1
"
|
${
csudo
}
tee
/etc/ld.so.conf.d/libavro.conf
>
/dev/null
||
echo
-e
"failed to write /etc/ld.so.conf.d/libavro.conf"
${
csudo
}
ldconfig
else
echo
"/etc/ld.so.conf.d not found!"
fi
fi
fi
}
function
install_lib
()
{
# Remove links
${
csudo
}
rm
-f
${
lib_link_dir
}
/libtaos.
*
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
lib64_link_dir
}
/libtaos.
*
||
:
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
cp
${
binary_dir
}
/build/lib/libtaos.so.
${
verNumber
}
\
${
install_main_dir
}
/driver
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/driver/
*
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
${
lib_link_dir
}
/libtaos.so.1
${
csudo
}
ln
-sf
${
lib_link_dir
}
/libtaos.so.1
${
lib_link_dir
}
/libtaos.so
if
[
-d
"
${
lib64_link_dir
}
"
]
;
then
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
${
lib64_link_dir
}
/libtaos.so.1
${
csudo
}
ln
-sf
${
lib64_link_dir
}
/libtaos.so.1
${
lib64_link_dir
}
/libtaos.so
fi
else
${
csudo
}
cp
-Rf
${
binary_dir
}
/build/lib/libtaos.
${
verNumber
}
.dylib
\
${
install_main_dir
}
/driver
||
${
csudo
}
cp
-Rf
${
binary_dir
}
/build/lib/libtaos.
${
verNumber
}
.dylib
\
${
install_main_2_dir
}
/driver
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/driver/
*
||
${
csudo
}
chmod
777
${
install_main_2_dir
}
/driver/
*
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
*
\
${
install_main_dir
}
/driver/libtaos.1.dylib
||
${
csudo
}
ln
-sf
${
install_main_2_dir
}
/driver/libtaos.
*
\
${
install_main_2_dir
}
/driver/libtaos.1.dylib
||
:
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.1.dylib
\
${
install_main_dir
}
/driver/libtaos.dylib
||
${
csudo
}
ln
-sf
${
install_main_2_dir
}
/driver/libtaos.1.dylib
\
${
install_main_2_dir
}
/driver/libtaos.dylib
||
:
${
csudo
}
ln
-sf
${
install_main_dir
}
/driver/libtaos.
${
verNumber
}
.dylib
\
${
lib_link_dir
}
/libtaos.1.dylib
||
${
csudo
}
ln
-sf
${
install_main_2_dir
}
/driver/libtaos.
${
verNumber
}
.dylib
\
${
lib_link_dir
}
/libtaos.1.dylib
||
:
${
csudo
}
ln
-sf
${
lib_link_dir
}
/libtaos.1.dylib
${
lib_link_dir
}
/libtaos.dylib
||
:
fi
install_jemalloc
install_avro lib
install_avro lib64
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ldconfig
fi
}
function
install_header
()
{
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
inc_link_dir
}
/taos.h
${
inc_link_dir
}
/taoserror.h
||
:
fi
${
csudo
}
cp
-f
${
source_dir
}
/include/client/taos.h
${
source_dir
}
/include/util/taoserror.h
${
install_main_dir
}
/include
&&
${
csudo
}
chmod
644
${
install_main_dir
}
/include/
*
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ln
-s
${
install_main_dir
}
/include/taos.h
${
inc_link_dir
}
/taos.h
${
csudo
}
ln
-s
${
install_main_dir
}
/include/taoserror.h
${
inc_link_dir
}
/taoserror.h
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
rm
-f
${
inc_link_dir
}
/taos.h
${
inc_link_dir
}
/taosdef.h
${
inc_link_dir
}
/taoserror.h
||
:
${
csudo
}
cp
-f
${
source_dir
}
/include/client/taos.h
${
source_dir
}
/include/common/taosdef.h
${
source_dir
}
/include/util/taoserror.h
\
${
install_main_dir
}
/include
&&
${
csudo
}
chmod
644
${
install_main_dir
}
/include/
*
${
csudo
}
ln
-s
${
install_main_dir
}
/include/taos.h
${
inc_link_dir
}
/taos.h
${
csudo
}
ln
-s
${
install_main_dir
}
/include/taosdef.h
${
inc_link_dir
}
/taosdef.h
${
csudo
}
ln
-s
${
install_main_dir
}
/include/taoserror.h
${
inc_link_dir
}
/taoserror.h
else
${
csudo
}
cp
-f
${
source_dir
}
/include/client/taos.h
${
source_dir
}
/include/common/taosdef.h
${
source_dir
}
/include/util/taoserror.h
\
${
install_main_dir
}
/include
||
${
csudo
}
cp
-f
${
source_dir
}
/include/client/taos.h
${
source_dir
}
/include/common/taosdef.h
${
source_dir
}
/include/util/taoserror.h
\
${
install_main_2_dir
}
/include
&&
${
csudo
}
chmod
644
${
install_main_dir
}
/include/
*
||
${
csudo
}
chmod
644
${
install_main_2_dir
}
/include/
*
fi
}
function
install_config
()
{
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
if
[
!
-f
${
cfg_install_dir
}
/taos.cfg
]
;
then
${
csudo
}
mkdir
-p
${
cfg_install_dir
}
[
-f
${
script_dir
}
/../cfg/taos.cfg
]
&&
${
csudo
}
cp
${
script_dir
}
/../cfg/taos.cfg
${
cfg_install_dir
}
||
:
${
csudo
}
chmod
644
${
cfg_install_dir
}
/
*
fi
if
[
!
-f
${
cfg_install_dir
}
/
${
configFile
}
]
;
then
${
csudo
}
mkdir
-p
${
cfg_install_dir
}
[
-f
${
script_dir
}
/../cfg/
${
configFile
}
]
&&
${
csudo
}
cp
${
script_dir
}
/../cfg/
${
configFile
}
${
cfg_install_dir
}
||
:
${
csudo
}
chmod
644
${
cfg_install_dir
}
/
${
configFile
}
${
csudo
}
cp
-f
${
script_dir
}
/../cfg/
${
configFile
}
\
${
cfg_install_dir
}
/
${
configFile
}
.
${
verNumber
}
||
:
${
csudo
}
ln
-s
${
cfg_install_dir
}
/
${
configFile
}
\
${
install_main_dir
}
/cfg/
${
configFile
}
else
${
csudo
}
cp
-f
${
script_dir
}
/../cfg/
${
configFile
}
\
${
cfg_install_dir
}
/
${
configFile
}
.
${
verNumber
}
||
:
fi
}
${
csudo
}
cp
-f
${
script_dir
}
/../cfg/taos.cfg
${
install_main_dir
}
/cfg/taos.cfg.org
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ln
-s
${
cfg_install_dir
}
/taos.cfg
${
install_main_dir
}
/cfg
fi
function
install_taosadapter_config
()
{
if
[
!
-f
"
${
cfg_install_dir
}
/taosadapter.toml"
]
;
then
${
csudo
}
mkdir
-p
${
cfg_install_dir
}
||
:
[
-f
${
binary_dir
}
/test/cfg/taosadapter.toml
]
&&
${
csudo
}
cp
${
binary_dir
}
/test/cfg/taosadapter.toml
${
cfg_install_dir
}
||
:
[
-f
${
cfg_install_dir
}
/taosadapter.toml
]
&&
${
csudo
}
chmod
644
${
cfg_install_dir
}
/taosadapter.toml
||
:
[
-f
${
binary_dir
}
/test/cfg/taosadapter.toml
]
&&
${
csudo
}
cp
-f
${
binary_dir
}
/test/cfg/taosadapter.toml
\
${
cfg_install_dir
}
/taosadapter.toml.
${
verNumber
}
||
:
[
-f
${
cfg_install_dir
}
/taosadapter.toml
]
&&
${
csudo
}
ln
-s
${
cfg_install_dir
}
/taosadapter.toml
\
${
install_main_dir
}
/cfg/taosadapter.toml
||
:
else
if
[
-f
"
${
binary_dir
}
/test/cfg/taosadapter.toml"
]
;
then
${
csudo
}
cp
-f
${
binary_dir
}
/test/cfg/taosadapter.toml
\
${
cfg_install_dir
}
/taosadapter.toml.
${
verNumber
}
||
:
fi
fi
}
function
install_log
()
{
${
csudo
}
rm
-rf
${
log_dir
}
||
:
${
csudo
}
mkdir
-p
${
log_dir
}
&&
${
csudo
}
chmod
777
${
log_dir
}
${
csudo
}
ln
-s
${
log_dir
}
${
install_main_dir
}
/log
${
csudo
}
rm
-rf
${
log_dir
}
||
:
${
csudo
}
mkdir
-p
${
log_dir
}
&&
${
csudo
}
chmod
777
${
log_dir
}
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ln
-s
${
log_dir
}
${
install_main_dir
}
/log
else
${
csudo
}
ln
-s
${
log_dir
}
${
install_main_dir
}
/log
||
${
csudo
}
ln
-s
${
log_dir
}
${
install_main_2_dir
}
/log
fi
}
function
install_data
()
{
${
csudo
}
mkdir
-p
${
data_dir
}
${
csudo
}
ln
-s
${
data_dir
}
${
install_main_dir
}
/data
${
csudo
}
mkdir
-p
${
data_dir
}
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
ln
-s
${
data_dir
}
${
install_main_dir
}
/data
else
${
csudo
}
ln
-s
${
data_dir
}
${
install_main_dir
}
/data
||
${
csudo
}
ln
-s
${
data_dir
}
${
install_main_2_dir
}
/data
fi
}
function
install_connector
()
{
if
[
-d
"
${
source_dir
}
/src/connector/grafanaplugin/dist"
]
;
then
${
csudo
}
cp
-rf
${
source_dir
}
/src/connector/grafanaplugin/dist
${
install_main_dir
}
/connector/grafanaplugin
else
echo
"WARNING: grafanaplugin bundled dir not found, please check if want to use it!"
fi
if
find
${
source_dir
}
/src/connector/go
-mindepth
1
-maxdepth
1 |
read
;
then
${
csudo
}
cp
-r
${
source_dir
}
/src/connector/go
${
install_main_dir
}
/connector
else
echo
"WARNING: go connector not found, please check if want to use it!"
fi
${
csudo
}
cp
-rf
${
source_dir
}
/src/connector/python
${
install_main_dir
}
/connector
||
:
${
csudo
}
cp
${
binary_dir
}
/build/lib/
*
.jar
${
install_main_dir
}
/connector &> /dev/null
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/connector/
*
.jar
||
echo
&> /dev/null
if
find
${
source_dir
}
/src/connector/go
-mindepth
1
-maxdepth
1 |
read
;
then
${
csudo
}
cp
-r
${
source_dir
}
/src/connector/go
${
install_main_dir
}
/connector
||
:
else
echo
"WARNING: go connector not found, please check if want to use it!"
fi
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
cp
-rf
${
source_dir
}
/src/connector/python
${
install_main_dir
}
/connector
||
:
${
csudo
}
cp
${
binary_dir
}
/build/lib/
*
.jar
${
install_main_dir
}
/connector &>/dev/null
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/connector/
*
.jar
||
echo
&>/dev/null
||
:
else
${
csudo
}
cp
-rf
${
source_dir
}
/src/connector/python
${
install_main_dir
}
/connector
||
${
csudo
}
cp
-rf
${
source_dir
}
/src/connector/python
${
install_main_2_dir
}
/connector
||
:
${
csudo
}
cp
${
binary_dir
}
/build/lib/
*
.jar
${
install_main_dir
}
/connector &>/dev/null
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/connector/
*
.jar
||
echo
&>/dev/null
||
:
${
csudo
}
cp
${
binary_dir
}
/build/lib/
*
.jar
${
install_main_2_dir
}
/connector &>/dev/null
&&
${
csudo
}
chmod
777
${
install_main_2_dir
}
/connector/
*
.jar
||
echo
&>/dev/null
||
:
fi
}
function
install_examples
()
{
${
csudo
}
cp
-rf
${
source_dir
}
/tests/examples/
*
${
install_main_dir
}
/examples
||
:
if
[
"
$osType
"
!=
"Darwin"
]
;
then
${
csudo
}
cp
-rf
${
source_dir
}
/examples/
*
${
install_main_dir
}
/examples
||
:
else
${
csudo
}
cp
-rf
${
source_dir
}
/examples/
*
${
install_main_dir
}
/examples
||
${
csudo
}
cp
-rf
${
source_dir
}
/examples/
*
${
install_main_2_dir
}
/examples
||
:
fi
}
function
clean_service_on_sysvinit
()
{
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
if
pidof taosd &> /dev/null
;
then
${
csudo
}
service taosd stop
||
:
fi
if
((
${
initd_mod
}
==
1
))
;
then
${
csudo
}
chkconfig
--del
taosd
||
:
elif
((
${
initd_mod
}
==
2
))
;
then
${
csudo
}
insserv
-r
taosd
||
:
elif
((
${
initd_mod
}
==
3
))
;
then
${
csudo
}
update-rc.d
-f
taosd remove
||
:
fi
${
csudo
}
rm
-f
${
service_config_dir
}
/taosd
||
:
if
$(
which init &> /dev/null
)
;
then
${
csudo
}
init q
||
:
fi
if
pidof
${
serverName
}
&>/dev/null
;
then
${
csudo
}
service
${
serverName
}
stop
||
:
fi
if
((
${
initd_mod
}
==
1
))
;
then
${
csudo
}
chkconfig
--del
${
serverName
}
||
:
elif
((
${
initd_mod
}
==
2
))
;
then
${
csudo
}
insserv
-r
${
serverName
}
||
:
elif
((
${
initd_mod
}
==
3
))
;
then
${
csudo
}
update-rc.d
-f
${
serverName
}
remove
||
:
fi
${
csudo
}
rm
-f
${
service_config_dir
}
/
${
serverName
}
||
:
if
$(
which init &>/dev/null
)
;
then
${
csudo
}
init q
||
:
fi
}
function
install_service_on_sysvinit
()
{
clean_service_on_sysvinit
sleep
1
# Install taosd service
if
((
${
os_type
}
==
1
))
;
then
${
csudo
}
cp
-f
${
script_dir
}
/../deb/taosd
${
install_main_dir
}
/init.d
||
:
${
csudo
}
cp
${
script_dir
}
/../deb/taosd
${
service_config_dir
}
&&
${
csudo
}
chmod
a+x
${
service_config_dir
}
/taosd
||
:
elif
((
${
os_type
}
==
2
))
;
then
${
csudo
}
cp
-f
${
script_dir
}
/../rpm/taosd
${
install_main_dir
}
/init.d
||
:
${
csudo
}
cp
${
script_dir
}
/../rpm/taosd
${
service_config_dir
}
&&
${
csudo
}
chmod
a+x
${
service_config_dir
}
/taosd
||
:
fi
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
if
((
${
initd_mod
}
==
1
))
;
then
${
csudo
}
chkconfig
--add
taosd
||
:
${
csudo
}
chkconfig
--level
2345 taosd on
||
:
elif
((
${
initd_mod
}
==
2
))
;
then
${
csudo
}
insserv taosd
||
:
${
csudo
}
insserv
-d
taosd
||
:
elif
((
${
initd_mod
}
==
3
))
;
then
${
csudo
}
update-rc.d taosd defaults
||
:
fi
clean_service_on_sysvinit
sleep
1
if
((
${
os_type
}
==
1
))
;
then
# ${csudo}cp -f ${script_dir}/../deb/${serverName} ${install_main_dir}/init.d
${
csudo
}
cp
${
script_dir
}
/../deb/
${
serverName
}
${
service_config_dir
}
&&
${
csudo
}
chmod
a+x
${
service_config_dir
}
/
${
serverName
}
||
:
elif
((
${
os_type
}
==
2
))
;
then
# ${csudo}cp -f ${script_dir}/../rpm/${serverName} ${install_main_dir}/init.d
${
csudo
}
cp
${
script_dir
}
/../rpm/
${
serverName
}
${
service_config_dir
}
&&
${
csudo
}
chmod
a+x
${
service_config_dir
}
/
${
serverName
}
||
:
fi
if
((
${
initd_mod
}
==
1
))
;
then
${
csudo
}
chkconfig
--add
${
serverName
}
||
:
${
csudo
}
chkconfig
--level
2345
${
serverName
}
on
||
:
elif
((
${
initd_mod
}
==
2
))
;
then
${
csudo
}
insserv
${
serverName
}
||
:
${
csudo
}
insserv
-d
${
serverName
}
||
:
elif
((
${
initd_mod
}
==
3
))
;
then
${
csudo
}
update-rc.d
${
serverName
}
defaults
||
:
fi
}
function
clean_service_on_systemd
()
{
taosd_service_config
=
"
${
service_config_dir
}
/taosd
.service"
taosd_service_config
=
"
${
service_config_dir
}
/
${
serverName
}
.service"
if
systemctl is-active
--quiet
taosd
;
then
echo
"TDengine
is running, stopping it..."
${
csudo
}
systemctl stop taosd &> /dev/null
||
echo
&>
/dev/null
fi
${
csudo
}
systemctl disable taosd &> /dev/null
||
echo
&>
/dev/null
if
systemctl is-active
--quiet
${
serverName
}
;
then
echo
"
${
productName
}
is running, stopping it..."
${
csudo
}
systemctl stop
${
serverName
}
&>/dev/null
||
echo
&>
/dev/null
fi
${
csudo
}
systemctl disable
${
serverName
}
&>/dev/null
||
echo
&>
/dev/null
${
csudo
}
rm
-f
${
taosd_service_config
}
${
csudo
}
rm
-f
${
taosd_service_config
}
}
# taos:2345:respawn:/etc/init.d/taosd start
function
install_service_on_systemd
()
{
clean_service_on_systemd
taosd_service_config
=
"
${
service_config_dir
}
/taosd.service"
${
csudo
}
bash
-c
"echo '[Unit]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Description=TDengine server service' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'After=network-online.target' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Wants=network-online.target' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo '[Service]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Type=simple' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'ExecStart=/usr/bin/taosd' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'ExecStartPre=/usr/local/taos/bin/startPre.sh' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'TimeoutStopSec=1000000s' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitNOFILE=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitNPROC=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitCORE=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'TimeoutStartSec=0' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StandardOutput=null' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Restart=always' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StartLimitBurst=3' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StartLimitInterval=60s' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo '[Install]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'WantedBy=multi-user.target' >>
${
taosd_service_config
}
"
${
csudo
}
systemctl
enable
taosd
clean_service_on_systemd
taosd_service_config
=
"
${
service_config_dir
}
/
${
serverName
}
.service"
${
csudo
}
bash
-c
"echo '[Unit]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Description=
${
productName
}
server service' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'After=network-online.target' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Wants=network-online.target' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo '[Service]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Type=simple' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'ExecStart=/usr/bin/
${
serverName
}
' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'ExecStartPre=
${
installDir
}
/bin/startPre.sh' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'TimeoutStopSec=1000000s' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitNOFILE=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitNPROC=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'LimitCORE=infinity' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'TimeoutStartSec=0' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StandardOutput=null' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'Restart=always' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StartLimitBurst=3' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'StartLimitInterval=60s' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo '[Install]' >>
${
taosd_service_config
}
"
${
csudo
}
bash
-c
"echo 'WantedBy=multi-user.target' >>
${
taosd_service_config
}
"
${
csudo
}
systemctl
enable
${
serverName
}
}
function
install_taosadapter_service
()
{
if
((
${
service_mod
}
==
0
))
;
then
[
-f
${
binary_dir
}
/test/cfg/taosadapter.service
]
&&
${
csudo
}
cp
${
binary_dir
}
/test/cfg/taosadapter.service
\
${
service_config_dir
}
/
||
:
${
csudo
}
systemctl daemon-reload
fi
}
function
install_service
()
{
if
((
${
service_mod
}
==
0
))
;
then
install_service_on_systemd
elif
((
${
service_mod
}
==
1
))
;
then
install_service_on_sysvinit
else
# must manual stop taosd
kill_taosd
fi
if
((
${
service_mod
}
==
0
))
;
then
install_service_on_systemd
elif
((
${
service_mod
}
==
1
))
;
then
install_service_on_sysvinit
else
kill_taosd
fi
}
function
update_TDengine
()
{
echo
-e
"
${
GREEN
}
Start to update TDengine...
${
NC
}
"
# Stop the service if running
if
[
"
$osType
"
!=
"Darwin"
]
;
then
if
pidof taosd &> /dev/null
;
then
if
((
${
service_mod
}
==
0
))
;
then
${
csudo
}
systemctl stop taosd
||
:
elif
((
${
service_mod
}
==
1
))
;
then
${
csudo
}
service taosd stop
||
:
else
kill_taosd
fi
sleep
1
fi
fi
install_main_path
install_log
install_header
install_lib
install_connector
install_examples
install_bin
if
[
"
$osType
"
!=
"Darwin"
]
;
then
install_service
fi
install_config
if
[
"
$osType
"
!=
"Darwin"
]
;
then
echo
echo
-e
"
\0
33[44;32;1mTDengine is updated successfully!
${
NC
}
"
echo
echo
-e
"
${
GREEN_DARK
}
To configure TDengine
${
NC
}
: edit /etc/taos/taos.cfg"
if
((
${
service_mod
}
==
0
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
:
${
csudo
}
systemctl start taosd
${
NC
}
"
elif
((
${
service_mod
}
==
1
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
:
${
csudo
}
service taosd start
${
NC
}
"
else
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
: ./taosd
${
NC
}
"
fi
echo
-e
"
${
GREEN_DARK
}
To access TDengine
${
NC
}
: use
${
GREEN_UNDERLINE
}
taos
${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1mTDengine is updated successfully!
${
NC
}
"
echo
-e
"
${
GREEN
}
Start to update
${
productName
}
...
${
NC
}
"
# Stop the service if running
if
pidof
${
serverName
}
&>/dev/null
;
then
if
((
${
service_mod
}
==
0
))
;
then
${
csudo
}
systemctl stop
${
serverName
}
||
:
elif
((
${
service_mod
}
==
1
))
;
then
${
csudo
}
service
${
serverName
}
stop
||
:
else
echo
echo
-e
"
\0
33[44;32;1mTDengine Client is updated successfully!
${
NC
}
"
echo
echo
-e
"
${
GREEN_DARK
}
To access TDengine Client
${
NC
}
: use
${
GREEN_UNDERLINE
}
taos
${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1mTDengine Client is updated successfully!
${
NC
}
"
kill_taosadapter
kill_taosd
fi
sleep
1
fi
install_main_path
install_log
install_header
install_lib
# install_connector
install_examples
install_bin
install_service
install_taosadapter_service
install_config
install_taosadapter_config
echo
echo
-e
"
\0
33[44;32;1m
${
productName
}
is updated successfully!
${
NC
}
"
echo
echo
-e
"
${
GREEN_DARK
}
To configure
${
productName
}
${
NC
}
: edit
${
configDir
}
/
${
configFile
}
"
echo
-e
"
${
GREEN_DARK
}
To configure Taos Adapter (if has)
${
NC
}
: edit
${
configDir
}
/taosadapter.toml"
if
((
${
service_mod
}
==
0
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
:
${
csudo
}
systemctl start
${
serverName
}${
NC
}
"
elif
((
${
service_mod
}
==
1
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
:
${
csudo
}
service
${
serverName
}
start
${
NC
}
"
else
echo
-e
"
${
GREEN_DARK
}
To start Taos Adapter (if has)
${
NC
}
: taosadapter &
${
NC
}
"
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
:
${
serverName
}${
NC
}
"
fi
echo
-e
"
${
GREEN_DARK
}
To access
${
productName
}
${
NC
}
: use
${
GREEN_UNDERLINE
}${
clientName
}${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1m
${
productName
}
is updated successfully!
${
NC
}
"
}
function
install_TDengine
()
{
# Start to install
if
[
"
$osType
"
!=
"Darwin"
]
;
then
echo
-e
"
${
GREEN
}
Start to install TDEngine...
${
NC
}
"
else
echo
-e
"
${
GREEN
}
Start to install TDEngine Client ...
${
NC
}
"
fi
install_main_path
install_data
install_log
install_header
install_lib
install_connector
install_examples
install_bin
if
[
"
$osType
"
!=
"Darwin"
]
;
then
install_service
fi
install_config
if
[
"
$osType
"
!=
"Darwin"
]
;
then
# Ask if to start the service
echo
echo
-e
"
\0
33[44;32;1mTDengine is installed successfully!
${
NC
}
"
echo
echo
-e
"
${
GREEN_DARK
}
To configure TDengine
${
NC
}
: edit /etc/taos/taos.cfg"
if
((
${
service_mod
}
==
0
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
:
${
csudo
}
systemctl start taosd
${
NC
}
"
elif
((
${
service_mod
}
==
1
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
:
${
csudo
}
service taosd start
${
NC
}
"
else
echo
-e
"
${
GREEN_DARK
}
To start TDengine
${
NC
}
: ./taosd
${
NC
}
"
fi
echo
-e
"
${
GREEN_DARK
}
To access TDengine
${
NC
}
: use
${
GREEN_UNDERLINE
}
taos
${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1mTDengine is installed successfully!
${
NC
}
"
else
echo
-e
"
${
GREEN_DARK
}
To access TDengine
${
NC
}
: use
${
GREEN_UNDERLINE
}
taos
${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1mTDengine Client is installed successfully!
${
NC
}
"
fi
# Start to install
echo
-e
"
${
GREEN
}
Start to install
${
productName
}
...
${
NC
}
"
install_main_path
install_data
install_log
install_header
install_lib
# install_connector
install_examples
install_bin
install_service
install_taosadapter_service
install_config
install_taosadapter_config
# Ask if to start the service
echo
echo
-e
"
\0
33[44;32;1m
${
productName
}
is installed successfully!
${
NC
}
"
echo
echo
-e
"
${
GREEN_DARK
}
To configure
${
productName
}
${
NC
}
: edit
${
configDir
}
/
${
configFile
}
"
echo
-e
"
${
GREEN_DARK
}
To configure taosadapter (if has)
${
NC
}
: edit
${
configDir
}
/taosadapter.toml"
if
((
${
service_mod
}
==
0
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
:
${
csudo
}
systemctl start
${
serverName
}${
NC
}
"
elif
((
${
service_mod
}
==
1
))
;
then
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
:
${
csudo
}
service
${
serverName
}
start
${
NC
}
"
else
echo
-e
"
${
GREEN_DARK
}
To start Taos Adapter (if has)
${
NC
}
: taosadapter &
${
NC
}
"
echo
-e
"
${
GREEN_DARK
}
To start
${
productName
}
${
NC
}
: ./
${
serverName
}${
NC
}
"
fi
echo
-e
"
${
GREEN_DARK
}
To access
${
productName
}
${
NC
}
: use
${
GREEN_UNDERLINE
}${
clientName
}${
NC
}
in shell
${
NC
}
"
echo
echo
-e
"
\0
33[44;32;1m
${
productName
}
is installed successfully!
${
NC
}
"
}
## ==============================Main program starts from here============================
echo source
directory:
$1
echo
binary directory:
$2
echo
$bin_dir
if
[
-x
${
bin_dir
}
/taos
]
;
then
if
[
"
$osType
"
!=
"Darwin"
]
;
then
if
[
-x
${
bin_dir
}
/
${
clientName
}
]
;
then
update_TDengine
else
install_TDengine
fi
else
if
[
-x
${
bin_dir
}
/
${
clientName
}
]
||
[
-x
${
bin_2_dir
}
/
${
clientName
}
]
;
then
update_TDengine
else
install_TDengine
fi
fi
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录