From d04354a8ac2f7dd9ba521d755e5d484a203783d9 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 10:19:40 +0800 Subject: [PATCH 01/14] [TBASE-816] --- src/client/src/tscFunctionImpl.c | 75 ++++++++++++++++++++++--------- src/client/src/tscProfile.c | 2 +- src/system/detail/src/vnodeRead.c | 3 +- 3 files changed, 56 insertions(+), 24 deletions(-) diff --git a/src/client/src/tscFunctionImpl.c b/src/client/src/tscFunctionImpl.c index 0f9be90412..7eeb87832a 100644 --- a/src/client/src/tscFunctionImpl.c +++ b/src/client/src/tscFunctionImpl.c @@ -3786,10 +3786,11 @@ static void getStatics_i64(int64_t *primaryKey, int64_t *data, int32_t numOfRow, static void getStatics_f(int64_t *primaryKey, float *data, int32_t numOfRow, double *min, double *max, double *sum, int16_t *minIndex, int16_t *maxIndex, int32_t *numOfNull) { - *min = DBL_MAX; - *max = -DBL_MAX; - *minIndex = 0; - *maxIndex = 0; + float fmin = DBL_MAX; + float fmax = -DBL_MAX; + float fminIndex = 0; + float fmaxIndex = 0; + double dsum = 0; assert(numOfRow <= INT16_MAX); @@ -3799,15 +3800,19 @@ static void getStatics_f(int64_t *primaryKey, float *data, int32_t numOfRow, dou continue; } - *sum += data[i]; - if (*min > data[i]) { - *min = data[i]; - *minIndex = i; + float fv = 0; + *(int32_t*)(&fv) = *(int32_t*)(&(data[i])); + + //*sum += data[i]; + dsum += fv; + if (fmin > fv) { + fmin = fv; + fminIndex = i; } - if (*max < data[i]) { - *max = data[i]; - *maxIndex = i; + if (fmax < fv) { + fmax = fv; + fmaxIndex = i; } // if (isNull(&lastVal, TSDB_DATA_TYPE_FLOAT)) { @@ -3819,14 +3824,26 @@ static void getStatics_f(int64_t *primaryKey, float *data, int32_t numOfRow, dou // lastVal = data[i]; // } } + + double csum = 0; + *(int64_t*)(&csum) = *(int64_t*)sum; + csum += dsum; + *(int64_t*)(sum) = *(int64_t*)(&csum); + + *(int32_t*)max = *(int32_t*)(&fmax); + *(int32_t*)min = *(int32_t*)(&fmin); + *(int32_t*)minIndex = *(int32_t*)(&fminIndex); + *(int32_t*)maxIndex = *(int32_t*)(&fmaxIndex); + } static void getStatics_d(int64_t *primaryKey, double *data, int32_t numOfRow, double *min, double *max, double *sum, int16_t *minIndex, int16_t *maxIndex, int32_t *numOfNull) { - *min = DBL_MAX; - *max = -DBL_MAX; - *minIndex = 0; - *maxIndex = 0; + double dmin = DBL_MAX; + double dmax = -DBL_MAX; + double dminIndex = 0; + double dmaxIndex = 0; + double dsum = 0; assert(numOfRow <= INT16_MAX); @@ -3839,15 +3856,19 @@ static void getStatics_d(int64_t *primaryKey, double *data, int32_t numOfRow, do continue; } - *sum += data[i]; - if (*min > data[i]) { - *min = data[i]; - *minIndex = i; + double dv = 0; + *(int64_t*)(&dv) = *(int64_t*)(&(data[i])); + + //*sum += data[i]; + dsum += dv; + if (dmin > dv) { + dmin = dv; + dminIndex = i; } - if (*max < data[i]) { - *max = data[i]; - *maxIndex = i; + if (dmax < dv) { + dmax = dv; + dmaxIndex = i; } // if (isNull(&lastVal, TSDB_DATA_TYPE_DOUBLE)) { @@ -3859,6 +3880,16 @@ static void getStatics_d(int64_t *primaryKey, double *data, int32_t numOfRow, do // lastVal = data[i]; // } } + + double csum = 0; + *(int64_t*)(&csum) = *(int64_t*)sum; + csum += dsum; + *(int64_t*)(sum) = *(int64_t*)(&csum); + + *(int64_t*)max = *(int64_t*)(&dmax); + *(int64_t*)min = *(int64_t*)(&dmin); + *(int64_t*)minIndex = *(int64_t*)(&dminIndex); + *(int64_t*)maxIndex = *(int64_t*)(&dmaxIndex); } void getStatistics(char *priData, char *data, int32_t size, int32_t numOfRow, int32_t type, int64_t *min, int64_t *max, diff --git a/src/client/src/tscProfile.c b/src/client/src/tscProfile.c index 770e61e278..7472a9dac3 100644 --- a/src/client/src/tscProfile.c +++ b/src/client/src/tscProfile.c @@ -73,7 +73,7 @@ void tscSaveSlowQuery(SSqlObj *pSql) { const static int64_t SLOW_QUERY_INTERVAL = 3000000L; if (pSql->res.useconds < SLOW_QUERY_INTERVAL) return; - tscTrace("%p query time:%ld sql:%s", pSql, pSql->res.useconds, pSql->sqlstr); + tscTrace("%p query time:%lld sql:%s", pSql, pSql->res.useconds, pSql->sqlstr); char *sql = malloc(200); int len = snprintf(sql, 200, "insert into %s.slowquery values(now, '%s', %lld, %lld, '", tsMonitorDbName, diff --git a/src/system/detail/src/vnodeRead.c b/src/system/detail/src/vnodeRead.c index 3e580b747f..f35567e720 100644 --- a/src/system/detail/src/vnodeRead.c +++ b/src/system/detail/src/vnodeRead.c @@ -866,7 +866,8 @@ int vnodeSaveQueryResult(void *handle, char *data, int32_t *size) { pQInfo->pointsRead); if (pQInfo->over == 0) { - dTrace("QInfo:%p set query flag, oldSig:%p, func:%s", pQInfo, pQInfo->signature, __FUNCTION__); + //dTrace("QInfo:%p set query flag, oldSig:%p, func:%s", pQInfo, pQInfo->signature, __FUNCTION__); + dTrace("QInfo:%p set query flag, oldSig:%p", pQInfo, pQInfo->signature); uint64_t oldSignature = TSDB_QINFO_SET_QUERY_FLAG(pQInfo); /* From 85c644ae6652d3d189e56a1818d97e94009b6348 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 10:56:53 +0800 Subject: [PATCH 02/14] [TBASE-816] --- CMakeLists.txt | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dcad242a30..ff5da13254 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,8 +38,9 @@ IF (NOT DEFINED TD_CLUSTER) # Set macro definitions according to os platform SET(TD_LINUX_64 FALSE) SET(TD_LINUX_32 FALSE) - SET(TD_ARM_64 FALSE) - SET(TD_ARM_32 FALSE) + SET(_TD_ARM_ FALSE) + SET(_TD_ARM_64 FALSE) + SET(_TD_ARM_32 FALSE) SET(TD_MIPS_64 FALSE) SET(TD_DARWIN_64 FALSE) SET(TD_WINDOWS_64 FALSE) @@ -50,9 +51,18 @@ 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") - ELSE () + ELSEIF (${CMAKE_SIZEOF_VOID_P} MATCHES 4) + IF (_TD_ARM_) SET(TD_LINUX_32 TRUE) - MESSAGE(FATAL_ERROR "The current platform is Linux 32-bit, not supported yet") + 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 neither 32-bit nor 64-bit, not supported yet") EXIT () ENDIF () ELSEIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") @@ -102,13 +112,27 @@ IF (NOT DEFINED TD_CLUSTER) IF (TD_LINUX_64) SET(DEBUG_FLAGS "-O0 -DDEBUG") SET(RELEASE_FLAGS "-O0") - IF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -malign-double -g -Wno-char-subscripts -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") + IF (NOT _TD_ARM_) + IF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -malign-double -g -Wno-char-subscripts -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") + ELSE () + SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -malign-double -g -Wno-char-subscripts -malign-stringops -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") + ENDIF () ELSE () - SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -malign-double -g -Wno-char-subscripts -malign-stringops -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") + SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -g -Wno-char-subscripts -fsigned-char -munaligned-access -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") ENDIF () ADD_DEFINITIONS(-DLINUX) ADD_DEFINITIONS(-D_REENTRANT -D__USE_POSIX -D_LIBC_REENTRANT) + ELSEIF (TD_LINUX_32) + IF (NOT _TD_ARM_) + EXIT () + ENDIF () + SET(DEBUG_FLAGS "-O0 -DDEBUG") + SET(RELEASE_FLAGS "-O0") + SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -g -Wno-char-subscripts -fsigned-char -munaligned-access -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") + ADD_DEFINITIONS(-DLINUX) + ADD_DEFINITIONS(-D_REENTRANT -D__USE_POSIX -D_LIBC_REENTRANT) + ADD_DEFINITIONS(-DUSE_LIBICONV) ELSEIF (TD_WINDOWS_64) SET(CMAKE_GENERATOR "NMake Makefiles" CACHE INTERNAL "" FORCE) SET(COMMON_FLAGS "/nologo /WX- /Oi /Oy- /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Gd /errorReport:prompt /analyze-") @@ -169,6 +193,14 @@ IF (NOT DEFINED TD_CLUSTER) INSTALL(CODE "MESSAGE(\"make install script: ${TD_MAKE_INSTALL_SH}\")") INSTALL(CODE "execute_process(COMMAND chmod 777 ${TD_MAKE_INSTALL_SH})") INSTALL(CODE "execute_process(COMMAND ${TD_MAKE_INSTALL_SH} ${TD_COMMUNITY_DIR} ${PROJECT_BINARY_DIR})") + ELSEIF (TD_LINUX_32) + IF (NOT _TD_ARM_) + EXIT () + ENDIF () + SET(TD_MAKE_INSTALL_SH "${TD_COMMUNITY_DIR}/packaging/tools/make_install.sh") + INSTALL(CODE "MESSAGE(\"make install script: ${TD_MAKE_INSTALL_SH}\")") + INSTALL(CODE "execute_process(COMMAND chmod 777 ${TD_MAKE_INSTALL_SH})") + INSTALL(CODE "execute_process(COMMAND ${TD_MAKE_INSTALL_SH} ${TD_COMMUNITY_DIR} ${PROJECT_BINARY_DIR})") ELSEIF (TD_WINDOWS_64) SET(CMAKE_INSTALL_PREFIX C:/TDengine) INSTALL(DIRECTORY ${TD_COMMUNITY_DIR}/src/connector/go DESTINATION connector) From 15cb828bea3257d2222acebb02653351aaea38bd Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 11:11:25 +0800 Subject: [PATCH 03/14] [TBASE-816] --- src/client/CMakeLists.txt | 2 +- src/kit/shell/CMakeLists.txt | 2 +- src/kit/taosdemo/CMakeLists.txt | 2 +- src/kit/taosdump/CMakeLists.txt | 2 +- src/modules/http/CMakeLists.txt | 2 +- src/modules/monitor/CMakeLists.txt | 2 +- src/os/linux/CMakeLists.txt | 2 +- src/rpc/CMakeLists.txt | 2 +- src/sdb/CMakeLists.txt | 4 ++-- src/system/detail/CMakeLists.txt | 2 +- src/system/lite/CMakeLists.txt | 2 +- src/util/CMakeLists.txt | 2 +- src/util/src/version.c | 4 ++-- 13 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 3bb2f74868..de03125438 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -7,7 +7,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) AUX_SOURCE_DIRECTORY(./src SRC) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/linux) # set the static lib name diff --git a/src/kit/shell/CMakeLists.txt b/src/kit/shell/CMakeLists.txt index 20aa0c9d31..96dcec64c8 100644 --- a/src/kit/shell/CMakeLists.txt +++ b/src/kit/shell/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(./src SRC) LIST(REMOVE_ITEM SRC ./src/shellWindows.c) ADD_EXECUTABLE(shell ${SRC}) diff --git a/src/kit/taosdemo/CMakeLists.txt b/src/kit/taosdemo/CMakeLists.txt index 38a28e3079..5384fce62d 100644 --- a/src/kit/taosdemo/CMakeLists.txt +++ b/src/kit/taosdemo/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(. SRC) ADD_EXECUTABLE(taosdemo ${SRC}) TARGET_LINK_LIBRARIES(taosdemo taos_static) diff --git a/src/kit/taosdump/CMakeLists.txt b/src/kit/taosdump/CMakeLists.txt index 2bcc020654..49940add9a 100644 --- a/src/kit/taosdump/CMakeLists.txt +++ b/src/kit/taosdump/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(. SRC) ADD_EXECUTABLE(taosdump ${SRC}) TARGET_LINK_LIBRARIES(taosdump taos_static) diff --git a/src/modules/http/CMakeLists.txt b/src/modules/http/CMakeLists.txt index 911c5a3515..4805271d66 100644 --- a/src/modules/http/CMakeLists.txt +++ b/src/modules/http/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/zlib-1.2.11/inc) diff --git a/src/modules/monitor/CMakeLists.txt b/src/modules/monitor/CMakeLists.txt index ff8ddb1c2d..baa5e6218c 100644 --- a/src/modules/monitor/CMakeLists.txt +++ b/src/modules/monitor/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) diff --git a/src/os/linux/CMakeLists.txt b/src/os/linux/CMakeLists.txt index 8a4cc56f72..14e7e06b23 100644 --- a/src/os/linux/CMakeLists.txt +++ b/src/os/linux/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(inc) AUX_SOURCE_DIRECTORY(src SRC) diff --git a/src/rpc/CMakeLists.txt b/src/rpc/CMakeLists.txt index b3a761e3df..febb3eb83f 100644 --- a/src/rpc/CMakeLists.txt +++ b/src/rpc/CMakeLists.txt @@ -5,7 +5,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(./src SRC) ELSEIF (TD_DARWIN_64) LIST(APPEND SRC ./src/thaship.c) diff --git a/src/sdb/CMakeLists.txt b/src/sdb/CMakeLists.txt index 76b407fded..08cdb4baef 100644 --- a/src/sdb/CMakeLists.txt +++ b/src/sdb/CMakeLists.txt @@ -5,11 +5,11 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(src SRC) ADD_LIBRARY(sdb ${SRC}) TARGET_LINK_LIBRARIES(sdb trpc) IF (TD_CLUSTER) TARGET_LINK_LIBRARIES(sdb sdb_cluster) ENDIF () -ENDIF () \ No newline at end of file +ENDIF () diff --git a/src/system/detail/CMakeLists.txt b/src/system/detail/CMakeLists.txt index 9233d6c71b..16468e7984 100644 --- a/src/system/detail/CMakeLists.txt +++ b/src/system/detail/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/modules/http/inc) diff --git a/src/system/lite/CMakeLists.txt b/src/system/lite/CMakeLists.txt index 965f7666b0..e9257b2388 100644 --- a/src/system/lite/CMakeLists.txt +++ b/src/system/lite/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/modules/http/inc) diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 7e54759f7e..b36ae3a4b5 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -4,7 +4,7 @@ PROJECT(TDengine) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) -IF (TD_LINUX_64) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) AUX_SOURCE_DIRECTORY(src SRC) ADD_LIBRARY(tutil ${SRC}) TARGET_LINK_LIBRARIES(tutil pthread os m rt) diff --git a/src/util/src/version.c b/src/util/src/version.c index dc2c3c5480..96e7ad4ead 100644 --- a/src/util/src/version.c +++ b/src/util/src/version.c @@ -1,4 +1,4 @@ char version[64] = "1.6.4.0"; char compatible_version[64] = "1.6.1.0"; -char gitinfo[128] = "869171d2331eb25ba0901e88d33ae627bf5a9d91"; -char buildinfo[512] = "Built by ubuntu at 2019-11-07 22:31"; +char gitinfo[128] = "d04354a8ac2f7dd9ba521d755e5d484a203783d9"; +char buildinfo[512] = "Built by root at 2019-11-11 10:23"; From 1f78d9b859c26daf5127bae0c790ff83208af38f Mon Sep 17 00:00:00 2001 From: localvar Date: Mon, 11 Nov 2019 03:28:55 +0000 Subject: [PATCH 04/14] make(rollback) max timer controller number to 512 and make it configurable. --- src/inc/tglobalcfg.h | 2 ++ src/inc/ttimer.h | 2 +- src/util/src/tglobalcfg.c | 5 +++++ src/util/src/ttimer.c | 21 ++++++++++++++++----- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/inc/tglobalcfg.h b/src/inc/tglobalcfg.h index e83c89593f..026d48ba08 100644 --- a/src/inc/tglobalcfg.h +++ b/src/inc/tglobalcfg.h @@ -169,6 +169,8 @@ extern uint32_t debugFlag; extern uint32_t odbcdebugFlag; extern uint32_t qdebugFlag; +extern uint32_t taosMaxTmrCtrl; + extern int tsRpcTimer; extern int tsRpcMaxTime; extern int tsUdpDelay; diff --git a/src/inc/ttimer.h b/src/inc/ttimer.h index 5424881e26..b9bbbb04dd 100644 --- a/src/inc/ttimer.h +++ b/src/inc/ttimer.h @@ -25,6 +25,7 @@ typedef void (*TAOS_TMR_CALLBACK)(void *, void *); extern uint32_t tmrDebugFlag; extern int taosTmrThreads; +extern uint32_t taosMaxTmrCtrl; #define tmrError(...) \ do { if (tmrDebugFlag & DEBUG_ERROR) { \ @@ -41,7 +42,6 @@ extern int taosTmrThreads; tprintf("TMR ", tmrDebugFlag, __VA_ARGS__); \ } } while(0) -#define MAX_NUM_OF_TMRCTL 512 #define MSECONDS_PER_TICK 5 void *taosTmrInit(int maxTmr, int resoultion, int longest, const char *label); diff --git a/src/util/src/tglobalcfg.c b/src/util/src/tglobalcfg.c index 9abe60220f..586f329001 100644 --- a/src/util/src/tglobalcfg.c +++ b/src/util/src/tglobalcfg.c @@ -536,6 +536,11 @@ void tsInitGlobalConfig() { 0, 2, 0, TSDB_CFG_UTYPE_NONE); // 0-any, 1-mgmt, 2-dnode + // timer + tsInitConfigOption(cfg++, "maxTmrCtrl", &taosMaxTmrCtrl, TSDB_CFG_VTYPE_INT, + TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLUSTER, + 8, 2048, 0, TSDB_CFG_UTYPE_NONE); + // time tsInitConfigOption(cfg++, "monitorInterval", &tsMonitorInterval, TSDB_CFG_VTYPE_INT, TSDB_CFG_CTYPE_B_CONFIG, diff --git a/src/util/src/ttimer.c b/src/util/src/ttimer.c index 798e63a64a..e6d98a3734 100644 --- a/src/util/src/ttimer.c +++ b/src/util/src/ttimer.c @@ -82,13 +82,16 @@ typedef struct time_wheel_t { } time_wheel_t; uint32_t tmrDebugFlag = DEBUG_ERROR | DEBUG_WARN | DEBUG_FILE; +uint32_t taosMaxTmrCtrl = 512; static pthread_once_t tmrModuleInit = PTHREAD_ONCE_INIT; static pthread_mutex_t tmrCtrlMutex; -static tmr_ctrl_t tmrCtrls[MAX_NUM_OF_TMRCTL]; +static tmr_ctrl_t* tmrCtrls; static tmr_ctrl_t* unusedTmrCtrl = NULL; -void* tmrQhandle; -int taosTmrThreads = 1; +static void* tmrQhandle; +static int numOfTmrCtrl = 0; + +int taosTmrThreads = 1; static uintptr_t nextTimerId = 0; @@ -481,7 +484,13 @@ bool taosTmrReset(TAOS_TMR_CALLBACK fp, int mseconds, void* param, void* handle, } static void taosTmrModuleInit(void) { - for (int i = 0; i < tListLen(tmrCtrls) - 1; ++i) { + tmrCtrls = malloc(sizeof(tmr_ctrl_t) * taosMaxTmrCtrl); + if (tmrCtrls == NULL) { + tmrError("failed to allocate memory for timer controllers."); + return; + } + + for (int i = 0; i < taosMaxTmrCtrl - 1; ++i) { tmr_ctrl_t* ctrl = tmrCtrls + i; ctrl->next = ctrl + 1; } @@ -526,6 +535,7 @@ void* taosTmrInit(int maxNumOfTmrs, int resolution, int longest, const char* lab tmr_ctrl_t* ctrl = unusedTmrCtrl; if (ctrl != NULL) { unusedTmrCtrl = ctrl->next; + numOfTmrCtrl++; } pthread_mutex_unlock(&tmrCtrlMutex); @@ -536,7 +546,7 @@ void* taosTmrInit(int maxNumOfTmrs, int resolution, int longest, const char* lab strncpy(ctrl->label, label, sizeof(ctrl->label)); ctrl->label[sizeof(ctrl->label) - 1] = 0; - tmrTrace("timer controller[label=%s] is initialized.", label); + tmrTrace("timer controller[label=%s] is initialized, number of timer controllers: %d.", label, numOfTmrCtrl); return ctrl; } @@ -549,6 +559,7 @@ void taosTmrCleanUp(void* handle) { pthread_mutex_lock(&tmrCtrlMutex); ctrl->next = unusedTmrCtrl; + numOfTmrCtrl--; unusedTmrCtrl = ctrl; pthread_mutex_unlock(&tmrCtrlMutex); } From 48c60fd01a86373e5c656186c5235b22763bfa88 Mon Sep 17 00:00:00 2001 From: localvar Date: Mon, 11 Nov 2019 04:08:14 +0000 Subject: [PATCH 05/14] update timer log format --- src/util/src/ttimer.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/util/src/ttimer.c b/src/util/src/ttimer.c index e6d98a3734..97e2189153 100644 --- a/src/util/src/ttimer.c +++ b/src/util/src/ttimer.c @@ -132,7 +132,7 @@ static void unlockTimerList(timer_list_t* list) { int64_t tid = taosGetPthreadId(); if (__sync_val_compare_and_swap_64(&(list->lockedBy), tid, 0) != tid) { assert(false); - tmrError("trying to unlock a timer list not locked by current thread."); + tmrError("%d trying to unlock a timer list not locked by current thread.", tid); } } @@ -259,13 +259,13 @@ static void processExpiredTimer(void* handle, void* arg) { timer->executedBy = taosGetPthreadId(); uint8_t state = __sync_val_compare_and_swap_8(&timer->state, TIMER_STATE_WAITING, TIMER_STATE_EXPIRED); if (state == TIMER_STATE_WAITING) { - const char* fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] execution start."; + const char* fmt = "%s timer[id=%lld, fp=%p, param=%p] execution start."; tmrTrace(fmt, timer->ctrl->label, timer->id, timer->fp, timer->param); (*timer->fp)(timer->param, (tmr_h)timer->id); atomic_store_8(&timer->state, TIMER_STATE_STOPPED); - fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] execution end."; + fmt = "%s timer[id=%lld, fp=%p, param=%p] execution end."; tmrTrace(fmt, timer->ctrl->label, timer->id, timer->fp, timer->param); } removeTimer(timer->id); @@ -273,18 +273,21 @@ static void processExpiredTimer(void* handle, void* arg) { } static void addToExpired(tmr_obj_t* head) { - const char* fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] expired"; + const char* fmt = "%s adding expired timer[id=%lld, fp=%p, param=%p] to queue."; while (head != NULL) { - tmrTrace(fmt, head->ctrl->label, head->id, head->fp, head->param); - + uintptr_t id = head->id; tmr_obj_t* next = head->next; + tmrTrace(fmt, head->ctrl->label, id, head->fp, head->param); + SSchedMsg schedMsg; schedMsg.fp = NULL; schedMsg.tfp = processExpiredTimer; schedMsg.ahandle = head; schedMsg.thandle = NULL; taosScheduleTask(tmrQhandle, &schedMsg); + + tmrTrace("timer[id=%lld] has been added to queue.", id); head = next; } } @@ -298,7 +301,7 @@ static uintptr_t doStartTimer(tmr_obj_t* timer, TAOS_TMR_CALLBACK fp, int msecon timer->ctrl = ctrl; addTimer(timer); - const char* fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] started"; + const char* fmt = "%s timer[id=%lld, fp=%p, param=%p] started"; tmrTrace(fmt, ctrl->label, timer->id, timer->fp, timer->param); if (mseconds == 0) { @@ -321,7 +324,7 @@ tmr_h taosTmrStart(TAOS_TMR_CALLBACK fp, int mseconds, void* param, void* handle tmr_obj_t* timer = (tmr_obj_t*)calloc(1, sizeof(tmr_obj_t)); if (timer == NULL) { - tmrError("failed to allocated memory for new timer object."); + tmrError("%s failed to allocated memory for new timer object.", ctrl->label); return NULL; } @@ -392,7 +395,7 @@ static bool doStopTimer(tmr_obj_t* timer, uint8_t state) { // we cannot guarantee the thread safety of the timr in all other cases. reusable = true; } - const char* fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] is cancelled."; + const char* fmt = "%s timer[id=%lld, fp=%p, param=%p] is cancelled."; tmrTrace(fmt, timer->ctrl->label, timer->id, timer->fp, timer->param); } else if (state != TIMER_STATE_EXPIRED) { // timer already stopped or cancelled, has nothing to do in this case @@ -403,7 +406,7 @@ static bool doStopTimer(tmr_obj_t* timer, uint8_t state) { } else { assert(timer->executedBy != taosGetPthreadId()); - const char* fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] fired, waiting..."; + const char* fmt = "%s timer[id=%lld, fp=%p, param=%p] fired, waiting..."; tmrTrace(fmt, timer->ctrl->label, timer->id, timer->fp, timer->param); for (int i = 1; atomic_load_8(&timer->state) != TIMER_STATE_STOPPED; i++) { @@ -412,7 +415,7 @@ static bool doStopTimer(tmr_obj_t* timer, uint8_t state) { } } - fmt = "timer[label=%s, id=%lld, fp=%p, param=%p] stopped."; + fmt = "%s timer[id=%lld, fp=%p, param=%p] stopped."; tmrTrace(fmt, timer->ctrl->label, timer->id, timer->fp, timer->param); } @@ -451,7 +454,7 @@ bool taosTmrReset(TAOS_TMR_CALLBACK fp, int mseconds, void* param, void* handle, bool stopped = false; tmr_obj_t* timer = findTimer(id); if (timer == NULL) { - tmrTrace("timer[id=%lld] does not exist", id); + tmrTrace("%s timer[id=%lld] does not exist", ctrl->label, id); } else { uint8_t state = __sync_val_compare_and_swap_8(&timer->state, TIMER_STATE_WAITING, TIMER_STATE_CANCELED); if (!doStopTimer(timer, state)) { @@ -466,7 +469,7 @@ bool taosTmrReset(TAOS_TMR_CALLBACK fp, int mseconds, void* param, void* handle, return stopped; } - tmrTrace("timer[id=%lld] is reused", timer->id); + tmrTrace("%s timer[id=%lld] is reused", ctrl->label, timer->id); // wait until there's no other reference to this timer, // so that we can reuse this timer safely. @@ -540,13 +543,13 @@ void* taosTmrInit(int maxNumOfTmrs, int resolution, int longest, const char* lab pthread_mutex_unlock(&tmrCtrlMutex); if (ctrl == NULL) { - tmrError("too many timer controllers, failed to create timer controller[label=%s].", label); + tmrError("%s too many timer controllers, failed to create timer controller.", label); return NULL; } strncpy(ctrl->label, label, sizeof(ctrl->label)); ctrl->label[sizeof(ctrl->label) - 1] = 0; - tmrTrace("timer controller[label=%s] is initialized, number of timer controllers: %d.", label, numOfTmrCtrl); + tmrTrace("%s timer controller is initialized, number of timer controllers: %d.", label, numOfTmrCtrl); return ctrl; } @@ -554,7 +557,7 @@ void taosTmrCleanUp(void* handle) { tmr_ctrl_t* ctrl = (tmr_ctrl_t*)handle; assert(ctrl != NULL && ctrl->label[0] != 0); - tmrTrace("timer controller[label=%s] is cleaned up.", ctrl->label); + tmrTrace("%s timer controller is cleaned up.", ctrl->label); ctrl->label[0] = 0; pthread_mutex_lock(&tmrCtrlMutex); From db26cf1e8e54b9d6f7cf22324603453d33591d69 Mon Sep 17 00:00:00 2001 From: liu0x54 Date: Mon, 11 Nov 2019 12:39:48 +0800 Subject: [PATCH 06/14] [TBASE-1047] Go connector prints all the SQL. This will harm the performance and consume unnecessary hard disk space. Modified to print only the SQLs which returns error. --- src/connector/go/src/taosSql/taosSqlCgo.go | 57 +++++++++++----------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/connector/go/src/taosSql/taosSqlCgo.go b/src/connector/go/src/taosSql/taosSqlCgo.go index e240ac44ec..fcef14045f 100755 --- a/src/connector/go/src/taosSql/taosSqlCgo.go +++ b/src/connector/go/src/taosSql/taosSqlCgo.go @@ -29,46 +29,47 @@ import ( "unsafe" ) -func (mc *taosConn) taosConnect(ip, user, pass, db string, port int) (taos unsafe.Pointer, err error){ +func (mc *taosConn) taosConnect(ip, user, pass, db string, port int) (taos unsafe.Pointer, err error) { cuser := C.CString(user) cpass := C.CString(pass) - cip := C.CString(ip) - cdb := C.CString(db) + cip := C.CString(ip) + cdb := C.CString(db) defer C.free(unsafe.Pointer(cip)) defer C.free(unsafe.Pointer(cuser)) defer C.free(unsafe.Pointer(cpass)) defer C.free(unsafe.Pointer(cdb)) taosObj := C.taos_connect(cip, cuser, cpass, cdb, (C.int)(port)) - if taosObj == nil { - return nil, errors.New("taos_connect() fail!") - } + if taosObj == nil { + return nil, errors.New("taos_connect() fail!") + } - return (unsafe.Pointer)(taosObj), nil -} + return (unsafe.Pointer)(taosObj), nil +} func (mc *taosConn) taosQuery(sqlstr string) (int, error) { - taosLog.Printf("taosQuery() input sql:%s\n", sqlstr) + //taosLog.Printf("taosQuery() input sql:%s\n", sqlstr) - csqlstr := C.CString(sqlstr) + csqlstr := C.CString(sqlstr) defer C.free(unsafe.Pointer(csqlstr)) - code := int(C.taos_query(mc.taos, csqlstr)) + code := int(C.taos_query(mc.taos, csqlstr)) - if 0 != code { - mc.taos_error() - errStr := C.GoString(C.taos_errstr(mc.taos)) - taosLog.Println("taos_query() failed:", errStr) - return 0, errors.New(errStr) - } + if 0 != code { + mc.taos_error() + errStr := C.GoString(C.taos_errstr(mc.taos)) + taosLog.Println("taos_query() failed:", errStr) + taosLog.Printf("taosQuery() input sql:%s\n", sqlstr) + return 0, errors.New(errStr) + } - // read result and save into mc struct - num_fields := int(C.taos_field_count(mc.taos)) - if 0 == num_fields { // there are no select and show kinds of commands - mc.affectedRows = int(C.taos_affected_rows(mc.taos)) - mc.insertId = 0 - } + // read result and save into mc struct + num_fields := int(C.taos_field_count(mc.taos)) + if 0 == num_fields { // there are no select and show kinds of commands + mc.affectedRows = int(C.taos_affected_rows(mc.taos)) + mc.insertId = 0 + } - return num_fields, nil + return num_fields, nil } func (mc *taosConn) taos_close() { @@ -76,8 +77,8 @@ func (mc *taosConn) taos_close() { } func (mc *taosConn) taos_error() { - // free local resouce: allocated memory/metric-meta refcnt - //var pRes unsafe.Pointer - pRes := C.taos_use_result(mc.taos) - C.taos_free_result(pRes) + // free local resouce: allocated memory/metric-meta refcnt + //var pRes unsafe.Pointer + pRes := C.taos_use_result(mc.taos) + C.taos_free_result(pRes) } From 2a11363e0c57af6e4060a0072283cd1736259078 Mon Sep 17 00:00:00 2001 From: slguan Date: Mon, 11 Nov 2019 13:04:09 +0800 Subject: [PATCH 07/14] [TBASE-1060] --- src/client/src/tscProfile.c | 45 ++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/src/client/src/tscProfile.c b/src/client/src/tscProfile.c index 770e61e278..b6de98e712 100644 --- a/src/client/src/tscProfile.c +++ b/src/client/src/tscProfile.c @@ -23,6 +23,27 @@ #include "ttimer.h" #include "tutil.h" +void tscSaveSlowQueryFp(void *handle, void *tmrId); +void *tscSlowQueryConn = NULL; +bool tscSlowQueryConnInitialized = false; +TAOS *taos_connect_a(char *ip, char *user, char *pass, char *db, int port, void (*fp)(void *, TAOS_RES *, int), + void *param, void **taos); + +void tscInitConnCb(void *param, TAOS_RES *result, int code) { + char *sql = param; + if (code < 0) { + tscError("taos:%p, slow query connect failed, code:%d", tscSlowQueryConn, code); + taos_close(tscSlowQueryConn); + tscSlowQueryConn = NULL; + tscSlowQueryConnInitialized = false; + free(sql); + } else { + tscTrace("taos:%p, slow query connect success, code:%d", tscSlowQueryConn, code); + tscSlowQueryConnInitialized = true; + tscSaveSlowQueryFp(sql, NULL); + } +} + void tscAddIntoSqlList(SSqlObj *pSql) { static uint32_t queryId = 1; @@ -47,26 +68,28 @@ void tscAddIntoSqlList(SSqlObj *pSql) { void tscSaveSlowQueryFpCb(void *param, TAOS_RES *result, int code) { if (code < 0) { - tscError("failed to save slowquery, code:%d", code); + tscError("failed to save slow query, code:%d", code); + } else { + tscTrace("success to save slow query, code:%d", code); } } void tscSaveSlowQueryFp(void *handle, void *tmrId) { char *sql = handle; - static void *taos = NULL; - if (taos == NULL) { - taos = taos_connect(NULL, "monitor", tsInternalPass, NULL, 0); - if (taos == NULL) { - tscError("failed to save slow query, can't connect to server"); + if (!tscSlowQueryConnInitialized) { + if (tscSlowQueryConn == NULL) { + tscTrace("start to init slow query connect"); + taos_connect_a(NULL, "monitor", tsInternalPass, "", 0, tscInitConnCb, sql, &tscSlowQueryConn); + } else { + tscError("taos:%p, slow query connect is already initialized", tscSlowQueryConn); free(sql); - return; } + } else { + tscTrace("taos:%p, save slow query:%s", tscSlowQueryConn, sql); + taos_query_a(tscSlowQueryConn, sql, tscSaveSlowQueryFpCb, NULL); + free(sql); } - - tscTrace("save slow query:sql", sql); - taos_query_a(taos, sql, tscSaveSlowQueryFpCb, NULL); - free(sql); } void tscSaveSlowQuery(SSqlObj *pSql) { From ee112120ffe39f3260a57e5776e573fd095e163f Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 14:18:31 +0800 Subject: [PATCH 08/14] [TBASE-816] --- CMakeLists.txt | 18 +++++++++++------- src/client/CMakeLists.txt | 2 +- src/kit/shell/CMakeLists.txt | 2 +- src/kit/taosdemo/CMakeLists.txt | 2 +- src/kit/taosdump/CMakeLists.txt | 2 +- src/modules/http/CMakeLists.txt | 2 +- src/modules/monitor/CMakeLists.txt | 2 +- src/os/linux/CMakeLists.txt | 2 +- src/rpc/CMakeLists.txt | 2 +- src/sdb/CMakeLists.txt | 2 +- src/system/detail/CMakeLists.txt | 2 +- src/system/lite/CMakeLists.txt | 2 +- src/util/CMakeLists.txt | 2 +- src/util/src/tcrc32c.c | 2 +- 14 files changed, 24 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ff5da13254..9a3a406cc3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,12 +38,16 @@ IF (NOT DEFINED TD_CLUSTER) # Set macro definitions according to os platform SET(TD_LINUX_64 FALSE) SET(TD_LINUX_32 FALSE) - SET(_TD_ARM_ FALSE) - SET(_TD_ARM_64 FALSE) - SET(_TD_ARM_32 FALSE) + SET(TD_ARM FALSE) + SET(TD_ARM_64 FALSE) + SET(TD_ARM_32 FALSE) SET(TD_MIPS_64 FALSE) SET(TD_DARWIN_64 FALSE) SET(TD_WINDOWS_64 FALSE) + + IF (TD_ARM) + ADD_DEFINITIONS(-D_TD_ARM_) + ENDIF () IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux") IF (${CMAKE_SIZEOF_VOID_P} MATCHES 8) @@ -52,7 +56,7 @@ IF (NOT DEFINED TD_CLUSTER) ADD_DEFINITIONS(-D_M_X64) MESSAGE(STATUS "The current platform is Linux 64-bit") ELSEIF (${CMAKE_SIZEOF_VOID_P} MATCHES 4) - IF (_TD_ARM_) + IF (TD_ARM) SET(TD_LINUX_32 TRUE) SET(TD_OS_DIR ${TD_COMMUNITY_DIR}/src/os/linux) #ADD_DEFINITIONS(-D_M_IX86) @@ -112,7 +116,7 @@ IF (NOT DEFINED TD_CLUSTER) IF (TD_LINUX_64) SET(DEBUG_FLAGS "-O0 -DDEBUG") SET(RELEASE_FLAGS "-O0") - IF (NOT _TD_ARM_) + IF (NOT TD_ARM) IF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") SET(COMMON_FLAGS "-std=gnu99 -Wall -fPIC -malign-double -g -Wno-char-subscripts -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE") ELSE () @@ -124,7 +128,7 @@ IF (NOT DEFINED TD_CLUSTER) ADD_DEFINITIONS(-DLINUX) ADD_DEFINITIONS(-D_REENTRANT -D__USE_POSIX -D_LIBC_REENTRANT) ELSEIF (TD_LINUX_32) - IF (NOT _TD_ARM_) + IF (NOT TD_ARM) EXIT () ENDIF () SET(DEBUG_FLAGS "-O0 -DDEBUG") @@ -194,7 +198,7 @@ IF (NOT DEFINED TD_CLUSTER) INSTALL(CODE "execute_process(COMMAND chmod 777 ${TD_MAKE_INSTALL_SH})") INSTALL(CODE "execute_process(COMMAND ${TD_MAKE_INSTALL_SH} ${TD_COMMUNITY_DIR} ${PROJECT_BINARY_DIR})") ELSEIF (TD_LINUX_32) - IF (NOT _TD_ARM_) + IF (NOT TD_ARM) EXIT () ENDIF () SET(TD_MAKE_INSTALL_SH "${TD_COMMUNITY_DIR}/packaging/tools/make_install.sh") diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index de03125438..d3baf84d67 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -7,7 +7,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) AUX_SOURCE_DIRECTORY(./src SRC) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/linux) # set the static lib name diff --git a/src/kit/shell/CMakeLists.txt b/src/kit/shell/CMakeLists.txt index 96dcec64c8..7442367e91 100644 --- a/src/kit/shell/CMakeLists.txt +++ b/src/kit/shell/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(./src SRC) LIST(REMOVE_ITEM SRC ./src/shellWindows.c) ADD_EXECUTABLE(shell ${SRC}) diff --git a/src/kit/taosdemo/CMakeLists.txt b/src/kit/taosdemo/CMakeLists.txt index 5384fce62d..599875fa60 100644 --- a/src/kit/taosdemo/CMakeLists.txt +++ b/src/kit/taosdemo/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(. SRC) ADD_EXECUTABLE(taosdemo ${SRC}) TARGET_LINK_LIBRARIES(taosdemo taos_static) diff --git a/src/kit/taosdump/CMakeLists.txt b/src/kit/taosdump/CMakeLists.txt index 49940add9a..76b40d1c2d 100644 --- a/src/kit/taosdump/CMakeLists.txt +++ b/src/kit/taosdump/CMakeLists.txt @@ -6,7 +6,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(. SRC) ADD_EXECUTABLE(taosdump ${SRC}) TARGET_LINK_LIBRARIES(taosdump taos_static) diff --git a/src/modules/http/CMakeLists.txt b/src/modules/http/CMakeLists.txt index 4805271d66..d8dccb526a 100644 --- a/src/modules/http/CMakeLists.txt +++ b/src/modules/http/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/zlib-1.2.11/inc) diff --git a/src/modules/monitor/CMakeLists.txt b/src/modules/monitor/CMakeLists.txt index baa5e6218c..44ac8aae0b 100644 --- a/src/modules/monitor/CMakeLists.txt +++ b/src/modules/monitor/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) diff --git a/src/os/linux/CMakeLists.txt b/src/os/linux/CMakeLists.txt index 14e7e06b23..a702cac759 100644 --- a/src/os/linux/CMakeLists.txt +++ b/src/os/linux/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(inc) AUX_SOURCE_DIRECTORY(src SRC) diff --git a/src/rpc/CMakeLists.txt b/src/rpc/CMakeLists.txt index febb3eb83f..8d54d5fda5 100644 --- a/src/rpc/CMakeLists.txt +++ b/src/rpc/CMakeLists.txt @@ -5,7 +5,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(./src SRC) ELSEIF (TD_DARWIN_64) LIST(APPEND SRC ./src/thaship.c) diff --git a/src/sdb/CMakeLists.txt b/src/sdb/CMakeLists.txt index 08cdb4baef..6b29eefde6 100644 --- a/src/sdb/CMakeLists.txt +++ b/src/sdb/CMakeLists.txt @@ -5,7 +5,7 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(src SRC) ADD_LIBRARY(sdb ${SRC}) TARGET_LINK_LIBRARIES(sdb trpc) diff --git a/src/system/detail/CMakeLists.txt b/src/system/detail/CMakeLists.txt index 16468e7984..95cce3dfe6 100644 --- a/src/system/detail/CMakeLists.txt +++ b/src/system/detail/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/modules/http/inc) diff --git a/src/system/lite/CMakeLists.txt b/src/system/lite/CMakeLists.txt index e9257b2388..a22ed60563 100644 --- a/src/system/lite/CMakeLists.txt +++ b/src/system/lite/CMakeLists.txt @@ -1,7 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/modules/http/inc) diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index b36ae3a4b5..e73428353e 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -4,7 +4,7 @@ PROJECT(TDengine) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND _TD_ARM_)) +IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) AUX_SOURCE_DIRECTORY(src SRC) ADD_LIBRARY(tutil ${SRC}) TARGET_LINK_LIBRARIES(tutil pthread os m rt) diff --git a/src/util/src/tcrc32c.c b/src/util/src/tcrc32c.c index 88841bcbc9..705ca5872a 100644 --- a/src/util/src/tcrc32c.c +++ b/src/util/src/tcrc32c.c @@ -1353,7 +1353,7 @@ uint32_t crc32c_hw(uint32_t crc, crc_stream buf, size_t len) { #endif // #ifndef _TD_ARM_ void taosResolveCRC() { -#ifndef _TD_ARM_32 +#ifndef _TD_ARM_ int sse42; SSE42(sse42); crc32c = sse42 ? crc32c_hw : crc32c_sf; From 96289dc358bc7fc6ae9af47ba93d5502c849be90 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 14:44:10 +0800 Subject: [PATCH 09/14] [TBASE-816] --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a3a406cc3..fd361ae974 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,9 @@ IF (NOT DEFINED TD_CLUSTER) IF (TD_ARM) ADD_DEFINITIONS(-D_TD_ARM_) + IF (TD_ARM_32) + ADD_DEFINITIONS(-D_TD_ARM_32_) + ENDIF () ENDIF () IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux") From 27a508b7f960f8488fdda21c252edc7c30c1f82c Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 14:49:18 +0800 Subject: [PATCH 10/14] [TBASE-816] --- src/kit/shell/src/shellEngine.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/kit/shell/src/shellEngine.c b/src/kit/shell/src/shellEngine.c index 324dde55d1..12c844d00d 100644 --- a/src/kit/shell/src/shellEngine.c +++ b/src/kit/shell/src/shellEngine.c @@ -445,7 +445,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { case TSDB_DATA_TYPE_BIGINT: printf("%*lld|", l[i], *((int64_t *)row[i])); break; - case TSDB_DATA_TYPE_FLOAT: + case TSDB_DATA_TYPE_FLOAT: { #ifdef _TD_ARM_32_ float fv = 0; //memcpy(&fv, row[i], sizeof(float)); @@ -454,8 +454,9 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else printf("%*.5f|", l[i], *((float *)row[i])); #endif + } break; - case TSDB_DATA_TYPE_DOUBLE: + case TSDB_DATA_TYPE_DOUBLE: { #ifdef _TD_ARM_32_ double dv = 0; //memcpy(&dv, row[i], sizeof(double)); @@ -464,6 +465,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else printf("%*.9f|", l[i], *((double *)row[i])); #endif + } break; case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: @@ -528,7 +530,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { case TSDB_DATA_TYPE_BIGINT: printf("%lld\n", *((int64_t *)row[i])); break; - case TSDB_DATA_TYPE_FLOAT: + case TSDB_DATA_TYPE_FLOAT: { #ifdef _TD_ARM_32_ float fv = 0; //memcpy(&fv, row[i], sizeof(float)); @@ -537,8 +539,9 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else printf("%.5f\n", *((float *)row[i])); #endif + } break; - case TSDB_DATA_TYPE_DOUBLE: + case TSDB_DATA_TYPE_DOUBLE: { #ifdef _TD_ARM_32_ double dv = 0; //memcpy(&dv, row[i], sizeof(double)); @@ -547,7 +550,8 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else printf("%.9f\n", *((double *)row[i])); #endif - break; + } + break; case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: memset(t_str, 0, TSDB_MAX_BYTES_PER_ROW); @@ -614,7 +618,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { case TSDB_DATA_TYPE_BIGINT: fprintf(fp, "%lld", *((int64_t *)row[i])); break; - case TSDB_DATA_TYPE_FLOAT: + case TSDB_DATA_TYPE_FLOAT: { #ifdef _TD_ARM_32_ float fv = 0; //memcpy(&fv, row[i], sizeof(float)); @@ -623,8 +627,9 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else fprintf(fp, "%.5f", *((float *)row[i])); #endif + } break; - case TSDB_DATA_TYPE_DOUBLE: + case TSDB_DATA_TYPE_DOUBLE: { #ifdef _TD_ARM_32_ double dv = 0; //memcpy(&dv, row[i], sizeof(double)); @@ -633,6 +638,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { #else fprintf(fp, "%.9f", *((double *)row[i])); #endif + } break; case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: From e521288582012559dd54fc825512663847a90cd9 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 15:43:25 +0800 Subject: [PATCH 11/14] [TBASE-816] --- CMakeLists.txt | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd361ae974..2daa360f2f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,12 +44,30 @@ IF (NOT DEFINED TD_CLUSTER) SET(TD_MIPS_64 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") + SET(TD_ARM TRUE) + SET(TD_ARM_32 TRUE) + ADD_DEFINITIONS(-D_TD_ARM_) + ADD_DEFINITIONS(-D_TD_ARM_32_) + ELSEIF (${ARMVER} MATCHES "arm64") + 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_) - ENDIF () + ELSEIF (TD_ARM_64) + ADD_DEFINITIONS(-D_TD_ARM_64_) + ELSE () + EXIT () + ENDIF ENDIF () IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux") From f740e8bc1ed943cae353de9cd9c52214f05fb223 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 11 Nov 2019 16:30:21 +0800 Subject: [PATCH 12/14] [TBASE-816] --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2daa360f2f..c89195a89a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,7 +67,7 @@ IF (NOT DEFINED TD_CLUSTER) ADD_DEFINITIONS(-D_TD_ARM_64_) ELSE () EXIT () - ENDIF + ENDIF () ENDIF () IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux") From 1ca75c5a077d52425e0be7bd27927d13614fee35 Mon Sep 17 00:00:00 2001 From: slguan Date: Mon, 11 Nov 2019 20:22:28 +0800 Subject: [PATCH 13/14] fix bugs in package script --- packaging/tools/install.sh | 4 +-- src/client/src/TSDBJNIConnector.c | 47 +++++++++++++++++++------------ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/packaging/tools/install.sh b/packaging/tools/install.sh index 6b5af3f9ef..acd6c6ccce 100755 --- a/packaging/tools/install.sh +++ b/packaging/tools/install.sh @@ -247,9 +247,9 @@ vercomp () { function is_version_compatible() { - curr_version=$(${bin_dir}/taosd -V | cut -d ' ' -f 1) + curr_version=$(${bin_dir}/taosd -V | cut -d ' ' -f 2) - min_compatible_version=$(${script_dir}/bin/taosd -V | cut -d ' ' -f 2) + min_compatible_version=$(${script_dir}/bin/taosd -V | cut -d ' ' -f 4) vercomp $curr_version $min_compatible_version case $? in diff --git a/src/client/src/TSDBJNIConnector.c b/src/client/src/TSDBJNIConnector.c index fb175618c0..a15a6c0f40 100644 --- a/src/client/src/TSDBJNIConnector.c +++ b/src/client/src/TSDBJNIConnector.c @@ -208,10 +208,10 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_connectImp(JNIEn ret = (jlong)taos_connect((char *)host, (char *)user, (char *)pass, (char *)dbname, jport); if (ret == 0) { - jniError("jobj:%p, taos:%p, connect to tdengine failed, host=%s, user=%s, dbname=%s, port=%d", jobj, (void *)ret, + jniError("jobj:%p, conn:%p, connect to database failed, host=%s, user=%s, dbname=%s, port=%d", jobj, (void *)ret, (char *)host, (char *)user, (char *)dbname, jport); } else { - jniTrace("jobj:%p, taos:%p, connect to tdengine succeed, host=%s, user=%s, dbname=%s, port=%d", jobj, (void *)ret, + jniTrace("jobj:%p, conn:%p, connect to database succeed, host=%s, user=%s, dbname=%s, port=%d", jobj, (void *)ret, (char *)host, (char *)user, (char *)dbname, jport); } @@ -232,7 +232,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryImp(J } if (jsql == NULL) { - jniError("jobj:%p, taos:%p, sql is null", jobj, tscon); + jniError("jobj:%p, conn:%p, sql is null", jobj, tscon); return JNI_SQL_NULL; } @@ -250,7 +250,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryImp(J int code = taos_query(tscon, dst); if (code != 0) { - jniError("jobj:%p, taos:%p, code:%d, msg:%s, sql:%s", jobj, tscon, code, taos_errstr(tscon), dst); + jniError("jobj:%p, conn:%p, code:%d, msg:%s, sql:%s", jobj, tscon, code, taos_errstr(tscon), dst); free(dst); return JNI_TDENGINE_ERROR; } else { @@ -259,9 +259,9 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryImp(J if (pSql->cmd.command == TSDB_SQL_INSERT) { affectRows = taos_affected_rows(tscon); - jniTrace("jobj:%p, taos:%p, code:%d, affect rows:%d, sql:%s", jobj, tscon, code, affectRows, dst); + jniTrace("jobj:%p, conn:%p, code:%d, affect rows:%d, sql:%s", jobj, tscon, code, affectRows, dst); } else { - jniTrace("jobj:%p, taos:%p, code:%d, sql:%s", jobj, tscon, code, dst); + jniTrace("jobj:%p, conn:%p, code:%d, sql:%s", jobj, tscon, code, dst); } free(dst); @@ -291,11 +291,22 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getResultSetImp( return JNI_CONNECTION_NULL; } +<<<<<<< Updated upstream int num_fields = taos_field_count(tscon); if (num_fields != 0) { jlong ret = (jlong)taos_use_result(tscon); jniTrace("jobj:%p, taos:%p, get resultset:%p", jobj, tscon, (void *)ret); return ret; +======= + jlong ret = 0; + + if (tscIsUpdateQuery(tscon)) { + ret = 0; // for update query, no result pointer + jniTrace("jobj:%p, conn:%p, no result", jobj, tscon); + } else { + ret = (jlong) taos_use_result(tscon); + jniTrace("jobj:%p, conn:%p, get resultset:%p", jobj, tscon, (void *) ret); +>>>>>>> Stashed changes } jniTrace("jobj:%p, taos:%p, no resultset", jobj, tscon); @@ -311,12 +322,12 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_freeResultSetImp( } if ((void *)res == NULL) { - jniError("jobj:%p, taos:%p, resultset is null", jobj, tscon); + jniError("jobj:%p, conn:%p, resultset is null", jobj, tscon); return JNI_RESULT_SET_NULL; } taos_free_result((void *)res); - jniTrace("jobj:%p, taos:%p, free resultset:%p", jobj, tscon, (void *)res); + jniTrace("jobj:%p, conn:%p, free resultset:%p", jobj, tscon, (void *)res); return JNI_SUCCESS; } @@ -330,7 +341,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getAffectedRowsIm jint ret = taos_affected_rows(tscon); - jniTrace("jobj:%p, taos:%p, affect rows:%d", jobj, tscon, (void *)con, ret); + jniTrace("jobj:%p, conn:%p, affect rows:%d", jobj, tscon, (void *)con, ret); return ret; } @@ -346,7 +357,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getSchemaMetaData TAOS_RES *result = (TAOS_RES *)res; if (result == NULL) { - jniError("jobj:%p, taos:%p, resultset is null", jobj, tscon); + jniError("jobj:%p, conn:%p, resultset is null", jobj, tscon); return JNI_RESULT_SET_NULL; } @@ -356,10 +367,10 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getSchemaMetaData // jobject arrayListObj = (*env)->NewObject(env, g_arrayListClass, g_arrayListConstructFp, ""); if (num_fields == 0) { - jniError("jobj:%p, taos:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); + jniError("jobj:%p, conn:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); return JNI_NUM_OF_FIELDS_0; } else { - jniTrace("jobj:%p, taos:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); + jniTrace("jobj:%p, conn:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); for (int i = 0; i < num_fields; ++i) { jobject metadataObj = (*env)->NewObject(env, g_metadataClass, g_metadataConstructFp); (*env)->SetIntField(env, metadataObj, g_metadataColtypeField, fields[i].type); @@ -402,7 +413,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn TAOS_RES *result = (TAOS_RES *)res; if (result == NULL) { - jniError("jobj:%p, taos:%p, resultset is null", jobj, tscon); + jniError("jobj:%p, conn:%p, resultset is null", jobj, tscon); return JNI_RESULT_SET_NULL; } @@ -410,7 +421,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn int num_fields = taos_num_fields(result); if (num_fields == 0) { - jniError("jobj:%p, taos:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); + jniError("jobj:%p, conn:%p, resultset:%p, fields size is %d", jobj, tscon, res, num_fields); return JNI_NUM_OF_FIELDS_0; } @@ -418,10 +429,10 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn if (row == NULL) { int tserrno = taos_errno(tscon); if (tserrno == 0) { - jniTrace("jobj:%p, taos:%p, resultset:%p, fields size is %d, fetch row to the end", jobj, tscon, res, num_fields); + jniTrace("jobj:%p, conn:%p, resultset:%p, fields size is %d, fetch row to the end", jobj, tscon, res, num_fields); return JNI_FETCH_END; } else { - jniTrace("jobj:%p, taos:%p, interruptted query", jobj, tscon); + jniTrace("jobj:%p, conn:%p, interruptted query", jobj, tscon); return JNI_RESULT_SET_NULL; } } @@ -485,7 +496,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_closeConnectionIm jniError("jobj:%p, connection is closed", jobj); return JNI_CONNECTION_NULL; } else { - jniTrace("jobj:%p, taos:%p, close connection success", jobj, tscon); + jniTrace("jobj:%p, conn:%p, close connection success", jobj, tscon); taos_close(tscon); return JNI_SUCCESS; } @@ -640,7 +651,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_validateCreateTab } if (jsql == NULL) { - jniError("jobj:%p, taos:%p, sql is null", jobj, tscon); + jniError("jobj:%p, conn:%p, sql is null", jobj, tscon); return JNI_SQL_NULL; } From 30c38cbafe4061859dc6eb0906910d28c80cccbc Mon Sep 17 00:00:00 2001 From: slguan Date: Mon, 11 Nov 2019 23:32:08 +0800 Subject: [PATCH 14/14] update some log format --- src/client/src/TSDBJNIConnector.c | 18 ------------------ src/client/src/tscServer.c | 2 +- src/client/src/tscSystem.c | 2 +- src/kit/taosdemo/taosdemo.c | 3 +++ src/modules/http/src/httpSystem.c | 2 +- src/modules/monitor/src/monitorSystem.c | 4 ++-- tests/examples/JDBC/readme.md | 2 +- 7 files changed, 9 insertions(+), 24 deletions(-) diff --git a/src/client/src/TSDBJNIConnector.c b/src/client/src/TSDBJNIConnector.c index 74c4e0a360..a19579b7d4 100644 --- a/src/client/src/TSDBJNIConnector.c +++ b/src/client/src/TSDBJNIConnector.c @@ -289,32 +289,14 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_getResultSetImp( return JNI_CONNECTION_NULL; } -<<<<<<< HEAD -<<<<<<< Updated upstream - int num_fields = taos_field_count(tscon); - if (num_fields != 0) { - jlong ret = (jlong)taos_use_result(tscon); - jniTrace("jobj:%p, taos:%p, get resultset:%p", jobj, tscon, (void *)ret); - return ret; -======= -======= ->>>>>>> origin/develop jlong ret = 0; if (tscIsUpdateQuery(tscon)) { ret = 0; // for update query, no result pointer -<<<<<<< HEAD jniTrace("jobj:%p, conn:%p, no result", jobj, tscon); } else { ret = (jlong) taos_use_result(tscon); jniTrace("jobj:%p, conn:%p, get resultset:%p", jobj, tscon, (void *) ret); ->>>>>>> Stashed changes -======= - jniTrace("jobj:%p, taos:%p, no result", jobj, tscon); - } else { - ret = (jlong) taos_use_result(tscon); - jniTrace("jobj:%p, taos:%p, get resultset:%p", jobj, tscon, (void *) ret); ->>>>>>> origin/develop } return ret; diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 49368e4d17..aa80e505d5 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -562,7 +562,7 @@ void *tscProcessMsgFromServer(char *msg, void *ahandle, void *thandle) { void *taosres = tscKeepConn[command] ? pSql : NULL; code = pRes->code ? -pRes->code : pRes->numOfRows; - tscTrace("%p Async SQL result:%d taosres:%p", pSql, code, taosres); + tscTrace("%p Async SQL result:%d res:%p", pSql, code, taosres); /* * Whether to free sqlObj or not should be decided before call the user defined function, since this SqlObj diff --git a/src/client/src/tscSystem.c b/src/client/src/tscSystem.c index 708ceee405..5e383c9d0b 100644 --- a/src/client/src/tscSystem.c +++ b/src/client/src/tscSystem.c @@ -176,7 +176,7 @@ void taos_init_imp() { tscConnCache = taosOpenConnCache(tsMaxMeterConnections * 2, taosCloseRpcConn, tscTmr, tsShellActivityTimer * 1000); initialized = 1; - tscTrace("taos client is initialized successfully"); + tscTrace("client is initialized successfully"); tsInsertHeadSize = tsRpcHeadSize + sizeof(SShellSubmitMsg); } diff --git a/src/kit/taosdemo/taosdemo.c b/src/kit/taosdemo/taosdemo.c index df29a72e86..f9fe9efa33 100644 --- a/src/kit/taosdemo/taosdemo.c +++ b/src/kit/taosdemo/taosdemo.c @@ -30,6 +30,9 @@ #include #include "taos.h" + +extern char configDir[]; + #pragma GCC diagnostic ignored "-Wmissing-braces" #define BUFFER_SIZE 65536 diff --git a/src/modules/http/src/httpSystem.c b/src/modules/http/src/httpSystem.c index 5c0d9a69d6..ece7c17814 100644 --- a/src/modules/http/src/httpSystem.c +++ b/src/modules/http/src/httpSystem.c @@ -50,7 +50,7 @@ int httpInitSystem() { httpServer = (HttpServer *)malloc(sizeof(HttpServer)); memset(httpServer, 0, sizeof(HttpServer)); - strcpy(httpServer->label, "taosh"); + strcpy(httpServer->label, "rest"); strcpy(httpServer->serverIp, tsHttpIp); httpServer->serverPort = tsHttpPort; httpServer->cacheContext = tsHttpCacheSessions; diff --git a/src/modules/monitor/src/monitorSystem.c b/src/modules/monitor/src/monitorSystem.c index 013d86050e..78cee40f96 100644 --- a/src/modules/monitor/src/monitorSystem.c +++ b/src/modules/monitor/src/monitorSystem.c @@ -131,7 +131,7 @@ void monitorInitConn(void *para, void *unused) { void monitorInitConnCb(void *param, TAOS_RES *result, int code) { if (code < 0) { - monitorError("monitor:%p, connect to taosd failed, code:%d", monitor->conn, code); + monitorError("monitor:%p, connect to database failed, code:%d", monitor->conn, code); taos_close(monitor->conn); monitor->conn = NULL; monitor->state = MONITOR_STATE_UN_INIT; @@ -139,7 +139,7 @@ void monitorInitConnCb(void *param, TAOS_RES *result, int code) { return; } - monitorTrace("monitor:%p, connect to taosd success, code:%d", monitor->conn, code); + monitorTrace("monitor:%p, connect to database success, code:%d", monitor->conn, code); monitorInitDatabase(); } diff --git a/tests/examples/JDBC/readme.md b/tests/examples/JDBC/readme.md index 54a2e5c6ac..a91624a9e4 100644 --- a/tests/examples/JDBC/readme.md +++ b/tests/examples/JDBC/readme.md @@ -9,5 +9,5 @@ TDengine's JDBC driver jar is not yet published to maven center repo, so we need ## Compile the Demo Code and Run It To compile the demo project, go to the source directory ``TDengine/tests/examples/JDBC/JDBCDemo`` and execute
mvn clean assembly:single package
-The ``pom.xml`` is configured to package all the dependencies into one executable jar file. To run it, go to ``TDengine/tests/examples/JDBC/JDBCDemo/target`` and execute +The ``pom.xml`` is configured to package all the dependencies into one executable jar file. To run it, go to ``examples/JDBC/JDBCDemo/target`` and execute
java -jar jdbcdemo-1.0-SNAPSHOT-jar-with-dependencies.jar