diff --git a/CMakeLists.txt b/CMakeLists.txt index d2d3f43730e8ba73b0ee6acac72ec4da343a9f92..dc9b30e5481a32e8c89d1e4337ebfeb5fd40f627 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,33 +41,35 @@ IF (NOT DEFINED TD_CLUSTER) SET(TD_ARM FALSE) SET(TD_ARM_64 FALSE) SET(TD_ARM_32 FALSE) + SET(TD_MIPS FALSE) SET(TD_MIPS_64 FALSE) + SET(TD_MIPS_32 FALSE) SET(TD_DARWIN_64 FALSE) SET(TD_WINDOWS_64 FALSE) # if generate ARM version: - # cmake -DARMVER=arm32 .. or cmake -DARMVER=arm64 - IF (${ARMVER} MATCHES "arm32") + # cmake -DCPUTYPE=aarch32 .. or cmake -DCPUTYPE=aarch64 + IF (${CPUTYPE} MATCHES "aarch32") SET(TD_ARM TRUE) SET(TD_ARM_32 TRUE) ADD_DEFINITIONS(-D_TD_ARM_) ADD_DEFINITIONS(-D_TD_ARM_32_) - ELSEIF (${ARMVER} MATCHES "arm64") + ELSEIF (${CPUTYPE} MATCHES "aarch64") SET(TD_ARM TRUE) SET(TD_ARM_64 TRUE) ADD_DEFINITIONS(-D_TD_ARM_) ADD_DEFINITIONS(-D_TD_ARM_64_) - ENDIF () - - IF (TD_ARM) - ADD_DEFINITIONS(-D_TD_ARM_) - IF (TD_ARM_32) - ADD_DEFINITIONS(-D_TD_ARM_32_) - ELSEIF (TD_ARM_64) - ADD_DEFINITIONS(-D_TD_ARM_64_) - ELSE () - EXIT () - ENDIF () + ELSEIF (${CPUTYPE} MATCHES "mips64") + SET(TD_MIPS TRUE) + SET(TD_MIPS_64 TRUE) + ADD_DEFINITIONS(-D_TD_MIPS_) + ADD_DEFINITIONS(-D_TD_MIPS_64_) + ELSEIF (${CPUTYPE} MATCHES "x64") + MESSAGE(STATUS "input cpuType: " ${CPUTYPE}) + ELSEIF (${CPUTYPE} MATCHES "x86") + MESSAGE(STATUS "input cpuType: " ${CPUTYPE}) + ELSE () + MESSAGE(STATUS "input cpuType: " ${CPUTYPE}) ENDIF () # @@ -83,17 +85,17 @@ IF (NOT DEFINED TD_CLUSTER) SET(TD_OS_DIR ${TD_COMMUNITY_DIR}/src/os/linux) ADD_DEFINITIONS(-D_M_X64) MESSAGE(STATUS "The current platform is Linux 64-bit") - ELSEIF (${CMAKE_SIZEOF_VOID_P} MATCHES 4) - IF (TD_ARM) - SET(TD_LINUX_32 TRUE) - SET(TD_OS_DIR ${TD_COMMUNITY_DIR}/src/os/linux) - #ADD_DEFINITIONS(-D_M_IX86) - MESSAGE(STATUS "The current platform is Linux 32-bit") + ELSEIF (${CMAKE_SIZEOF_VOID_P} MATCHES 4) + IF (TD_ARM) + SET(TD_LINUX_32 TRUE) + SET(TD_OS_DIR ${TD_COMMUNITY_DIR}/src/os/linux) + #ADD_DEFINITIONS(-D_M_IX86) + MESSAGE(STATUS "The current platform is Linux 32-bit") + ELSE () + MESSAGE(FATAL_ERROR "The current platform is Linux 32-bit, but no ARM not supported yet") + EXIT () + ENDIF () ELSE () - MESSAGE(FATAL_ERROR "The current platform is Linux 32-bit, but no ARM not supported yet") - EXIT () - ENDIF () - ELSE () MESSAGE(FATAL_ERROR "The current platform is Linux neither 32-bit nor 64-bit, not supported yet") EXIT () ENDIF () diff --git a/packaging/deb/makedeb.sh b/packaging/deb/makedeb.sh index 1cd45cfb971a426b592aa795913eadd4806672a8..8c55269bb9ac87112d19a120f57898b0e462cfd6 100755 --- a/packaging/deb/makedeb.sh +++ b/packaging/deb/makedeb.sh @@ -1,13 +1,17 @@ #!/bin/bash # # Generate deb package for ubuntu -# set -x +set -e +#set -x #curr_dir=$(pwd) compile_dir=$1 output_dir=$2 tdengine_ver=$3 -armver=$4 +cpuType=$4 +osType=$5 +verMode=$6 +verType=$7 script_dir="$(dirname $(readlink -f $0))" top_dir="$(readlink -f ${script_dir}/../..)" @@ -64,15 +68,24 @@ debver="Version: "$tdengine_ver sed -i "2c$debver" ${pkg_dir}/DEBIAN/control #get taos version, then set deb name -if [ -z "$armver" ]; then - debname="TDengine-"${tdengine_ver}".deb" -elif [ "$armver" == "arm64" ]; then - debname="TDengine-"${tdengine_ver}"-arm64.deb" -elif [ "$armver" == "arm32" ]; then - debname="TDengine-"${tdengine_ver}"-arm32.deb" + + +if [ "$verMode" == "cluster" ]; then + debname="TDengine-server-"${tdengine_ver}-${osType}-${cpuType} +elif [ "$verMode" == "lite" ]; then + debname="TDengine-server-edge"-${tdengine_ver}-${osType}-${cpuType} +else + echo "unknow verMode, nor cluster or lite" + exit 1 +fi + +if [ "$verType" == "beta" ]; then + debname=${debname}-${verType}".deb" +elif [ "$verType" == "stable" ]; then + debname=${debname}".deb" else - echo "input parameter error!!!" - return + echo "unknow verType, nor stabel or beta" + exit 1 fi # make deb package diff --git a/packaging/release.sh b/packaging/release.sh index 7297eb1d81a25e9d9e86ab2882a6c53db81f2b18..95a4f70cf451b8531316ae165a5e025b2a7b2328 100755 --- a/packaging/release.sh +++ b/packaging/release.sh @@ -5,7 +5,45 @@ set -e # set -x -armver=$1 +# releash.sh -v [cluster | lite] -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] -V [stable | beta] + +# set parameters by default value +verMode=lite # [cluster, lite] +verType=stable # [stable, beta] +cpuType=x64 # [aarch32 | aarch64 | x64 | x86 | mips64 ...] +osType=Linux # [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] + +while getopts "hv:V:c:o:" arg +do + case $arg in + v) + #echo "verMode=$OPTARG" + verMode=$( echo $OPTARG ) + ;; + V) + #echo "verType=$OPTARG" + verType=$(echo $OPTARG) + ;; + c) + #echo "cpuType=$OPTARG" + cpuType=$(echo $OPTARG) + ;; + o) + #echo "osType=$OPTARG" + osType=$(echo $OPTARG) + ;; + h) + echo "Usage: `basename $0` -v [cluster | lite] -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] -V [stable | beta]" + exit 0 + ;; + ?) #unknow option + echo "unkonw argument" + exit 1 + ;; + esac +done + +echo "verMode=${verMode} verType=${verType} cpuType=${cpuType} osType=${osType}" curr_dir=$(pwd) script_dir="$(dirname $(readlink -f $0))" @@ -106,12 +144,16 @@ done # output the version info to the buildinfo file. build_time=$(date +"%F %R") -echo "char version[64] = \"${version}\";" > ${versioninfo} -echo "char compatible_version[64] = \"${compatible_version}\";" >> ${versioninfo} -echo "char gitinfo[128] = \"$(git rev-parse --verify HEAD)\";" >> ${versioninfo} -echo "char gitinfoOfInternal[128] = \"\";" >> ${versioninfo} +echo "char version[64] = \"${version}\";" > ${versioninfo} +echo "char compatible_version[64] = \"${compatible_version}\";" >> ${versioninfo} +echo "char gitinfo[128] = \"$(git rev-parse --verify HEAD)\";" >> ${versioninfo} +echo "char gitinfoOfInternal[128] = \"\";" >> ${versioninfo} echo "char buildinfo[512] = \"Built by ${USER} at ${build_time}\";" >> ${versioninfo} +echo "" >> ${versioninfo} +tmp_version=$(echo $version | tr -s "." "_") +echo "void libtaos_edge_${tmp_version}_${osType}_${cpuType}() {};" >> ${versioninfo} + # 2. cmake executable file compile_dir="${top_dir}/debug" @@ -122,16 +164,12 @@ fi ${csudo} mkdir -p ${compile_dir} cd ${compile_dir} -# arm only support lite ver -if [ -z "$armver" ]; then - cmake ../ -elif [ "$armver" == "arm64" ]; then - cmake ../ -DARMVER=arm64 -elif [ "$armver" == "arm32" ]; then - cmake ../ -DARMVER=arm32 +# check support cpu type +if [[ "$cpuType" == "x64" ]] || [[ "$cpuType" == "aarch64" ]] || [[ "$cpuType" == "aarch32" ]] || [[ "$cpuType" == "mips64" ]] ; then + cmake ../ -DCPUTYPE=${cpuType} else - echo "input parameter error!!!" - return + echo "input cpuType=${cpuType} error!!!" + exit 1 fi make @@ -143,28 +181,28 @@ cd ${curr_dir} #osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2) #echo "osinfo: ${osinfo}" -echo "do deb package for the ubuntu system" +echo "====do deb package for the ubuntu system====" output_dir="${top_dir}/debs" if [ -d ${output_dir} ]; then ${csudo} rm -rf ${output_dir} fi ${csudo} mkdir -p ${output_dir} cd ${script_dir}/deb -${csudo} ./makedeb.sh ${compile_dir} ${output_dir} ${version} ${armver} +${csudo} ./makedeb.sh ${compile_dir} ${output_dir} ${version} ${cpuType} ${osType} ${verMode} ${verType} -echo "do rpm package for the centos system" +echo "====do rpm package for the centos system====" output_dir="${top_dir}/rpms" if [ -d ${output_dir} ]; then ${csudo} rm -rf ${output_dir} fi ${csudo} mkdir -p ${output_dir} cd ${script_dir}/rpm -${csudo} ./makerpm.sh ${compile_dir} ${output_dir} ${version} ${armver} +${csudo} ./makerpm.sh ${compile_dir} ${output_dir} ${version} ${cpuType} ${osType} ${verMode} ${verType} -echo "do tar.gz package for all systems" +echo "====do tar.gz package for all systems====" cd ${script_dir}/tools -${csudo} ./makepkg.sh ${compile_dir} ${version} "${build_time}" ${armver} -${csudo} ./makeclient.sh ${compile_dir} ${version} "${build_time}" ${armver} +${csudo} ./makepkg.sh ${compile_dir} ${version} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} +${csudo} ./makeclient.sh ${compile_dir} ${version} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} # 4. Clean up temporary compile directories #${csudo} rm -rf ${compile_dir} diff --git a/packaging/rpm/makerpm.sh b/packaging/rpm/makerpm.sh index f885c65cddd7b993d797db9b1a031296371f8143..e76e16084386026f44be89f6d242cccc7bf9b605 100755 --- a/packaging/rpm/makerpm.sh +++ b/packaging/rpm/makerpm.sh @@ -9,7 +9,10 @@ compile_dir=$1 output_dir=$2 tdengine_ver=$3 -armver=$4 +cpuType=$4 +osType=$5 +verMode=$6 +verType=$7 script_dir="$(dirname $(readlink -f $0))" top_dir="$(readlink -f ${script_dir}/../..)" @@ -55,15 +58,30 @@ ${csudo} mkdir -p BUILD BUILDROOT RPMS SOURCES SPECS SRPMS ${csudo} rpmbuild --define="_version ${tdengine_ver}" --define="_topdir ${pkg_dir}" --define="_compiledir ${compile_dir}" -bb ${spec_file} -# copy rpm package to output_dir, then clean temp dir +# 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 -if [ "$armver" == "arm64" ]; then - mv ${output_dir}/TDengine-${tdengine_ver}.rpm ${output_dir}/TDengine-${tdengine_ver}-arm64.rpm -elif [ "$armver" == "arm32" ]; then - mv ${output_dir}/TDengine-${tdengine_ver}.rpm ${output_dir}/TDengine-${tdengine_ver}-arm32.rpm + +if [ "$verMode" == "cluster" ]; then + rpmname="TDengine-server-"${tdengine_ver}-${osType}-${cpuType} +elif [ "$verMode" == "lite" ]; then + rpmname="TDengine-server-edge"-${tdengine_ver}-${osType}-${cpuType} +else + echo "unknow verMode, nor cluster or lite" + exit 1 +fi + +if [ "$verType" == "beta" ]; then + rpmname=${rpmname}-${verType}".rpm" +elif [ "$verType" == "stable" ]; then + rpmname=${rpmname}".rpm" +else + echo "unknow verType, nor stabel or beta" + exit 1 fi +mv ${output_dir}/TDengine-${tdengine_ver}.rpm ${output_dir}/${rpmname} + cd .. ${csudo} rm -rf ${pkg_dir} diff --git a/packaging/tools/makeclient.sh b/packaging/tools/makeclient.sh index 4ff360a1af2a9f73d67f1a070f82396d811bb3e5..d206359160100a217b3f6f4be87f1274f80b2187 100755 --- a/packaging/tools/makeclient.sh +++ b/packaging/tools/makeclient.sh @@ -1,14 +1,17 @@ #!/bin/bash # -# Generate tar.gz package for linux client +# Generate tar.gz package for linux client in all os system set -e -set -x +#set -x curr_dir=$(pwd) compile_dir=$1 version=$2 build_time=$3 -armver=$4 +cpuType=$4 +osType=$5 +verMode=$6 +verType=$7 script_dir="$(dirname $(readlink -f $0))" top_dir="$(readlink -f ${script_dir}/../..)" @@ -19,7 +22,7 @@ code_dir="${top_dir}/src" release_dir="${top_dir}/release" #package_name='linux' -install_dir="${release_dir}/TDengine-client-${version}" +install_dir="${release_dir}/TDengine-client" # Directories and files. bin_files="${build_dir}/bin/taos ${build_dir}/bin/taosdump ${script_dir}/remove_client.sh" @@ -42,12 +45,13 @@ cp ${install_files} ${install_dir} && chmod a+x ${install_dir}/install* # Copy example code mkdir -p ${install_dir}/examples -cp -r ${top_dir}/tests/examples/c ${install_dir}/examples -cp -r ${top_dir}/tests/examples/JDBC ${install_dir}/examples -cp -r ${top_dir}/tests/examples/matlab ${install_dir}/examples -cp -r ${top_dir}/tests/examples/python ${install_dir}/examples -cp -r ${top_dir}/tests/examples/R ${install_dir}/examples -cp -r ${top_dir}/tests/examples/go ${install_dir}/examples +examples_dir="${top_dir}/tests/examples" +cp -r ${examples_dir}/c ${install_dir}/examples +cp -r ${examples_dir}/JDBC ${install_dir}/examples +cp -r ${examples_dir}/matlab ${install_dir}/examples +cp -r ${examples_dir}/python ${install_dir}/examples +cp -r ${examples_dir}/R ${install_dir}/examples +cp -r ${examples_dir}/go ${install_dir}/examples # Copy driver mkdir -p ${install_dir}/driver @@ -66,13 +70,26 @@ cp -r ${connector_dir}/go ${install_dir}/connector # exit 1 -cd ${release_dir} -if [ -z "$armver" ]; then - tar -zcv -f "$(basename ${install_dir}).tar.gz" $(basename ${install_dir}) --remove-files -elif [ "$armver" == "arm64" ]; then - tar -zcv -f "$(basename ${install_dir})-arm64.tar.gz" $(basename ${install_dir}) --remove-files -elif [ "$armver" == "arm32" ]; then - tar -zcv -f "$(basename ${install_dir})-arm32.tar.gz" $(basename ${install_dir}) --remove-files +cd ${release_dir} + +if [ "$verMode" == "cluster" ]; then + pkg_name=${install_dir}-${version}-${osType}-${cpuType} +elif [ "$verMode" == "lite" ]; then + pkg_name=${install_dir}-edge-${version}-${osType}-${cpuType} +else + echo "unknow verMode, nor cluster or lite" + exit 1 +fi + +if [ "$verType" == "beta" ]; then + pkg_name=${pkg_name}-${verType} +elif [ "$verType" == "stable" ]; then + pkg_name=${pkg_name} +else + echo "unknow verType, nor stable or beta" + exit 1 fi +tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files + cd ${curr_dir} diff --git a/packaging/tools/makepkg.sh b/packaging/tools/makepkg.sh index 3d2e624cee2647f946dc1161e925347b17d910e1..a16da7f6c3d297ef3d348ce14ba95072caca5027 100755 --- a/packaging/tools/makepkg.sh +++ b/packaging/tools/makepkg.sh @@ -1,12 +1,18 @@ #!/bin/bash # -# Generate deb package for other os system (no unbutu or centos) +# Generate tar.gz package for all os system + +set -e +#set -x curr_dir=$(pwd) compile_dir=$1 version=$2 build_time=$3 -armver=$4 +cpuType=$4 +osType=$5 +verMode=$6 +verType=$7 script_dir="$(dirname $(readlink -f $0))" top_dir="$(readlink -f ${script_dir}/../..)" @@ -17,7 +23,7 @@ code_dir="${top_dir}/src" release_dir="${top_dir}/release" #package_name='linux' -install_dir="${release_dir}/TDengine-${version}" +install_dir="${release_dir}/TDengine-server" # Directories and files. bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${build_dir}/bin/taosdemo ${build_dir}/bin/taosdump ${script_dir}/remove.sh" @@ -77,13 +83,26 @@ cp -r ${connector_dir}/go ${install_dir}/connector # exit 1 -cd ${release_dir} -if [ -z "$armver" ]; then - tar -zcv -f "$(basename ${install_dir}).tar.gz" $(basename ${install_dir}) --remove-files -elif [ "$armver" == "arm64" ]; then - tar -zcv -f "$(basename ${install_dir})-arm64.tar.gz" $(basename ${install_dir}) --remove-files -elif [ "$armver" == "arm32" ]; then - tar -zcv -f "$(basename ${install_dir})-arm32.tar.gz" $(basename ${install_dir}) --remove-files +cd ${release_dir} + +if [ "$verMode" == "cluster" ]; then + pkg_name=${install_dir}-${version}-${osType}-${cpuType} +elif [ "$verMode" == "lite" ]; then + pkg_name=${install_dir}-edge-${version}-${osType}-${cpuType} +else + echo "unknow verMode, nor cluster or lite" + exit 1 fi +if [ "$verType" == "beta" ]; then + pkg_name=${pkg_name}-${verType} +elif [ "$verType" == "stable" ]; then + pkg_name=${pkg_name} +else + echo "unknow verType, nor stabel or beta" + exit 1 +fi + +tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files + cd ${curr_dir} diff --git a/src/system/detail/src/vnodeQueryImpl.c b/src/system/detail/src/vnodeQueryImpl.c index ba1574f3f674879f76e039b40265226304ad43dd..e4e2add572e60f29348cf44d403f26e5c235b383 100644 --- a/src/system/detail/src/vnodeQueryImpl.c +++ b/src/system/detail/src/vnodeQueryImpl.c @@ -3379,6 +3379,8 @@ void forwardQueryStartPosition(SQueryRuntimeEnv *pRuntimeEnv) { updateOffsetVal(pRuntimeEnv, &blockInfo, pBlock); } else { pQuery->limit.offset -= maxReads; + // update the lastkey, since the following skip operation may traverse to another media. update the lastkey first. + pQuery->lastKey = (QUERY_IS_ASC_QUERY(pQuery))? blockInfo.keyLast+1:blockInfo.keyFirst-1; doSkipDataBlock(pRuntimeEnv); } }