Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
b23d0573
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b23d0573
编写于
6月 02, 2021
作者:
B
bryanchang0603
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into test/TD-4463
上级
c55f6121
ac5789d9
变更
19
展开全部
隐藏空白更改
内联
并排
Showing
19 changed file
with
1752 addition
and
290 deletion
+1752
-290
packaging/deb/makedeb.sh
packaging/deb/makedeb.sh
+42
-8
packaging/rpm/makerpm.sh
packaging/rpm/makerpm.sh
+3
-3
packaging/rpm/tdengine.spec
packaging/rpm/tdengine.spec
+63
-18
packaging/tools/install.sh
packaging/tools/install.sh
+178
-131
packaging/tools/make_install.sh
packaging/tools/make_install.sh
+1
-1
packaging/tools/makepkg.sh
packaging/tools/makepkg.sh
+42
-9
src/client/src/tscPrepare.c
src/client/src/tscPrepare.c
+14
-13
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+19
-4
src/client/src/tscServer.c
src/client/src/tscServer.c
+0
-1
src/client/src/tscSql.c
src/client/src/tscSql.c
+1
-1
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+51
-17
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
...dbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
+8
-17
src/query/src/qAggMain.c
src/query/src/qAggMain.c
+7
-8
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+13
-5
tests/examples/lua/build.sh
tests/examples/lua/build.sh
+7
-1
tests/script/api/stmtBatchTest.c
tests/script/api/stmtBatchTest.c
+1298
-51
tests/script/general/parser/function.sim
tests/script/general/parser/function.sim
+3
-0
tests/script/general/parser/nestquery.sim
tests/script/general/parser/nestquery.sim
+1
-2
tests/script/general/parser/testSuite.sim
tests/script/general/parser/testSuite.sim
+1
-0
未找到文件。
packaging/deb/makedeb.sh
浏览文件 @
b23d0573
...
...
@@ -24,14 +24,14 @@ echo "compile_dir: ${compile_dir}"
echo
"pkg_dir:
${
pkg_dir
}
"
if
[
-d
${
pkg_dir
}
]
;
then
rm
-rf
${
pkg_dir
}
rm
-rf
${
pkg_dir
}
fi
mkdir
-p
${
pkg_dir
}
cd
${
pkg_dir
}
libfile
=
"libtaos.so.
${
tdengine_ver
}
"
# create install dir
# create install dir
install_home_path
=
"/usr/local/taos"
mkdir
-p
${
pkg_dir
}${
install_home_path
}
mkdir
-p
${
pkg_dir
}${
install_home_path
}
/bin
...
...
@@ -42,7 +42,7 @@ mkdir -p ${pkg_dir}${install_home_path}/examples
mkdir
-p
${
pkg_dir
}${
install_home_path
}
/include
mkdir
-p
${
pkg_dir
}${
install_home_path
}
/init.d
mkdir
-p
${
pkg_dir
}${
install_home_path
}
/script
cp
${
compile_dir
}
/../packaging/cfg/taos.cfg
${
pkg_dir
}${
install_home_path
}
/cfg
cp
${
compile_dir
}
/../packaging/deb/taosd
${
pkg_dir
}${
install_home_path
}
/init.d
cp
${
compile_dir
}
/../packaging/tools/post.sh
${
pkg_dir
}${
install_home_path
}
/script
...
...
@@ -54,7 +54,7 @@ cp ${compile_dir}/build/bin/taosdemo ${pkg_dir}${install_home_pat
cp
${
compile_dir
}
/build/bin/taosdump
${
pkg_dir
}${
install_home_path
}
/bin
cp
${
compile_dir
}
/build/bin/taosd
${
pkg_dir
}${
install_home_path
}
/bin
cp
${
compile_dir
}
/build/bin/taos
${
pkg_dir
}${
install_home_path
}
/bin
cp
${
compile_dir
}
/build/lib/
${
libfile
}
${
pkg_dir
}${
install_home_path
}
/driver
cp
${
compile_dir
}
/build/lib/
${
libfile
}
${
pkg_dir
}${
install_home_path
}
/driver
cp
${
compile_dir
}
/../src/inc/taos.h
${
pkg_dir
}${
install_home_path
}
/include
cp
${
compile_dir
}
/../src/inc/taoserror.h
${
pkg_dir
}${
install_home_path
}
/include
cp
-r
${
top_dir
}
/tests/examples/
*
${
pkg_dir
}${
install_home_path
}
/examples
...
...
@@ -67,7 +67,41 @@ fi
cp
-r
${
top_dir
}
/src/connector/python
${
pkg_dir
}${
install_home_path
}
/connector
cp
-r
${
top_dir
}
/src/connector/go
${
pkg_dir
}${
install_home_path
}
/connector
cp
-r
${
top_dir
}
/src/connector/nodejs
${
pkg_dir
}${
install_home_path
}
/connector
cp
${
compile_dir
}
/build/lib/taos-jdbcdriver
*
dist.
*
${
pkg_dir
}${
install_home_path
}
/connector
||
:
cp
${
compile_dir
}
/build/lib/taos-jdbcdriver
*
.
*
${
pkg_dir
}${
install_home_path
}
/connector
||
:
if
[
-f
${
compile_dir
}
/build/bin/jemalloc-config
]
;
then
install_user_local_path
=
"/usr/local"
mkdir
-p
${
pkg_dir
}${
install_user_local_path
}
/
{
bin,lib,lib/pkgconfig,include/jemalloc,share/doc/jemalloc,share/man/man3
}
cp
${
compile_dir
}
/build/bin/jemalloc-config
${
pkg_dir
}${
install_user_local_path
}
/bin/
if
[
-f
${
compile_dir
}
/build/bin/jemalloc.sh
]
;
then
cp
${
compile_dir
}
/build/bin/jemalloc.sh
${
pkg_dir
}${
install_user_local_path
}
/bin/
fi
if
[
-f
${
compile_dir
}
/build/bin/jeprof
]
;
then
cp
${
compile_dir
}
/build/bin/jeprof
${
pkg_dir
}${
install_user_local_path
}
/bin/
fi
if
[
-f
${
compile_dir
}
/build/include/jemalloc/jemalloc.h
]
;
then
cp
${
compile_dir
}
/build/include/jemalloc/jemalloc.h
${
pkg_dir
}${
install_user_local_path
}
/include/jemalloc/
fi
if
[
-f
${
compile_dir
}
/build/lib/libjemalloc.so.2
]
;
then
cp
${
compile_dir
}
/build/lib/libjemalloc.so.2
${
pkg_dir
}${
install_user_local_path
}
/lib/
ln
-sf
libjemalloc.so.2
${
pkg_dir
}${
install_user_local_path
}
/lib/libjemalloc.so
fi
if
[
-f
${
compile_dir
}
/build/lib/libjemalloc.a
]
;
then
cp
${
compile_dir
}
/build/lib/libjemalloc.a
${
pkg_dir
}${
install_user_local_path
}
/lib/
fi
if
[
-f
${
compile_dir
}
/build/lib/libjemalloc_pic.a
]
;
then
cp
${
compile_dir
}
/build/lib/libjemalloc_pic.a
${
pkg_dir
}${
install_user_local_path
}
/lib/
fi
if
[
-f
${
compile_dir
}
/build/lib/pkgconfig/jemalloc.pc
]
;
then
cp
${
compile_dir
}
/build/lib/pkgconfig/jemalloc.pc
${
pkg_dir
}${
install_user_local_path
}
/lib/pkgconfig/
fi
if
[
-f
${
compile_dir
}
/build/share/doc/jemalloc/jemalloc.html
]
;
then
cp
${
compile_dir
}
/build/share/doc/jemalloc/jemalloc.html
${
pkg_dir
}${
install_user_local_path
}
/share/doc/jemalloc/
fi
if
[
-f
${
compile_dir
}
/build/share/man/man3/jemalloc.3
]
;
then
cp
${
compile_dir
}
/build/share/man/man3/jemalloc.3
${
pkg_dir
}${
install_user_local_path
}
/share/man/man3/
fi
fi
cp
-r
${
compile_dir
}
/../packaging/deb/DEBIAN
${
pkg_dir
}
/
chmod
755
${
pkg_dir
}
/DEBIAN/
*
...
...
@@ -75,7 +109,7 @@ chmod 755 ${pkg_dir}/DEBIAN/*
# modify version of control
debver
=
"Version: "
$tdengine_ver
sed
-i
"2c
$debver
"
${
pkg_dir
}
/DEBIAN/control
#get taos version, then set deb name
...
...
@@ -90,7 +124,7 @@ fi
if
[
"
$verType
"
==
"beta"
]
;
then
debname
=
${
debname
}
-
${
verType
}
".deb"
elif
[
"
$verType
"
==
"stable"
]
;
then
elif
[
"
$verType
"
==
"stable"
]
;
then
debname
=
${
debname
}
".deb"
else
echo
"unknow verType, nor stabel or beta"
...
...
@@ -101,7 +135,7 @@ fi
dpkg
-b
${
pkg_dir
}
$debname
echo
"make deb package success!"
cp
${
pkg_dir
}
/
*
.deb
${
output_dir
}
cp
${
pkg_dir
}
/
*
.deb
${
output_dir
}
# clean tmep dir
rm
-rf
${
pkg_dir
}
...
...
packaging/rpm/makerpm.sh
浏览文件 @
b23d0573
#!/bin/bash
#
# Generate rpm package for centos
# Generate rpm package for centos
set
-e
# set -x
...
...
@@ -60,7 +60,7 @@ ${csudo} rpmbuild --define="_version ${tdengine_ver}" --define="_topdir ${pkg_di
# copy rpm package to output_dir, and modify package name, then clean temp dir
#${csudo} cp -rf RPMS/* ${output_dir}
cp_rpm_package
${
pkg_dir
}
/RPMS
cp_rpm_package
${
pkg_dir
}
/RPMS
if
[
"
$verMode
"
==
"cluster"
]
;
then
...
...
@@ -74,7 +74,7 @@ fi
if
[
"
$verType
"
==
"beta"
]
;
then
rpmname
=
${
rpmname
}
-
${
verType
}
".rpm"
elif
[
"
$verType
"
==
"stable"
]
;
then
elif
[
"
$verType
"
==
"stable"
]
;
then
rpmname
=
${
rpmname
}
".rpm"
else
echo
"unknow verType, nor stabel or beta"
...
...
packaging/rpm/tdengine.spec
浏览文件 @
b23d0573
%define homepath /usr/local/taos
%define userlocalpath /usr/local
%define cfg_install_dir /etc/taos
%define __strip /bin/true
...
...
@@ -12,22 +13,22 @@ URL: www.taosdata.com
AutoReqProv: no
#BuildRoot: %_topdir/BUILDROOT
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
#Prefix: /usr/local/taos
#BuildRequires:
#Requires:
#BuildRequires:
#Requires:
%description
Big Data Platform Designed and Optimized for IoT
#"prep" Nothing needs to be done
#"prep" Nothing needs to be done
#%prep
#%setup -q
#%setup -T
#%setup -T
#"build" Nothing needs to be done
#"build" Nothing needs to be done
#%build
#%configure
#make %{?_smp_mflags}
...
...
@@ -75,9 +76,53 @@ fi
cp -r %{_compiledir}/../src/connector/python %{buildroot}%{homepath}/connector
cp -r %{_compiledir}/../src/connector/go %{buildroot}%{homepath}/connector
cp -r %{_compiledir}/../src/connector/nodejs %{buildroot}%{homepath}/connector
cp %{_compiledir}/build/lib/taos-jdbcdriver*
dist.*
%{buildroot}%{homepath}/connector ||:
cp %{_compiledir}/build/lib/taos-jdbcdriver*
.*
%{buildroot}%{homepath}/connector ||:
cp -r %{_compiledir}/../tests/examples/* %{buildroot}%{homepath}/examples
if [ -f %{_compiledir}/build/bin/jemalloc-config ]; then
mkdir -p %{buildroot}%{userlocalpath}/bin
mkdir -p %{buildroot}%{userlocalpath}/lib
mkdir -p %{buildroot}%{userlocalpath}/lib/pkgconfig
mkdir -p %{buildroot}%{userlocalpath}/include
mkdir -p %{buildroot}%{userlocalpath}/include/jemalloc
mkdir -p %{buildroot}%{userlocalpath}/share
mkdir -p %{buildroot}%{userlocalpath}/share/doc
mkdir -p %{buildroot}%{userlocalpath}/share/doc/jemalloc
mkdir -p %{buildroot}%{userlocalpath}/share/man
mkdir -p %{buildroot}%{userlocalpath}/share/man/man3
cp %{_compiledir}/build/bin/jemalloc-config %{buildroot}%{userlocalpath}/bin/
if [ -f %{_compiledir}/build/bin/jemalloc.sh ]; then
cp %{_compiledir}/build/bin/jemalloc.sh %{buildroot}%{userlocalpath}/bin/
fi
if [ -f %{_compiledir}/build/bin/jeprof ]; then
cp %{_compiledir}/build/bin/jeprof %{buildroot}%{userlocalpath}/bin/
fi
if [ -f %{_compiledir}/build/include/jemalloc/jemalloc.h ]; then
cp %{_compiledir}/build/include/jemalloc/jemalloc.h %{buildroot}%{userlocalpath}/include/jemalloc/
fi
if [ -f %{_compiledir}/build/lib/libjemalloc.so.2 ]; then
cp %{_compiledir}/build/lib/libjemalloc.so.2 %{buildroot}%{userlocalpath}/lib/
ln -sf libjemalloc.so.2 %{buildroot}%{userlocalpath}/lib/libjemalloc.so
fi
if [ -f %{_compiledir}/build/lib/libjemalloc.a ]; then
cp %{_compiledir}/build/lib/libjemalloc.a %{buildroot}%{userlocalpath}/lib/
fi
if [ -f %{_compiledir}/build/lib/libjemalloc_pic.a ]; then
cp %{_compiledir}/build/lib/libjemalloc_pic.a %{buildroot}%{userlocalpath}/lib/
fi
if [ -f %{_compiledir}/build/lib/pkgconfig/jemalloc.pc ]; then
cp %{_compiledir}/build/lib/pkgconfig/jemalloc.pc %{buildroot}%{userlocalpath}/lib/pkgconfig/
fi
if [ -f %{_compiledir}/build/share/doc/jemalloc/jemalloc.html ]; then
cp %{_compiledir}/build/share/doc/jemalloc/jemalloc.html %{buildroot}%{userlocalpath}/share/doc/jemalloc/
fi
if [ -f %{_compiledir}/build/share/man/man3/jemalloc.3 ]; then
cp %{_compiledir}/build/share/man/man3/jemalloc.3 %{buildroot}%{userlocalpath}/share/man/man3/
fi
fi
#Scripts executed before installation
%pre
csudo=""
...
...
@@ -103,7 +148,7 @@ fi
# if taos.cfg already softlink, remove it
if [ -f %{cfg_install_dir}/taos.cfg ]; then
${csudo} rm -f %{homepath}/cfg/taos.cfg || :
fi
fi
# there can not libtaos.so*, otherwise ln -s error
${csudo} rm -f %{homepath}/driver/libtaos* || :
...
...
@@ -116,18 +161,18 @@ if command -v sudo > /dev/null; then
fi
cd %{homepath}/script
${csudo} ./post.sh
# Scripts executed before uninstall
%preun
csudo=""
if command -v sudo > /dev/null; then
csudo="sudo"
fi
# only remove package to call preun.sh, not but update(2)
# only remove package to call preun.sh, not but update(2)
if [ $1 -eq 0 ];then
#cd %{homepath}/script
#${csudo} ./preun.sh
if [ -f %{homepath}/script/preun.sh ]; then
cd %{homepath}/script
${csudo} ./preun.sh
...
...
@@ -135,7 +180,7 @@ if [ $1 -eq 0 ];then
bin_link_dir="/usr/bin"
lib_link_dir="/usr/lib"
inc_link_dir="/usr/include"
data_link_dir="/usr/local/taos/data"
log_link_dir="/usr/local/taos/log"
cfg_link_dir="/usr/local/taos/cfg"
...
...
@@ -149,20 +194,20 @@ if [ $1 -eq 0 ];then
${csudo} rm -f ${inc_link_dir}/taos.h || :
${csudo} rm -f ${inc_link_dir}/taoserror.h || :
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
${csudo} rm -f ${log_link_dir} || :
${csudo} rm -f ${data_link_dir} || :
pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}')
if [ -n "$pid" ]; then
${csudo} kill -9 $pid || :
fi
fi
fi
fi
fi
# Scripts executed after uninstall
%postun
# clean build dir
%clean
csudo=""
...
...
packaging/tools/install.sh
浏览文件 @
b23d0573
此差异已折叠。
点击以展开。
packaging/tools/make_install.sh
浏览文件 @
b23d0573
...
...
@@ -204,7 +204,7 @@ function install_jemalloc() {
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/
libjemalloc_pic.a
]
;
then
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
...
...
packaging/tools/makepkg.sh
浏览文件 @
b23d0573
...
...
@@ -30,12 +30,12 @@ else
install_dir
=
"
${
release_dir
}
/TDengine-server-
${
version
}
"
fi
# Directories and files
.
# Directories and files
if
[
"
$pagMode
"
==
"lite"
]
;
then
strip
${
build_dir
}
/bin/taosd
strip
${
build_dir
}
/bin/taosd
strip
${
build_dir
}
/bin/taos
bin_files
=
"
${
build_dir
}
/bin/taosd
${
build_dir
}
/bin/taos
${
script_dir
}
/remove.sh"
else
else
bin_files
=
"
${
build_dir
}
/bin/taosd
${
build_dir
}
/bin/taos
${
build_dir
}
/bin/taosdump
${
build_dir
}
/bin/taosdemo
${
build_dir
}
/bin/tarbitrator
\
${
script_dir
}
/remove.sh
${
script_dir
}
/set_core.sh
${
script_dir
}
/startPre.sh
${
script_dir
}
/taosd-dump-cfg.gdb"
fi
...
...
@@ -73,10 +73,43 @@ mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/taos
mkdir
-p
${
install_dir
}
/init.d
&&
cp
${
init_file_tarbitrator_deb
}
${
install_dir
}
/init.d/tarbitratord.deb
||
:
mkdir
-p
${
install_dir
}
/init.d
&&
cp
${
init_file_tarbitrator_rpm
}
${
install_dir
}
/init.d/tarbitratord.rpm
||
:
if
[
-f
${
build_dir
}
/bin/jemalloc-config
]
;
then
mkdir
-p
${
install_dir
}
/jemalloc/
{
bin,lib,lib/pkgconfig,include/jemalloc,share/doc/jemalloc,share/man/man3
}
cp
${
build_dir
}
/bin/jemalloc-config
${
install_dir
}
/jemalloc/bin
if
[
-f
${
build_dir
}
/bin/jemalloc.sh
]
;
then
cp
${
build_dir
}
/bin/jemalloc.sh
${
install_dir
}
/jemalloc/bin
fi
if
[
-f
${
build_dir
}
/bin/jeprof
]
;
then
cp
${
build_dir
}
/bin/jeprof
${
install_dir
}
/jemalloc/bin
fi
if
[
-f
${
build_dir
}
/include/jemalloc/jemalloc.h
]
;
then
cp
${
build_dir
}
/include/jemalloc/jemalloc.h
${
install_dir
}
/jemalloc/include/jemalloc
fi
if
[
-f
${
build_dir
}
/lib/libjemalloc.so.2
]
;
then
cp
${
build_dir
}
/lib/libjemalloc.so.2
${
install_dir
}
/jemalloc/lib
ln
-sf
libjemalloc.so.2
${
install_dir
}
/jemalloc/lib/libjemalloc.so
fi
if
[
-f
${
build_dir
}
/lib/libjemalloc.a
]
;
then
cp
${
build_dir
}
/lib/libjemalloc.a
${
install_dir
}
/jemalloc/lib
fi
if
[
-f
${
build_dir
}
/lib/libjemalloc_pic.a
]
;
then
cp
${
build_dir
}
/lib/libjemalloc_pic.a
${
install_dir
}
/jemalloc/lib
fi
if
[
-f
${
build_dir
}
/lib/pkgconfig/jemalloc.pc
]
;
then
cp
${
build_dir
}
/lib/pkgconfig/jemalloc.pc
${
install_dir
}
/jemalloc/lib/pkgconfig
fi
if
[
-f
${
build_dir
}
/share/doc/jemalloc/jemalloc.html
]
;
then
cp
${
build_dir
}
/share/doc/jemalloc/jemalloc.html
${
install_dir
}
/jemalloc/share/doc/jemalloc
fi
if
[
-f
${
build_dir
}
/share/man/man3/jemalloc.3
]
;
then
cp
${
build_dir
}
/share/man/man3/jemalloc.3
${
install_dir
}
/jemalloc/share/man/man3
fi
fi
if
[
"
$verMode
"
==
"cluster"
]
;
then
sed
's/verMode=edge/verMode=cluster/g'
${
install_dir
}
/bin/remove.sh
>>
remove_temp.sh
mv
remove_temp.sh
${
install_dir
}
/bin/remove.sh
mkdir
-p
${
install_dir
}
/nginxd
&&
cp
-r
${
nginx_dir
}
/
*
${
install_dir
}
/nginxd
cp
${
nginx_dir
}
/png/taos.png
${
install_dir
}
/nginxd/admin/images/taos.png
rm
-rf
${
install_dir
}
/nginxd/png
...
...
@@ -132,7 +165,7 @@ if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
if
[
-d
${
examples_dir
}
/JDBC/taosdemo/target
]
;
then
rm
-rf
${
examples_dir
}
/JDBC/taosdemo/target
fi
cp
-r
${
examples_dir
}
/JDBC
${
install_dir
}
/examples
cp
-r
${
examples_dir
}
/matlab
${
install_dir
}
/examples
cp
-r
${
examples_dir
}
/python
${
install_dir
}
/examples
...
...
@@ -142,7 +175,7 @@ if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
cp
-r
${
examples_dir
}
/C#
${
install_dir
}
/examples
fi
# Copy driver
mkdir
-p
${
install_dir
}
/driver
mkdir
-p
${
install_dir
}
/driver
cp
${
lib_files
}
${
install_dir
}
/driver
# Copy connector
...
...
@@ -168,7 +201,7 @@ fi
# exit 1
cd
${
release_dir
}
cd
${
release_dir
}
if
[
"
$verMode
"
==
"cluster"
]
;
then
pkg_name
=
${
install_dir
}
-
${
osType
}
-
${
cpuType
}
...
...
@@ -185,8 +218,8 @@ fi
if
[
"
$verType
"
==
"beta"
]
;
then
pkg_name
=
${
pkg_name
}
-
${
verType
}
elif
[
"
$verType
"
==
"stable"
]
;
then
pkg_name
=
${
pkg_name
}
elif
[
"
$verType
"
==
"stable"
]
;
then
pkg_name
=
${
pkg_name
}
else
echo
"unknow verType, nor stabel or beta"
exit
1
...
...
src/client/src/tscPrepare.c
浏览文件 @
b23d0573
...
...
@@ -48,6 +48,7 @@ typedef struct SMultiTbStmt {
bool
nameSet
;
bool
tagSet
;
uint64_t
currentUid
;
char
*
sqlstr
;
uint32_t
tbNum
;
SStrToken
tbname
;
SStrToken
stbname
;
...
...
@@ -1203,7 +1204,6 @@ static int insertBatchStmtExecute(STscStmt* pStmt) {
return
pStmt
->
pSql
->
res
.
code
;
}
int
stmtParseInsertTbTags
(
SSqlObj
*
pSql
,
STscStmt
*
pStmt
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
int32_t
ret
=
TSDB_CODE_SUCCESS
;
...
...
@@ -1233,28 +1233,28 @@ int stmtParseInsertTbTags(SSqlObj* pSql, STscStmt* pStmt) {
pStmt
->
mtb
.
tagSet
=
true
;
sToken
=
tStrGetToken
(
pCmd
->
insertParam
.
sql
,
&
index
,
false
);
if
(
sToken
.
n
>
0
&&
sToken
.
type
==
TK_VALUES
)
{
if
(
sToken
.
n
>
0
&&
(
sToken
.
type
==
TK_VALUES
||
sToken
.
type
==
TK_LP
)
)
{
return
TSDB_CODE_SUCCESS
;
}
if
(
sToken
.
n
<=
0
||
sToken
.
type
!=
TK_USING
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
tscSQLSyntaxErrMsg
(
pCmd
->
payload
,
"keywords USING is expected"
,
sToken
.
z
)
;
}
sToken
=
tStrGetToken
(
pCmd
->
insertParam
.
sql
,
&
index
,
false
);
if
(
sToken
.
n
<=
0
||
((
sToken
.
type
!=
TK_ID
)
&&
(
sToken
.
type
!=
TK_STRING
)))
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
tscSQLSyntaxErrMsg
(
pCmd
->
payload
,
"invalid token"
,
sToken
.
z
)
;
}
pStmt
->
mtb
.
stbname
=
sToken
;
sToken
=
tStrGetToken
(
pCmd
->
insertParam
.
sql
,
&
index
,
false
);
if
(
sToken
.
n
<=
0
||
sToken
.
type
!=
TK_TAGS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
tscSQLSyntaxErrMsg
(
pCmd
->
payload
,
"keyword TAGS expected"
,
sToken
.
z
)
;
}
sToken
=
tStrGetToken
(
pCmd
->
insertParam
.
sql
,
&
index
,
false
);
if
(
sToken
.
n
<=
0
||
sToken
.
type
!=
TK_LP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
tscSQLSyntaxErrMsg
(
pCmd
->
payload
,
") expected"
,
sToken
.
z
)
;
}
pStmt
->
mtb
.
tags
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
...
...
@@ -1291,14 +1291,12 @@ int stmtParseInsertTbTags(SSqlObj* pSql, STscStmt* pStmt) {
}
pStmt
->
mtb
.
values
=
sToken
;
}
return
TSDB_CODE_SUCCESS
;
}
int
stmtGenInsertStatement
(
SSqlObj
*
pSql
,
STscStmt
*
pStmt
,
const
char
*
name
,
TAOS_BIND
*
tags
)
{
size_t
tagNum
=
taosArrayGetSize
(
pStmt
->
mtb
.
tags
);
size_t
size
=
1048576
;
...
...
@@ -1373,14 +1371,17 @@ int stmtGenInsertStatement(SSqlObj* pSql, STscStmt* pStmt, const char* name, TAO
break
;
}
free
(
pSql
->
sqlstr
);
if
(
pStmt
->
mtb
.
sqlstr
==
NULL
)
{
pStmt
->
mtb
.
sqlstr
=
pSql
->
sqlstr
;
}
else
{
tfree
(
pSql
->
sqlstr
);
}
pSql
->
sqlstr
=
str
;
return
TSDB_CODE_SUCCESS
;
}
////////////////////////////////////////////////////////////////////////////////
// interface functions
...
...
@@ -1561,7 +1562,6 @@ int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags
}
pStmt
->
mtb
.
nameSet
=
true
;
pStmt
->
mtb
.
tagSet
=
true
;
tscDebug
(
"0x%"
PRIx64
" SQL: %s"
,
pSql
->
self
,
pSql
->
sqlstr
);
...
...
@@ -1634,6 +1634,7 @@ int taos_stmt_close(TAOS_STMT* stmt) {
taosHashCleanup
(
pStmt
->
pSql
->
cmd
.
insertParam
.
pTableBlockHashList
);
pStmt
->
pSql
->
cmd
.
insertParam
.
pTableBlockHashList
=
NULL
;
taosArrayDestroy
(
pStmt
->
mtb
.
tags
);
tfree
(
pStmt
->
mtb
.
sqlstr
);
}
}
...
...
src/client/src/tscSQLParser.c
浏览文件 @
b23d0573
...
...
@@ -7482,6 +7482,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
const
char
*
msg1
=
"point interpolation query needs timestamp"
;
const
char
*
msg2
=
"too many tables in from clause"
;
const
char
*
msg3
=
"start(end) time of query range required or time range too large"
;
const
char
*
msg4
=
"interval query not supported, since the result of sub query not include valid timestamp column"
;
const
char
*
msg9
=
"only tag query not compatible with normal column filter"
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
...
...
@@ -7540,11 +7541,25 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
if
(
validateIntervalNode
(
pSql
,
pQueryInfo
,
pSqlNode
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
else
{
if
(
isTimeWindowQuery
(
pQueryInfo
)
&&
(
validateFunctionsInIntervalOrGroupbyQuery
(
pCmd
,
pQueryInfo
)
!=
TSDB_CODE_SUCCESS
))
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
if
(
isTimeWindowQuery
(
pQueryInfo
))
{
// check if the first column of the nest query result is timestamp column
SColumn
*
pCol
=
taosArrayGetP
(
pQueryInfo
->
colList
,
0
);
if
(
pCol
->
info
.
type
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg4
);
}
if
(
validateFunctionsInIntervalOrGroupbyQuery
(
pCmd
,
pQueryInfo
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
}
// set order by info
STableMeta
*
pTableMeta
=
tscGetMetaInfo
(
pQueryInfo
,
0
)
->
pTableMeta
;
if
(
validateOrderbyNode
(
pCmd
,
pQueryInfo
,
pSqlNode
,
tscGetTableSchema
(
pTableMeta
))
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
else
{
pQueryInfo
->
command
=
TSDB_SQL_SELECT
;
...
...
@@ -7697,8 +7712,8 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
SExprInfo
**
p
=
NULL
;
int32_t
numOfExpr
=
0
;
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
code
=
createProjectionExpr
(
pQueryInfo
,
pTableMetaInfo
,
&
p
,
&
numOfExpr
);
if
(
pQueryInfo
->
exprList1
==
NULL
)
{
pQueryInfo
->
exprList1
=
taosArrayInit
(
4
,
POINTER_BYTES
);
}
...
...
src/client/src/tscServer.c
浏览文件 @
b23d0573
...
...
@@ -477,7 +477,6 @@ int doBuildAndSendMsg(SSqlObj *pSql) {
pCmd
->
command
==
TSDB_SQL_INSERT
||
pCmd
->
command
==
TSDB_SQL_CONNECT
||
pCmd
->
command
==
TSDB_SQL_HB
||
// pCmd->command == TSDB_SQL_META ||
pCmd
->
command
==
TSDB_SQL_STABLEVGROUP
)
{
pRes
->
code
=
tscBuildMsg
[
pCmd
->
command
](
pSql
,
NULL
);
}
...
...
src/client/src/tscSql.c
浏览文件 @
b23d0573
...
...
@@ -627,7 +627,7 @@ static bool hasAdditionalErrorInfo(int32_t code, SSqlCmd *pCmd) {
char
*
z
=
NULL
;
if
(
len
>
0
)
{
z
=
strstr
(
pCmd
->
payload
,
"invalid
SQL
"
);
z
=
strstr
(
pCmd
->
payload
,
"invalid
operation
"
);
if
(
z
==
NULL
)
{
z
=
strstr
(
pCmd
->
payload
,
"syntax error"
);
}
...
...
src/client/src/tscUtil.c
浏览文件 @
b23d0573
...
...
@@ -780,7 +780,9 @@ SSDataBlock* doGetDataBlock(void* param, bool* newgroup) {
SSqlRes
*
pRes
=
&
pSql
->
res
;
SSDataBlock
*
pBlock
=
pInput
->
block
;
pOperator
->
pRuntimeEnv
->
current
=
pInput
->
pTableQueryInfo
;
if
(
pOperator
->
pRuntimeEnv
!=
NULL
)
{
pOperator
->
pRuntimeEnv
->
current
=
pInput
->
pTableQueryInfo
;
}
pBlock
->
info
.
rows
=
pRes
->
numOfRows
;
if
(
pRes
->
numOfRows
!=
0
)
{
...
...
@@ -804,6 +806,24 @@ SSDataBlock* doGetDataBlock(void* param, bool* newgroup) {
return
pBlock
;
}
static
void
fetchNextBlockIfCompleted
(
SOperatorInfo
*
pOperator
,
bool
*
newgroup
)
{
SJoinOperatorInfo
*
pJoinInfo
=
pOperator
->
info
;
for
(
int32_t
i
=
0
;
i
<
pOperator
->
numOfUpstream
;
++
i
)
{
SJoinStatus
*
pStatus
=
&
pJoinInfo
->
status
[
i
];
if
(
pStatus
->
pBlock
==
NULL
||
pStatus
->
index
>=
pStatus
->
pBlock
->
info
.
rows
)
{
pStatus
->
pBlock
=
pOperator
->
upstream
[
i
]
->
exec
(
pOperator
->
upstream
[
i
],
newgroup
);
pStatus
->
index
=
0
;
if
(
pStatus
->
pBlock
==
NULL
)
{
pOperator
->
status
=
OP_EXEC_DONE
;
pJoinInfo
->
resultInfo
.
total
+=
pJoinInfo
->
pRes
->
info
.
rows
;
break
;
}
}
}
}
SSDataBlock
*
doDataBlockJoin
(
void
*
param
,
bool
*
newgroup
)
{
SOperatorInfo
*
pOperator
=
(
SOperatorInfo
*
)
param
;
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
...
...
@@ -816,19 +836,9 @@ SSDataBlock* doDataBlockJoin(void* param, bool* newgroup) {
pJoinInfo
->
pRes
->
info
.
rows
=
0
;
while
(
1
)
{
for
(
int32_t
i
=
0
;
i
<
pOperator
->
numOfUpstream
;
++
i
)
{
SJoinStatus
*
pStatus
=
&
pJoinInfo
->
status
[
i
];
if
(
pStatus
->
pBlock
==
NULL
||
pStatus
->
index
>=
pStatus
->
pBlock
->
info
.
rows
)
{
pStatus
->
pBlock
=
pOperator
->
upstream
[
i
]
->
exec
(
pOperator
->
upstream
[
i
],
newgroup
);
pStatus
->
index
=
0
;
if
(
pStatus
->
pBlock
==
NULL
)
{
pOperator
->
status
=
OP_EXEC_DONE
;
pJoinInfo
->
resultInfo
.
total
+=
pJoinInfo
->
pRes
->
info
.
rows
;
return
pJoinInfo
->
pRes
;
}
}
fetchNextBlockIfCompleted
(
pOperator
,
newgroup
);
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
return
pJoinInfo
->
pRes
;
}
SJoinStatus
*
st0
=
&
pJoinInfo
->
status
[
0
];
...
...
@@ -847,8 +857,12 @@ SSDataBlock* doDataBlockJoin(void* param, bool* newgroup) {
if
(
ts
[
st
->
index
]
<
ts0
[
st0
->
index
])
{
// less than the first
prefixEqual
=
false
;
if
((
++
(
st
->
index
))
>=
st
->
pBlock
->
info
.
rows
)
{
break
;
fetchNextBlockIfCompleted
(
pOperator
,
newgroup
);
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
return
pJoinInfo
->
pRes
;
}
}
}
else
if
(
ts
[
st
->
index
]
>
ts0
[
st0
->
index
])
{
// greater than the first;
if
(
prefixEqual
==
true
)
{
...
...
@@ -856,12 +870,19 @@ SSDataBlock* doDataBlockJoin(void* param, bool* newgroup) {
for
(
int32_t
j
=
0
;
j
<
i
;
++
j
)
{
SJoinStatus
*
stx
=
&
pJoinInfo
->
status
[
j
];
if
((
++
(
stx
->
index
))
>=
stx
->
pBlock
->
info
.
rows
)
{
break
;
fetchNextBlockIfCompleted
(
pOperator
,
newgroup
);
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
return
pJoinInfo
->
pRes
;
}
}
}
}
else
{
if
((
++
(
st0
->
index
))
>=
st0
->
pBlock
->
info
.
rows
)
{
break
;
fetchNextBlockIfCompleted
(
pOperator
,
newgroup
);
if
(
pOperator
->
status
==
OP_EXEC_DONE
)
{
return
pJoinInfo
->
pRes
;
}
}
}
}
...
...
@@ -1132,6 +1153,19 @@ void handleDownstreamOperator(SSqlObj** pSqlObjList, int32_t numOfUpstream, SQue
memcpy
(
schema
,
pSchema
,
numOfCol1
*
sizeof
(
SSchema
));
}
// update the exprinfo
int32_t
numOfOutput
=
(
int32_t
)
tscNumOfExprs
(
px
);
for
(
int32_t
i
=
0
;
i
<
numOfOutput
;
++
i
)
{
SExprInfo
*
pex
=
taosArrayGetP
(
px
->
exprList
,
i
);
int32_t
colId
=
pex
->
base
.
colInfo
.
colId
;
for
(
int32_t
j
=
0
;
j
<
pSourceOperator
->
numOfOutput
;
++
j
)
{
if
(
colId
==
schema
[
j
].
colId
)
{
pex
->
base
.
colInfo
.
colIndex
=
j
;
break
;
}
}
}
px
->
pQInfo
=
createQInfoFromQueryNode
(
px
,
&
tableGroupInfo
,
pSourceOperator
,
NULL
,
NULL
,
MASTER_SCAN
);
tfree
(
pColumnInfo
);
tfree
(
schema
);
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
浏览文件 @
b23d0573
...
...
@@ -16,13 +16,13 @@
*/
package
com.taosdata.jdbc
;
import
com.taosdata.jdbc.utils.TaosInfo
;
import
java.nio.ByteBuffer
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.util.List
;
import
com.taosdata.jdbc.utils.TaosInfo
;
/**
* JNI connector
*/
...
...
@@ -276,23 +276,14 @@ public class TSDBJNIConnector {
private
native
int
validateCreateTableSqlImp
(
long
connection
,
byte
[]
sqlBytes
);
public
long
prepareStmt
(
String
sql
)
throws
SQLException
{
Long
stmt
=
0L
;
try
{
stmt
=
prepareStmtImp
(
sql
.
getBytes
(),
this
.
taos
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_UNSUPPORTED_ENCODING
);
}
if
(
stmt
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
Long
stmt
=
prepareStmtImp
(
sql
.
getBytes
(),
this
.
taos
);
if
(
stmt
==
TSDBConstants
.
JNI_TDENGINE_ERROR
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_SQL
);
}
else
if
(
stmt
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
if
(
stmt
==
TSDBConstants
.
JNI_SQL_NULL
)
{
}
else
if
(
stmt
==
TSDBConstants
.
JNI_SQL_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_SQL_NULL
);
}
if
(
stmt
==
TSDBConstants
.
JNI_OUT_OF_MEMORY
)
{
}
else
if
(
stmt
==
TSDBConstants
.
JNI_OUT_OF_MEMORY
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_OUT_OF_MEMORY
);
}
...
...
src/query/src/qAggMain.c
浏览文件 @
b23d0573
...
...
@@ -2490,7 +2490,6 @@ static void buildTopBotStruct(STopBotInfo *pTopBotInfo, SQLFunctionCtx *pCtx) {
tmp
+=
POINTER_BYTES
*
pCtx
->
param
[
0
].
i64
;
size_t
size
=
sizeof
(
tValuePair
)
+
pCtx
->
tagInfo
.
tagsLen
;
// assert(pCtx->param[0].i64 > 0);
for
(
int32_t
i
=
0
;
i
<
pCtx
->
param
[
0
].
i64
;
++
i
)
{
pTopBotInfo
->
res
[
i
]
=
(
tValuePair
*
)
tmp
;
...
...
@@ -2499,7 +2498,6 @@ static void buildTopBotStruct(STopBotInfo *pTopBotInfo, SQLFunctionCtx *pCtx) {
}
}
bool
topbot_datablock_filter
(
SQLFunctionCtx
*
pCtx
,
const
char
*
minval
,
const
char
*
maxval
)
{
SResultRowCellInfo
*
pResInfo
=
GET_RES_INFO
(
pCtx
);
if
(
pResInfo
==
NULL
)
{
...
...
@@ -2579,13 +2577,14 @@ static void top_function(SQLFunctionCtx *pCtx) {
for
(
int32_t
i
=
0
;
i
<
pCtx
->
size
;
++
i
)
{
char
*
data
=
GET_INPUT_DATA
(
pCtx
,
i
);
TSKEY
ts
=
GET_TS_DATA
(
pCtx
,
i
);
if
(
pCtx
->
hasNull
&&
isNull
(
data
,
pCtx
->
inputType
))
{
continue
;
}
notNullElems
++
;
// NOTE: Set the default timestamp if it is missing [todo refactor]
TSKEY
ts
=
(
pCtx
->
ptsList
!=
NULL
)
?
GET_TS_DATA
(
pCtx
,
i
)
:
0
;
do_top_function_add
(
pRes
,
(
int32_t
)
pCtx
->
param
[
0
].
i64
,
data
,
ts
,
pCtx
->
inputType
,
&
pCtx
->
tagInfo
,
NULL
,
0
);
}
...
...
@@ -2658,13 +2657,13 @@ static void bottom_function(SQLFunctionCtx *pCtx) {
for
(
int32_t
i
=
0
;
i
<
pCtx
->
size
;
++
i
)
{
char
*
data
=
GET_INPUT_DATA
(
pCtx
,
i
);
TSKEY
ts
=
GET_TS_DATA
(
pCtx
,
i
);
if
(
pCtx
->
hasNull
&&
isNull
(
data
,
pCtx
->
inputType
))
{
continue
;
}
notNullElems
++
;
// NOTE: Set the default timestamp if it is missing [todo refactor]
TSKEY
ts
=
(
pCtx
->
ptsList
!=
NULL
)
?
GET_TS_DATA
(
pCtx
,
i
)
:
0
;
do_bottom_function_add
(
pRes
,
(
int32_t
)
pCtx
->
param
[
0
].
i64
,
data
,
ts
,
pCtx
->
inputType
,
&
pCtx
->
tagInfo
,
NULL
,
0
);
}
...
...
@@ -2742,7 +2741,7 @@ static void top_bottom_func_finalizer(SQLFunctionCtx *pCtx) {
if
(
pCtx
->
param
[
1
].
i64
==
PRIMARYKEY_TIMESTAMP_COL_INDEX
)
{
__compar_fn_t
comparator
=
(
pCtx
->
param
[
2
].
i64
==
TSDB_ORDER_ASC
)
?
resAscComparFn
:
resDescComparFn
;
qsort
(
tvp
,
(
size_t
)
pResInfo
->
numOfRes
,
POINTER_BYTES
,
comparator
);
}
else
if
(
pCtx
->
param
[
1
].
i64
>
PRIMARYKEY_TIMESTAMP_COL_INDEX
)
{
}
else
/*if (pCtx->param[1].i64 > PRIMARYKEY_TIMESTAMP_COL_INDEX)*/
{
__compar_fn_t
comparator
=
(
pCtx
->
param
[
2
].
i64
==
TSDB_ORDER_ASC
)
?
resDataAscComparFn
:
resDataDescComparFn
;
qsort
(
tvp
,
(
size_t
)
pResInfo
->
numOfRes
,
POINTER_BYTES
,
comparator
);
}
...
...
src/query/src/qExecutor.c
浏览文件 @
b23d0573
...
...
@@ -950,7 +950,13 @@ static void doSetInputDataBlock(SOperatorInfo* pOperator, SQLFunctionCtx* pCtx,
uint32_t
status
=
aAggs
[
pCtx
[
i
].
functionId
].
status
;
if
((
status
&
(
TSDB_FUNCSTATE_SELECTIVITY
|
TSDB_FUNCSTATE_NEED_TS
))
!=
0
)
{
SColumnInfoData
*
tsInfo
=
taosArrayGet
(
pBlock
->
pDataBlock
,
0
);
pCtx
[
i
].
ptsList
=
(
int64_t
*
)
tsInfo
->
pData
;
// In case of the top/bottom query again the nest query result, which has no timestamp column
// don't set the ptsList attribute.
if
(
tsInfo
->
info
.
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
pCtx
[
i
].
ptsList
=
(
int64_t
*
)
tsInfo
->
pData
;
}
else
{
pCtx
[
i
].
ptsList
=
NULL
;
}
}
}
else
if
(
TSDB_COL_IS_UD_COL
(
pCol
->
flag
)
&&
(
pOperator
->
pRuntimeEnv
->
scanFlag
==
MERGE_STAGE
))
{
SColIndex
*
pColIndex
=
&
pOperator
->
pExpr
[
i
].
base
.
colInfo
;
...
...
@@ -4228,6 +4234,10 @@ static void updateTableIdInfo(STableQueryInfo* pTableQueryInfo, SSDataBlock* pBl
int32_t
step
=
GET_FORWARD_DIRECTION_FACTOR
(
order
);
pTableQueryInfo
->
lastKey
=
((
order
==
TSDB_ORDER_ASC
)
?
pBlock
->
info
.
window
.
ekey
:
pBlock
->
info
.
window
.
skey
)
+
step
;
if
(
pTableQueryInfo
->
pTable
==
NULL
)
{
return
;
}
STableIdInfo
tidInfo
=
createTableIdInfo
(
pTableQueryInfo
);
STableIdInfo
*
idinfo
=
taosHashGet
(
pTableIdInfo
,
&
tidInfo
.
tid
,
sizeof
(
tidInfo
.
tid
));
if
(
idinfo
!=
NULL
)
{
...
...
@@ -4905,8 +4915,7 @@ static SSDataBlock* doArithmeticOperation(void* param, bool* newgroup) {
updateOutputBuf
(
&
pArithInfo
->
binfo
,
&
pArithInfo
->
bufCapacity
,
pBlock
->
info
.
rows
);
arithmeticApplyFunctions
(
pRuntimeEnv
,
pInfo
->
pCtx
,
pOperator
->
numOfOutput
);
if
(
pTableQueryInfo
!=
NULL
)
{
// TODO refactor
if
(
pTableQueryInfo
!=
NULL
)
{
updateTableIdInfo
(
pTableQueryInfo
,
pBlock
,
pRuntimeEnv
->
pTableRetrieveTsMap
,
order
);
}
...
...
@@ -4949,8 +4958,7 @@ static SSDataBlock* doArithmeticOperation(void* param, bool* newgroup) {
updateOutputBuf
(
&
pArithInfo
->
binfo
,
&
pArithInfo
->
bufCapacity
,
pBlock
->
info
.
rows
);
arithmeticApplyFunctions
(
pRuntimeEnv
,
pInfo
->
pCtx
,
pOperator
->
numOfOutput
);
if
(
pTableQueryInfo
!=
NULL
)
{
// TODO refactor
if
(
pTableQueryInfo
!=
NULL
)
{
updateTableIdInfo
(
pTableQueryInfo
,
pBlock
,
pRuntimeEnv
->
pTableRetrieveTsMap
,
order
);
}
...
...
tests/examples/lua/build.sh
浏览文件 @
b23d0573
gcc
-std
=
c99 lua_connector.c
-fPIC
-shared
-o
luaconnector.so
-Wall
-ltaos
lua_header_installed
=
`
apt-cache policy liblua5.3-dev|grep Installed|grep none
>
/dev/null
;
echo
$?
`
if
[
"
$lua_header_installed
"
=
"0"
]
;
then
echo
"If need, please input root password to install liblua5.3-dev for build the connector.."
sudo
apt
install
-y
liblua5.3-dev
fi
gcc
-std
=
c99 lua_connector.c
-fPIC
-shared
-o
luaconnector.so
-Wall
-ltaos
-I
/usr/include/lua5.3
tests/script/api/stmtBatchTest.c
浏览文件 @
b23d0573
此差异已折叠。
点击以展开。
tests/script/general/parser/function.sim
浏览文件 @
b23d0573
...
...
@@ -24,6 +24,9 @@ sql drop database if exists $db
sql create database $db keep 36500
sql use $db
print =====================================> td-4481
sql create database $db
print =====================================> test case for twa in single block
sql create table t1 (ts timestamp, k float);
...
...
tests/script/general/parser/nestquery.sim
浏览文件 @
b23d0573
...
...
@@ -9,7 +9,7 @@ sql connect
print ======================== dnode1 start
$dbPrefix = nest_
query
$dbPrefix = nest_
db
$tbPrefix = nest_tb
$mtPrefix = nest_mt
$tbNum = 10
...
...
@@ -17,7 +17,6 @@ $rowNum = 10000
$totalNum = $tbNum * $rowNum
print =============== nestquery.sim
$i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i
...
...
tests/script/general/parser/testSuite.sim
浏览文件 @
b23d0573
...
...
@@ -60,4 +60,5 @@ run general/parser/slimit_alter_tags.sim
run general/parser/binary_escapeCharacter.sim
run general/parser/between_and.sim
run general/parser/last_cache.sim
run general/parser/nestquery.sim
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录