opt sys query
This commit is contained in:
commit
c4f7607e8c
|
@ -117,8 +117,8 @@ ELSE ()
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-literal-suffix -Werror=return-type -fPIC -gdwarf-2 -fsanitize=address -fsanitize=undefined -fsanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fno-sanitize=shift-base -fno-sanitize=alignment -g3 -Wformat=0")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-literal-suffix -Werror=return-type -fPIC -gdwarf-2 -fsanitize=address -fsanitize=undefined -fsanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fno-sanitize=shift-base -fno-sanitize=alignment -g3 -Wformat=0")
|
||||||
MESSAGE(STATUS "Will compile with Address Sanitizer!")
|
MESSAGE(STATUS "Will compile with Address Sanitizer!")
|
||||||
ELSE ()
|
ELSE ()
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Werror=return-type -fPIC -gdwarf-2 -g3 -Wformat=0")
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Werror=return-type -fPIC -gdwarf-2 -g3 -Wformat=2 -Wno-format-nonliteral -Wno-format-truncation -Wno-format-y2k")
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-literal-suffix -Werror=return-type -fPIC -gdwarf-2 -g3 -Wformat=0")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-literal-suffix -Werror=return-type -fPIC -gdwarf-2 -g3 -Wformat=2 -Wno-format-nonliteral -Wno-format-truncation -Wno-format-y2k")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
MESSAGE("System processor ID: ${CMAKE_SYSTEM_PROCESSOR}")
|
MESSAGE("System processor ID: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
|
|
@ -234,8 +234,6 @@ struct STag {
|
||||||
// Imported since 3.0 and use bitmap to demonstrate None/Null/Norm, while use Null/Norm below 3.0 without of bitmap.
|
// Imported since 3.0 and use bitmap to demonstrate None/Null/Norm, while use Null/Norm below 3.0 without of bitmap.
|
||||||
#define TD_SUPPORT_BITMAP
|
#define TD_SUPPORT_BITMAP
|
||||||
|
|
||||||
#define TASSERT(x) ASSERT(x)
|
|
||||||
|
|
||||||
#define STR_TO_VARSTR(x, str) \
|
#define STR_TO_VARSTR(x, str) \
|
||||||
do { \
|
do { \
|
||||||
VarDataLenT __len = (VarDataLenT)strlen(str); \
|
VarDataLenT __len = (VarDataLenT)strlen(str); \
|
||||||
|
|
|
@ -1074,7 +1074,8 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t vgId;
|
int32_t vgId;
|
||||||
int32_t syncState;
|
int8_t syncState;
|
||||||
|
int8_t syncRestore;
|
||||||
int64_t cacheUsage;
|
int64_t cacheUsage;
|
||||||
int64_t numOfTables;
|
int64_t numOfTables;
|
||||||
int64_t numOfTimeSeries;
|
int64_t numOfTimeSeries;
|
||||||
|
@ -1089,7 +1090,8 @@ typedef struct {
|
||||||
} SVnodeLoad;
|
} SVnodeLoad;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t syncState;
|
int8_t syncState;
|
||||||
|
int8_t syncRestore;
|
||||||
} SMnodeLoad;
|
} SMnodeLoad;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -255,7 +255,7 @@ static FORCE_INLINE void *tdGetBitmapAddrKv(STSRow *pRow, col_id_t nKvCols) {
|
||||||
void *tdGetBitmapAddr(STSRow *pRow, uint8_t rowType, uint32_t flen, col_id_t nKvCols);
|
void *tdGetBitmapAddr(STSRow *pRow, uint8_t rowType, uint32_t flen, col_id_t nKvCols);
|
||||||
int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int8_t bitmapMode);
|
int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int8_t bitmapMode);
|
||||||
int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType);
|
int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType);
|
||||||
bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode);
|
// bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode);
|
||||||
int32_t tdGetBitmapValType(const void *pBitmap, int16_t colIdx, TDRowValT *pValType, int8_t bitmapMode);
|
int32_t tdGetBitmapValType(const void *pBitmap, int16_t colIdx, TDRowValT *pValType, int8_t bitmapMode);
|
||||||
|
|
||||||
// ----------------- Tuple row structure(STpRow)
|
// ----------------- Tuple row structure(STpRow)
|
||||||
|
|
|
@ -340,12 +340,8 @@ typedef struct tDataTypeDescriptor {
|
||||||
} tDataTypeDescriptor;
|
} tDataTypeDescriptor;
|
||||||
|
|
||||||
extern tDataTypeDescriptor tDataTypes[TSDB_DATA_TYPE_MAX];
|
extern tDataTypeDescriptor tDataTypes[TSDB_DATA_TYPE_MAX];
|
||||||
|
|
||||||
bool isValidDataType(int32_t type);
|
bool isValidDataType(int32_t type);
|
||||||
|
|
||||||
void setVardataNull(void *val, int32_t type);
|
|
||||||
//void setNull(void *val, int32_t type, int32_t bytes);
|
|
||||||
//void setNullN(void *val, int32_t type, int32_t bytes, int32_t numOfElems);
|
|
||||||
void assignVal(char *val, const char *src, int32_t len, int32_t type);
|
void assignVal(char *val, const char *src, int32_t len, int32_t type);
|
||||||
void operateVal(void *dst, void *s1, void *s2, int32_t optr, int32_t type);
|
void operateVal(void *dst, void *s1, void *s2, int32_t optr, int32_t type);
|
||||||
void *getDataMin(int32_t type);
|
void *getDataMin(int32_t type);
|
||||||
|
|
|
@ -68,9 +68,10 @@ int32_t streamStateSessionClear(SStreamState* pState);
|
||||||
int32_t streamStateSessionGetKVByCur(SStreamStateCur* pCur, SSessionKey* pKey, const void** pVal, int32_t* pVLen);
|
int32_t streamStateSessionGetKVByCur(SStreamStateCur* pCur, SSessionKey* pKey, const void** pVal, int32_t* pVLen);
|
||||||
int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, char* pKeyData, int32_t keyDataLen,
|
int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, char* pKeyData, int32_t keyDataLen,
|
||||||
state_key_cmpr_fn fn, void** pVal, int32_t* pVLen);
|
state_key_cmpr_fn fn, void** pVal, int32_t* pVLen);
|
||||||
|
int32_t streamStateSessionGetKey(SStreamState* pState, const SSessionKey* key, SSessionKey* curKey);
|
||||||
|
|
||||||
SStreamStateCur* streamStateSessionSeekKeyNext(SStreamState* pState, const SSessionKey* key);
|
SStreamStateCur* streamStateSessionSeekKeyNext(SStreamState* pState, const SSessionKey* key);
|
||||||
SStreamStateCur* streamStateSessionSeekKeyPrev(SStreamState* pState, const SSessionKey* key);
|
SStreamStateCur* streamStateSessionSeekKeyCurrentPrev(SStreamState* pState, const SSessionKey* key);
|
||||||
SStreamStateCur* streamStateSessionGetCur(SStreamState* pState, const SSessionKey* key);
|
SStreamStateCur* streamStateSessionGetCur(SStreamState* pState, const SSessionKey* key);
|
||||||
|
|
||||||
int32_t streamStateFillPut(SStreamState* pState, const SWinKey* key, const void* value, int32_t vLen);
|
int32_t streamStateFillPut(SStreamState* pState, const SWinKey* key, const void* value, int32_t vLen);
|
||||||
|
|
|
@ -237,7 +237,6 @@ typedef enum ELogicConditionType {
|
||||||
#define TSDB_MAX_BYTES_PER_ROW 49151
|
#define TSDB_MAX_BYTES_PER_ROW 49151
|
||||||
#define TSDB_MAX_TAGS_LEN 16384
|
#define TSDB_MAX_TAGS_LEN 16384
|
||||||
#define TSDB_MAX_TAGS 128
|
#define TSDB_MAX_TAGS 128
|
||||||
#define TSDB_MAX_TAG_CONDITIONS 1024
|
|
||||||
|
|
||||||
#define TSDB_MAX_COL_TAG_NUM (TSDB_MAX_COLUMNS + TSDB_MAX_TAGS)
|
#define TSDB_MAX_COL_TAG_NUM (TSDB_MAX_COLUMNS + TSDB_MAX_TAGS)
|
||||||
#define TSDB_MAX_JSON_TAG_LEN 16384
|
#define TSDB_MAX_JSON_TAG_LEN 16384
|
||||||
|
@ -274,8 +273,6 @@ typedef enum ELogicConditionType {
|
||||||
|
|
||||||
#define TSDB_PAYLOAD_SIZE TSDB_DEFAULT_PKT_SIZE
|
#define TSDB_PAYLOAD_SIZE TSDB_DEFAULT_PKT_SIZE
|
||||||
#define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value
|
#define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value
|
||||||
#define TSDB_EXTRA_PAYLOAD_SIZE 128 // extra bytes for auth
|
|
||||||
#define TSDB_CQ_SQL_SIZE 1024
|
|
||||||
#define TSDB_MIN_VNODES 16
|
#define TSDB_MIN_VNODES 16
|
||||||
#define TSDB_MAX_VNODES 512
|
#define TSDB_MAX_VNODES 512
|
||||||
|
|
||||||
|
@ -285,10 +282,7 @@ typedef enum ELogicConditionType {
|
||||||
|
|
||||||
#define TSDB_MAX_REPLICA 5
|
#define TSDB_MAX_REPLICA 5
|
||||||
|
|
||||||
#define TSDB_TBNAME_COLUMN_INDEX (-1)
|
#define TSDB_TBNAME_COLUMN_INDEX (-1)
|
||||||
#define TSDB_UD_COLUMN_INDEX (-1000)
|
|
||||||
#define TSDB_RES_COL_ID (-5000)
|
|
||||||
|
|
||||||
#define TSDB_MULTI_TABLEMETA_MAX_NUM 100000 // maximum batch size allowed to load table meta
|
#define TSDB_MULTI_TABLEMETA_MAX_NUM 100000 // maximum batch size allowed to load table meta
|
||||||
|
|
||||||
#define TSDB_MIN_VNODES_PER_DB 1
|
#define TSDB_MIN_VNODES_PER_DB 1
|
||||||
|
@ -398,9 +392,6 @@ typedef enum ELogicConditionType {
|
||||||
#define TSDB_MAX_EXPLAIN_RATIO 1
|
#define TSDB_MAX_EXPLAIN_RATIO 1
|
||||||
#define TSDB_DEFAULT_EXPLAIN_RATIO 0.001
|
#define TSDB_DEFAULT_EXPLAIN_RATIO 0.001
|
||||||
|
|
||||||
#define TSDB_MAX_JOIN_TABLE_NUM 10
|
|
||||||
#define TSDB_MAX_UNION_CLAUSE 5
|
|
||||||
|
|
||||||
#define TSDB_DEFAULT_EXPLAIN_VERBOSE false
|
#define TSDB_DEFAULT_EXPLAIN_VERBOSE false
|
||||||
|
|
||||||
#define TSDB_EXPLAIN_RESULT_ROW_SIZE (16 * 1024)
|
#define TSDB_EXPLAIN_RESULT_ROW_SIZE (16 * 1024)
|
||||||
|
@ -419,7 +410,6 @@ typedef enum ELogicConditionType {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TSDB_QUERY_TYPE_NON_TYPE 0x00u // none type
|
#define TSDB_QUERY_TYPE_NON_TYPE 0x00u // none type
|
||||||
#define TSDB_QUERY_TYPE_FREE_RESOURCE 0x01u // free qhandle at vnode
|
|
||||||
|
|
||||||
#define TSDB_META_COMPACT_RATIO 0 // disable tsdb meta compact by default
|
#define TSDB_META_COMPACT_RATIO 0 // disable tsdb meta compact by default
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,7 @@ int32_t buildRequest(uint64_t connId, const char* sql, int sqlLen, void* param,
|
||||||
STscObj* pTscObj = (*pRequest)->pTscObj;
|
STscObj* pTscObj = (*pRequest)->pTscObj;
|
||||||
if (taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self,
|
if (taosHashPut(pTscObj->pRequests, &(*pRequest)->self, sizeof((*pRequest)->self), &(*pRequest)->self,
|
||||||
sizeof((*pRequest)->self))) {
|
sizeof((*pRequest)->self))) {
|
||||||
tscError("%" PRIx64 " failed to add to request container, reqId:0x%" PRIu64 ", conn:%" PRIx64 ", %s",
|
tscError("%" PRId64 " failed to add to request container, reqId:0x%" PRIx64 ", conn:%" PRId64 ", %s",
|
||||||
(*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql);
|
(*pRequest)->self, (*pRequest)->requestId, pTscObj->id, sql);
|
||||||
|
|
||||||
taosMemoryFree(param);
|
taosMemoryFree(param);
|
||||||
|
@ -369,8 +369,8 @@ int32_t updateQnodeList(SAppInstInfo* pInfo, SArray* pNodeList) {
|
||||||
if (pNodeList) {
|
if (pNodeList) {
|
||||||
pInfo->pQnodeList = taosArrayDup(pNodeList);
|
pInfo->pQnodeList = taosArrayDup(pNodeList);
|
||||||
taosArraySort(pInfo->pQnodeList, compareQueryNodeLoad);
|
taosArraySort(pInfo->pQnodeList, compareQueryNodeLoad);
|
||||||
tscDebug("QnodeList updated in cluster 0x%" PRIx64 ", num:%d", pInfo->clusterId,
|
tscDebug("QnodeList updated in cluster 0x%" PRIx64 ", num:%ld", pInfo->clusterId,
|
||||||
(int)taosArrayGetSize(pInfo->pQnodeList));
|
taosArrayGetSize(pInfo->pQnodeList));
|
||||||
}
|
}
|
||||||
taosThreadMutexUnlock(&pInfo->qnodeMutex);
|
taosThreadMutexUnlock(&pInfo->qnodeMutex);
|
||||||
|
|
||||||
|
|
|
@ -1071,8 +1071,8 @@ static int32_t taosDeleteData(TAOS* taos, void* meta, int32_t metaLen) {
|
||||||
|
|
||||||
// getTbName(req.tableFName);
|
// getTbName(req.tableFName);
|
||||||
char sql[256] = {0};
|
char sql[256] = {0};
|
||||||
sprintf(sql, "delete from `%s` where `%s` >= %" PRId64 " and `%s` <= %" PRId64, req.tableFName, req.tsColName,
|
snprintf(sql, sizeof(sql), "delete from `%s` where `%s` >= %" PRId64 " and `%s` <= %" PRId64, req.tableFName,
|
||||||
req.skey, req.tsColName, req.ekey);
|
req.tsColName, req.skey, req.tsColName, req.ekey);
|
||||||
printf("delete sql:%s\n", sql);
|
printf("delete sql:%s\n", sql);
|
||||||
|
|
||||||
TAOS_RES* res = taos_query(taos, sql);
|
TAOS_RES* res = taos_query(taos, sql);
|
||||||
|
|
|
@ -638,7 +638,7 @@ static int32_t tmqCommitConsumerImpl(tmq_t* tmq, int8_t automatic, int8_t async,
|
||||||
pVg->vgId);
|
pVg->vgId);
|
||||||
|
|
||||||
if (pVg->currentOffset.type > 0 && !tOffsetEqual(&pVg->currentOffset, &pVg->committedOffset)) {
|
if (pVg->currentOffset.type > 0 && !tOffsetEqual(&pVg->currentOffset, &pVg->committedOffset)) {
|
||||||
tscDebug("consumer: %ld, vg:%d, current %ld, committed %ld", tmq->consumerId, pVg->vgId,
|
tscDebug("consumer: %" PRId64 ", vg:%d, current %" PRId64 ", committed %" PRId64 "", tmq->consumerId, pVg->vgId,
|
||||||
pVg->currentOffset.version, pVg->committedOffset.version);
|
pVg->currentOffset.version, pVg->committedOffset.version);
|
||||||
if (tmqSendCommitReq(tmq, pVg, pTopic, pParamSet) < 0) {
|
if (tmqSendCommitReq(tmq, pVg, pTopic, pParamSet) < 0) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -982,7 +982,7 @@ int32_t tmq_subscribe(tmq_t* tmq, const tmq_list_t* topic_list) {
|
||||||
SCMSubscribeReq req = {0};
|
SCMSubscribeReq req = {0};
|
||||||
int32_t code = -1;
|
int32_t code = -1;
|
||||||
|
|
||||||
tscDebug("call tmq subscribe, consumer: %ld, topic num %d", tmq->consumerId, sz);
|
tscDebug("call tmq subscribe, consumer: %" PRId64 ", topic num %d", tmq->consumerId, sz);
|
||||||
|
|
||||||
req.consumerId = tmq->consumerId;
|
req.consumerId = tmq->consumerId;
|
||||||
tstrncpy(req.clientId, tmq->clientId, 256);
|
tstrncpy(req.clientId, tmq->clientId, 256);
|
||||||
|
@ -990,6 +990,8 @@ int32_t tmq_subscribe(tmq_t* tmq, const tmq_list_t* topic_list) {
|
||||||
req.topicNames = taosArrayInit(sz, sizeof(void*));
|
req.topicNames = taosArrayInit(sz, sizeof(void*));
|
||||||
if (req.topicNames == NULL) goto FAIL;
|
if (req.topicNames == NULL) goto FAIL;
|
||||||
|
|
||||||
|
tscDebug("call tmq subscribe, consumer: %" PRId64 ", topic num %d", tmq->consumerId, sz);
|
||||||
|
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
char* topic = taosArrayGetP(container, i);
|
char* topic = taosArrayGetP(container, i);
|
||||||
|
|
||||||
|
@ -1620,7 +1622,7 @@ void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) {
|
||||||
return NULL;
|
return NULL;
|
||||||
} else if (rspWrapper->tmqRspType == TMQ_MSG_TYPE__POLL_RSP) {
|
} else if (rspWrapper->tmqRspType == TMQ_MSG_TYPE__POLL_RSP) {
|
||||||
SMqPollRspWrapper* pollRspWrapper = (SMqPollRspWrapper*)rspWrapper;
|
SMqPollRspWrapper* pollRspWrapper = (SMqPollRspWrapper*)rspWrapper;
|
||||||
tscDebug("consumer %ld actual process poll rsp", tmq->consumerId);
|
tscDebug("consumer %" PRId64 " actual process poll rsp", tmq->consumerId);
|
||||||
/*atomic_sub_fetch_32(&tmq->readyRequest, 1);*/
|
/*atomic_sub_fetch_32(&tmq->readyRequest, 1);*/
|
||||||
int32_t consumerEpoch = atomic_load_32(&tmq->epoch);
|
int32_t consumerEpoch = atomic_load_32(&tmq->epoch);
|
||||||
if (pollRspWrapper->dataRsp.head.epoch == consumerEpoch) {
|
if (pollRspWrapper->dataRsp.head.epoch == consumerEpoch) {
|
||||||
|
|
|
@ -1836,10 +1836,10 @@ void blockDebugShowDataBlocks(const SArray* dataBlocks, const char* flag) {
|
||||||
printf(" %15u |", *(uint32_t*)var);
|
printf(" %15u |", *(uint32_t*)var);
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_BIGINT:
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
printf(" %15ld |", *(int64_t*)var);
|
printf(" %15" PRId64 " |", *(int64_t*)var);
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_UBIGINT:
|
case TSDB_DATA_TYPE_UBIGINT:
|
||||||
printf(" %15lu |", *(uint64_t*)var);
|
printf(" %15" PRIu64 " |", *(uint64_t*)var);
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_FLOAT:
|
case TSDB_DATA_TYPE_FLOAT:
|
||||||
printf(" %15f |", *(float*)var);
|
printf(" %15f |", *(float*)var);
|
||||||
|
@ -1858,7 +1858,7 @@ void blockDebugShowDataBlocks(const SArray* dataBlocks, const char* flag) {
|
||||||
char* pData = colDataGetVarData(pColInfoData, j);
|
char* pData = colDataGetVarData(pColInfoData, j);
|
||||||
int32_t dataSize = TMIN(sizeof(pBuf), varDataLen(pData));
|
int32_t dataSize = TMIN(sizeof(pBuf), varDataLen(pData));
|
||||||
memset(pBuf, 0, dataSize);
|
memset(pBuf, 0, dataSize);
|
||||||
taosUcs4ToMbs((TdUcs4*)varDataVal(pData), dataSize, pBuf);
|
(void)taosUcs4ToMbs((TdUcs4*)varDataVal(pData), dataSize, pBuf);
|
||||||
printf(" %15s |", pBuf);
|
printf(" %15s |", pBuf);
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
|
@ -1915,11 +1915,11 @@ char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** pDataBuf)
|
||||||
if (len >= size - 1) return dumpBuf;
|
if (len >= size - 1) return dumpBuf;
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_BIGINT:
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
len += snprintf(dumpBuf + len, size - len, " %15ld |", *(int64_t*)var);
|
len += snprintf(dumpBuf + len, size - len, " %15" PRId64 " |", *(int64_t*)var);
|
||||||
if (len >= size - 1) return dumpBuf;
|
if (len >= size - 1) return dumpBuf;
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_UBIGINT:
|
case TSDB_DATA_TYPE_UBIGINT:
|
||||||
len += snprintf(dumpBuf + len, size - len, " %15lu |", *(uint64_t*)var);
|
len += snprintf(dumpBuf + len, size - len, " %15" PRIu64 " |", *(uint64_t*)var);
|
||||||
if (len >= size - 1) return dumpBuf;
|
if (len >= size - 1) return dumpBuf;
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_FLOAT:
|
case TSDB_DATA_TYPE_FLOAT:
|
||||||
|
@ -1946,7 +1946,7 @@ char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** pDataBuf)
|
||||||
char* pData = colDataGetVarData(pColInfoData, j);
|
char* pData = colDataGetVarData(pColInfoData, j);
|
||||||
int32_t dataSize = TMIN(sizeof(pBuf), varDataLen(pData));
|
int32_t dataSize = TMIN(sizeof(pBuf), varDataLen(pData));
|
||||||
memset(pBuf, 0, sizeof(pBuf));
|
memset(pBuf, 0, sizeof(pBuf));
|
||||||
taosUcs4ToMbs((TdUcs4*)varDataVal(pData), dataSize, pBuf);
|
(void)taosUcs4ToMbs((TdUcs4*)varDataVal(pData), dataSize, pBuf);
|
||||||
len += snprintf(dumpBuf + len, size - len, " %15s |", pBuf);
|
len += snprintf(dumpBuf + len, size - len, " %15s |", pBuf);
|
||||||
if (len >= size - 1) return dumpBuf;
|
if (len >= size - 1) return dumpBuf;
|
||||||
} break;
|
} break;
|
||||||
|
@ -2053,7 +2053,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq** pReq, const SSDataBlock* pDataB
|
||||||
case TSDB_DATA_TYPE_JSON:
|
case TSDB_DATA_TYPE_JSON:
|
||||||
case TSDB_DATA_TYPE_MEDIUMBLOB:
|
case TSDB_DATA_TYPE_MEDIUMBLOB:
|
||||||
uError("the column type %" PRIi16 " is defined but not implemented yet", pColInfoData->info.type);
|
uError("the column type %" PRIi16 " is defined but not implemented yet", pColInfoData->info.type);
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (pColInfoData->info.type < TSDB_DATA_TYPE_MAX && pColInfoData->info.type > TSDB_DATA_TYPE_NULL) {
|
if (pColInfoData->info.type < TSDB_DATA_TYPE_MAX && pColInfoData->info.type > TSDB_DATA_TYPE_NULL) {
|
||||||
|
@ -2084,7 +2084,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq** pReq, const SSDataBlock* pDataB
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uError("the column type %" PRIi16 " is undefined\n", pColInfoData->info.type);
|
uError("the column type %" PRIi16 " is undefined\n", pColInfoData->info.type);
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -993,7 +993,8 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
for (int32_t i = 0; i < vlen; ++i) {
|
for (int32_t i = 0; i < vlen; ++i) {
|
||||||
SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
|
SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
|
||||||
if (tEncodeI32(&encoder, pload->vgId) < 0) return -1;
|
if (tEncodeI32(&encoder, pload->vgId) < 0) return -1;
|
||||||
if (tEncodeI32(&encoder, pload->syncState) < 0) return -1;
|
if (tEncodeI8(&encoder, pload->syncState) < 0) return -1;
|
||||||
|
if (tEncodeI8(&encoder, pload->syncRestore) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->cacheUsage) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->cacheUsage) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->numOfTables) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->numOfTables) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->numOfTimeSeries) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->numOfTimeSeries) < 0) return -1;
|
||||||
|
@ -1003,7 +1004,8 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// mnode loads
|
// mnode loads
|
||||||
if (tEncodeI32(&encoder, pReq->mload.syncState) < 0) return -1;
|
if (tEncodeI8(&encoder, pReq->mload.syncState) < 0) return -1;
|
||||||
|
if (tEncodeI8(&encoder, pReq->mload.syncRestore) < 0) return -1;
|
||||||
|
|
||||||
if (tEncodeI32(&encoder, pReq->qload.dnodeId) < 0) return -1;
|
if (tEncodeI32(&encoder, pReq->qload.dnodeId) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery) < 0) return -1;
|
if (tEncodeI64(&encoder, pReq->qload.numOfProcessedQuery) < 0) return -1;
|
||||||
|
@ -1063,7 +1065,8 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
for (int32_t i = 0; i < vlen; ++i) {
|
for (int32_t i = 0; i < vlen; ++i) {
|
||||||
SVnodeLoad vload = {0};
|
SVnodeLoad vload = {0};
|
||||||
if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1;
|
if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1;
|
||||||
if (tDecodeI32(&decoder, &vload.syncState) < 0) return -1;
|
if (tDecodeI8(&decoder, &vload.syncState) < 0) return -1;
|
||||||
|
if (tDecodeI8(&decoder, &vload.syncRestore) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.cacheUsage) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.cacheUsage) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.numOfTables) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.numOfTables) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.numOfTimeSeries) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.numOfTimeSeries) < 0) return -1;
|
||||||
|
@ -1076,7 +1079,8 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tDecodeI32(&decoder, &pReq->mload.syncState) < 0) return -1;
|
if (tDecodeI8(&decoder, &pReq->mload.syncState) < 0) return -1;
|
||||||
|
if (tDecodeI8(&decoder, &pReq->mload.syncRestore) < 0) return -1;
|
||||||
|
|
||||||
if (tDecodeI32(&decoder, &pReq->qload.dnodeId) < 0) return -1;
|
if (tDecodeI32(&decoder, &pReq->qload.dnodeId) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery) < 0) return -1;
|
if (tDecodeI64(&decoder, &pReq->qload.numOfProcessedQuery) < 0) return -1;
|
||||||
|
|
|
@ -481,7 +481,7 @@ bool tdSTSRowGetVal(STSRowIter *pIter, col_id_t colId, col_type_t colType, SCell
|
||||||
|
|
||||||
int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pValType) {
|
int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pValType) {
|
||||||
if (!pBitmap || colIdx < 0) {
|
if (!pBitmap || colIdx < 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -503,7 +503,7 @@ int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pVa
|
||||||
*pValType = ((*pDestByte) & 0x03);
|
*pValType = ((*pDestByte) & 0x03);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -512,7 +512,7 @@ int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pVa
|
||||||
|
|
||||||
int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pValType) {
|
int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pValType) {
|
||||||
if (!pBitmap || colIdx < 0) {
|
if (!pBitmap || colIdx < 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -546,7 +546,7 @@ int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pVal
|
||||||
*pValType = ((*pDestByte) & 0x01);
|
*pValType = ((*pDestByte) & 0x01);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -555,7 +555,7 @@ int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pVal
|
||||||
|
|
||||||
int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
if (!pBitmap || colIdx < 0) {
|
if (!pBitmap || colIdx < 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -598,7 +598,7 @@ int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
// *pDestByte |= (valType);
|
// *pDestByte |= (valType);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -607,7 +607,7 @@ int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
|
|
||||||
int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_t offset, int16_t colIdx) {
|
int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_t offset, int16_t colIdx) {
|
||||||
#ifdef TD_SUPPORT_BITMAP
|
#ifdef TD_SUPPORT_BITMAP
|
||||||
TASSERT(colIdx < tdRowGetNCols(pRow) - 1);
|
ASSERT(colIdx < tdRowGetNCols(pRow) - 1);
|
||||||
if (tdGetBitmapValType(pBitmap, colIdx, &output->valType, 0) != TSDB_CODE_SUCCESS) {
|
if (tdGetBitmapValType(pBitmap, colIdx, &output->valType, 0) != TSDB_CODE_SUCCESS) {
|
||||||
output->valType = TD_VTYPE_NONE;
|
output->valType = TD_VTYPE_NONE;
|
||||||
return terrno;
|
return terrno;
|
||||||
|
@ -621,7 +621,7 @@ int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_
|
||||||
output->val = POINTER_SHIFT(pRow, offset);
|
output->val = POINTER_SHIFT(pRow, offset);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
if (offset < 0) {
|
if (offset < 0) {
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
output->valType = TD_VTYPE_NONE;
|
output->valType = TD_VTYPE_NONE;
|
||||||
|
@ -671,7 +671,7 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
#endif
|
#endif
|
||||||
|
@ -709,7 +709,7 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp
|
||||||
int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowValT valType, const void *val, bool isCopyVarData,
|
int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowValT valType, const void *val, bool isCopyVarData,
|
||||||
int8_t colType, int16_t colIdx, int32_t offset, col_id_t colId) {
|
int8_t colType, int16_t colIdx, int32_t offset, col_id_t colId) {
|
||||||
if ((offset < (int32_t)sizeof(SKvRowIdx)) || (colIdx < 1)) {
|
if ((offset < (int32_t)sizeof(SKvRowIdx)) || (colIdx < 1)) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -798,7 +798,7 @@ int32_t tdSRowSetExtendedInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBou
|
||||||
pBuilder->nCols = nCols;
|
pBuilder->nCols = nCols;
|
||||||
pBuilder->nBoundCols = nBoundCols;
|
pBuilder->nBoundCols = nBoundCols;
|
||||||
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -820,7 +820,7 @@ int32_t tdSRowSetExtendedInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBou
|
||||||
int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
pBuilder->pBuf = (STSRow *)pBuf;
|
pBuilder->pBuf = (STSRow *)pBuf;
|
||||||
if (!pBuilder->pBuf) {
|
if (!pBuilder->pBuf) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -831,7 +831,7 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
TD_ROW_SET_INFO(pBuilder->pBuf, 0);
|
TD_ROW_SET_INFO(pBuilder->pBuf, 0);
|
||||||
TD_ROW_SET_TYPE(pBuilder->pBuf, pBuilder->rowType);
|
TD_ROW_SET_TYPE(pBuilder->pBuf, pBuilder->rowType);
|
||||||
|
|
||||||
TASSERT(pBuilder->nBitmaps > 0 && pBuilder->flen > 0);
|
ASSERT(pBuilder->nBitmaps > 0 && pBuilder->flen > 0);
|
||||||
|
|
||||||
uint32_t len = 0;
|
uint32_t len = 0;
|
||||||
switch (pBuilder->rowType) {
|
switch (pBuilder->rowType) {
|
||||||
|
@ -857,7 +857,7 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
TD_ROW_SET_NCOLS(pBuilder->pBuf, pBuilder->nBoundCols);
|
TD_ROW_SET_NCOLS(pBuilder->pBuf, pBuilder->nBoundCols);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -868,12 +868,12 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
int32_t tdSRowGetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
int32_t tdSRowGetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
pBuilder->pBuf = (STSRow *)pBuf;
|
pBuilder->pBuf = (STSRow *)pBuf;
|
||||||
if (!pBuilder->pBuf) {
|
if (!pBuilder->pBuf) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
TASSERT(pBuilder->nBitmaps > 0 && pBuilder->flen > 0);
|
ASSERT(pBuilder->nBitmaps > 0 && pBuilder->flen > 0);
|
||||||
|
|
||||||
uint32_t len = 0;
|
uint32_t len = 0;
|
||||||
switch (pBuilder->rowType) {
|
switch (pBuilder->rowType) {
|
||||||
|
@ -888,7 +888,7 @@ int32_t tdSRowGetBuf(SRowBuilder *pBuilder, void *pBuf) {
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -908,7 +908,7 @@ int32_t tdSRowSetTpInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t flen) {
|
||||||
pBuilder->flen = flen;
|
pBuilder->flen = flen;
|
||||||
pBuilder->nCols = nCols;
|
pBuilder->nCols = nCols;
|
||||||
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -927,7 +927,7 @@ int32_t tdSRowSetInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBoundCols,
|
||||||
pBuilder->nCols = nCols;
|
pBuilder->nCols = nCols;
|
||||||
pBuilder->nBoundCols = nBoundCols;
|
pBuilder->nBoundCols = nBoundCols;
|
||||||
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
if (pBuilder->flen <= 0 || pBuilder->nCols <= 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -956,13 +956,13 @@ int32_t tdGetBitmapValType(const void *pBitmap, int16_t colIdx, TDRowValT *pValT
|
||||||
tdGetBitmapValTypeI(pBitmap, colIdx, pValType);
|
tdGetBitmapValTypeI(pBitmap, colIdx, pValType);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return TSDB_CODE_FAILED;
|
return TSDB_CODE_FAILED;
|
||||||
}
|
}
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode) {
|
bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode) {
|
||||||
TDRowValT valType = 0;
|
TDRowValT valType = 0;
|
||||||
tdGetBitmapValType(pBitmap, idx, &valType, bitmapMode);
|
tdGetBitmapValType(pBitmap, idx, &valType, bitmapMode);
|
||||||
|
@ -971,10 +971,11 @@ bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
if (!pBitmap || colIdx < 0) {
|
if (!pBitmap || colIdx < 0) {
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -1001,7 +1002,7 @@ int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType) {
|
||||||
// *pDestByte |= (valType);
|
// *pDestByte |= (valType);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -1018,7 +1019,7 @@ int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int
|
||||||
tdSetBitmapValTypeI(pBitmap, colIdx, valType);
|
tdSetBitmapValTypeI(pBitmap, colIdx, valType);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
terrno = TSDB_CODE_INVALID_PARA;
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
return TSDB_CODE_FAILED;
|
return TSDB_CODE_FAILED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -244,8 +244,7 @@ int32_t parseTimezone(char* str, int64_t* tzOffset) {
|
||||||
* 2013-04-12T15:52:01.123+0800
|
* 2013-04-12T15:52:01.123+0800
|
||||||
*/
|
*/
|
||||||
int32_t parseTimeWithTz(const char* timestr, int64_t* time, int32_t timePrec, char delim) {
|
int32_t parseTimeWithTz(const char* timestr, int64_t* time, int32_t timePrec, char delim) {
|
||||||
int64_t factor =
|
int64_t factor = TSDB_TICK_PER_SECOND(timePrec);
|
||||||
(timePrec == TSDB_TIME_PRECISION_MILLI) ? 1000 : (timePrec == TSDB_TIME_PRECISION_MICRO ? 1000000 : 1000000000);
|
|
||||||
int64_t tzOffset = 0;
|
int64_t tzOffset = 0;
|
||||||
|
|
||||||
struct tm tm = {0};
|
struct tm tm = {0};
|
||||||
|
@ -339,8 +338,8 @@ static FORCE_INLINE bool validateTm(struct tm* pTm) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t parseLocaltime(char* timestr, int32_t len, int64_t* time, int32_t timePrec, char delim) {
|
int32_t parseLocaltime(char* timestr, int32_t len, int64_t* utime, int32_t timePrec, char delim) {
|
||||||
*time = 0;
|
*utime = 0;
|
||||||
struct tm tm = {0};
|
struct tm tm = {0};
|
||||||
|
|
||||||
char* str;
|
char* str;
|
||||||
|
@ -378,15 +377,12 @@ int32_t parseLocaltime(char* timestr, int32_t len, int64_t* time, int32_t timePr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t factor =
|
*utime = TSDB_TICK_PER_SECOND(timePrec) * seconds + fraction;
|
||||||
(timePrec == TSDB_TIME_PRECISION_MILLI) ? 1000 : (timePrec == TSDB_TIME_PRECISION_MICRO ? 1000000 : 1000000000);
|
|
||||||
*time = factor * seconds + fraction;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t parseLocaltimeDst(char* timestr, int32_t len, int64_t* time, int32_t timePrec, char delim) {
|
int32_t parseLocaltimeDst(char* timestr, int32_t len, int64_t* utime, int32_t timePrec, char delim) {
|
||||||
*time = 0;
|
*utime = 0;
|
||||||
struct tm tm = {0};
|
struct tm tm = {0};
|
||||||
tm.tm_isdst = -1;
|
tm.tm_isdst = -1;
|
||||||
|
|
||||||
|
@ -411,7 +407,6 @@ int32_t parseLocaltimeDst(char* timestr, int32_t len, int64_t* time, int32_t tim
|
||||||
int64_t seconds = taosMktime(&tm);
|
int64_t seconds = taosMktime(&tm);
|
||||||
|
|
||||||
int64_t fraction = 0;
|
int64_t fraction = 0;
|
||||||
|
|
||||||
if (*str == '.') {
|
if (*str == '.') {
|
||||||
/* parse the second fraction part */
|
/* parse the second fraction part */
|
||||||
if ((fraction = parseFraction(str + 1, &str, timePrec)) < 0) {
|
if ((fraction = parseFraction(str + 1, &str, timePrec)) < 0) {
|
||||||
|
@ -419,9 +414,7 @@ int32_t parseLocaltimeDst(char* timestr, int32_t len, int64_t* time, int32_t tim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t factor =
|
*utime = TSDB_TICK_PER_SECOND(timePrec) * seconds + fraction;
|
||||||
(timePrec == TSDB_TIME_PRECISION_MILLI) ? 1000 : (timePrec == TSDB_TIME_PRECISION_MICRO ? 1000000 : 1000000000);
|
|
||||||
*time = factor * seconds + fraction;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -437,58 +430,61 @@ char getPrecisionUnit(int32_t precision) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrecision) {
|
int64_t convertTimePrecision(int64_t utime, int32_t fromPrecision, int32_t toPrecision) {
|
||||||
assert(fromPrecision == TSDB_TIME_PRECISION_MILLI || fromPrecision == TSDB_TIME_PRECISION_MICRO ||
|
ASSERT(fromPrecision == TSDB_TIME_PRECISION_MILLI || fromPrecision == TSDB_TIME_PRECISION_MICRO ||
|
||||||
fromPrecision == TSDB_TIME_PRECISION_NANO);
|
fromPrecision == TSDB_TIME_PRECISION_NANO);
|
||||||
assert(toPrecision == TSDB_TIME_PRECISION_MILLI || toPrecision == TSDB_TIME_PRECISION_MICRO ||
|
ASSERT(toPrecision == TSDB_TIME_PRECISION_MILLI || toPrecision == TSDB_TIME_PRECISION_MICRO ||
|
||||||
toPrecision == TSDB_TIME_PRECISION_NANO);
|
toPrecision == TSDB_TIME_PRECISION_NANO);
|
||||||
double tempResult = (double)time;
|
|
||||||
|
double tempResult = (double)utime;
|
||||||
|
|
||||||
switch (fromPrecision) {
|
switch (fromPrecision) {
|
||||||
case TSDB_TIME_PRECISION_MILLI: {
|
case TSDB_TIME_PRECISION_MILLI: {
|
||||||
switch (toPrecision) {
|
switch (toPrecision) {
|
||||||
case TSDB_TIME_PRECISION_MILLI:
|
case TSDB_TIME_PRECISION_MILLI:
|
||||||
return time;
|
return utime;
|
||||||
case TSDB_TIME_PRECISION_MICRO:
|
case TSDB_TIME_PRECISION_MICRO:
|
||||||
tempResult *= 1000;
|
tempResult *= 1000;
|
||||||
time *= 1000;
|
utime *= 1000;
|
||||||
goto end_;
|
goto end_;
|
||||||
case TSDB_TIME_PRECISION_NANO:
|
case TSDB_TIME_PRECISION_NANO:
|
||||||
tempResult *= 1000000;
|
tempResult *= 1000000;
|
||||||
time *= 1000000;
|
utime *= 1000000;
|
||||||
goto end_;
|
goto end_;
|
||||||
}
|
}
|
||||||
} // end from milli
|
} // end from milli
|
||||||
case TSDB_TIME_PRECISION_MICRO: {
|
case TSDB_TIME_PRECISION_MICRO: {
|
||||||
switch (toPrecision) {
|
switch (toPrecision) {
|
||||||
case TSDB_TIME_PRECISION_MILLI:
|
case TSDB_TIME_PRECISION_MILLI:
|
||||||
return time / 1000;
|
return utime / 1000;
|
||||||
case TSDB_TIME_PRECISION_MICRO:
|
case TSDB_TIME_PRECISION_MICRO:
|
||||||
return time;
|
return utime;
|
||||||
case TSDB_TIME_PRECISION_NANO:
|
case TSDB_TIME_PRECISION_NANO:
|
||||||
tempResult *= 1000;
|
tempResult *= 1000;
|
||||||
time *= 1000;
|
utime *= 1000;
|
||||||
goto end_;
|
goto end_;
|
||||||
}
|
}
|
||||||
} // end from micro
|
} // end from micro
|
||||||
case TSDB_TIME_PRECISION_NANO: {
|
case TSDB_TIME_PRECISION_NANO: {
|
||||||
switch (toPrecision) {
|
switch (toPrecision) {
|
||||||
case TSDB_TIME_PRECISION_MILLI:
|
case TSDB_TIME_PRECISION_MILLI:
|
||||||
return time / 1000000;
|
return utime / 1000000;
|
||||||
case TSDB_TIME_PRECISION_MICRO:
|
case TSDB_TIME_PRECISION_MICRO:
|
||||||
return time / 1000;
|
return utime / 1000;
|
||||||
case TSDB_TIME_PRECISION_NANO:
|
case TSDB_TIME_PRECISION_NANO:
|
||||||
return time;
|
return utime;
|
||||||
}
|
}
|
||||||
} // end from nano
|
} // end from nano
|
||||||
default: {
|
default: {
|
||||||
assert(0);
|
assert(0);
|
||||||
return time; // only to pass windows compilation
|
return utime; // only to pass windows compilation
|
||||||
}
|
}
|
||||||
} // end switch fromPrecision
|
} // end switch fromPrecision
|
||||||
|
|
||||||
end_:
|
end_:
|
||||||
if (tempResult >= (double)INT64_MAX) return INT64_MAX;
|
if (tempResult >= (double)INT64_MAX) return INT64_MAX;
|
||||||
if (tempResult <= (double)INT64_MIN) return INT64_MIN; // INT64_MIN means NULL
|
if (tempResult <= (double)INT64_MIN) return INT64_MIN; // INT64_MIN means NULL
|
||||||
return time;
|
return utime;
|
||||||
}
|
}
|
||||||
|
|
||||||
// !!!!notice:there are precision problems, double lose precison if time is too large, for example:
|
// !!!!notice:there are precision problems, double lose precison if time is too large, for example:
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#include "ttypes.h"
|
#include "ttypes.h"
|
||||||
#include "tcompression.h"
|
#include "tcompression.h"
|
||||||
#include "trow.h"
|
|
||||||
|
|
||||||
const int32_t TYPE_BYTES[16] = {
|
const int32_t TYPE_BYTES[16] = {
|
||||||
-1, // TSDB_DATA_TYPE_NULL
|
-1, // TSDB_DATA_TYPE_NULL
|
||||||
|
@ -86,18 +85,6 @@ FORCE_INLINE void *getDataMax(int32_t type) {
|
||||||
|
|
||||||
bool isValidDataType(int32_t type) { return type >= TSDB_DATA_TYPE_NULL && type < TSDB_DATA_TYPE_MAX; }
|
bool isValidDataType(int32_t type) { return type >= TSDB_DATA_TYPE_NULL && type < TSDB_DATA_TYPE_MAX; }
|
||||||
|
|
||||||
void setVardataNull(void *val, int32_t type) {
|
|
||||||
if (type == TSDB_DATA_TYPE_BINARY) {
|
|
||||||
varDataSetLen(val, sizeof(int8_t));
|
|
||||||
*(uint8_t *)varDataVal(val) = TSDB_DATA_BINARY_NULL;
|
|
||||||
} else if (type == TSDB_DATA_TYPE_NCHAR) {
|
|
||||||
varDataSetLen(val, sizeof(int32_t));
|
|
||||||
*(uint32_t *)varDataVal(val) = TSDB_DATA_NCHAR_NULL;
|
|
||||||
} else {
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define POINTER_SHIFT(p, b) ((void *)((char *)(p) + (b)))
|
#define POINTER_SHIFT(p, b) ((void *)((char *)(p) + (b)))
|
||||||
|
|
||||||
void assignVal(char *val, const char *src, int32_t len, int32_t type) {
|
void assignVal(char *val, const char *src, int32_t len, int32_t type) {
|
||||||
|
|
|
@ -204,7 +204,8 @@ typedef struct {
|
||||||
int32_t id;
|
int32_t id;
|
||||||
int64_t createdTime;
|
int64_t createdTime;
|
||||||
int64_t updateTime;
|
int64_t updateTime;
|
||||||
ESyncState state;
|
ESyncState syncState;
|
||||||
|
bool syncRestore;
|
||||||
int64_t stateStartTime;
|
int64_t stateStartTime;
|
||||||
SDnodeObj* pDnode;
|
SDnodeObj* pDnode;
|
||||||
} SMnodeObj;
|
} SMnodeObj;
|
||||||
|
@ -324,7 +325,8 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t dnodeId;
|
int32_t dnodeId;
|
||||||
ESyncState role;
|
ESyncState syncState;
|
||||||
|
bool syncRestore;
|
||||||
} SVnodeGid;
|
} SVnodeGid;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -278,7 +278,7 @@ static int32_t mndProcessMqHbReq(SRpcMsg *pMsg) {
|
||||||
|
|
||||||
SMqConsumerObj *pConsumer = mndAcquireConsumer(pMnode, consumerId);
|
SMqConsumerObj *pConsumer = mndAcquireConsumer(pMnode, consumerId);
|
||||||
if (pConsumer == NULL) {
|
if (pConsumer == NULL) {
|
||||||
mError("consumer %ld not exist", consumerId);
|
mError("consumer %" PRId64 " not exist", consumerId);
|
||||||
terrno = TSDB_CODE_MND_CONSUMER_NOT_EXIST;
|
terrno = TSDB_CODE_MND_CONSUMER_NOT_EXIST;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -288,7 +288,7 @@ static int32_t mndProcessMqHbReq(SRpcMsg *pMsg) {
|
||||||
int32_t status = atomic_load_32(&pConsumer->status);
|
int32_t status = atomic_load_32(&pConsumer->status);
|
||||||
|
|
||||||
if (status == MQ_CONSUMER_STATUS__LOST_REBD) {
|
if (status == MQ_CONSUMER_STATUS__LOST_REBD) {
|
||||||
mInfo("try to recover consumer %ld", consumerId);
|
mInfo("try to recover consumer %" PRId64 "", consumerId);
|
||||||
SMqConsumerRecoverMsg *pRecoverMsg = rpcMallocCont(sizeof(SMqConsumerRecoverMsg));
|
SMqConsumerRecoverMsg *pRecoverMsg = rpcMallocCont(sizeof(SMqConsumerRecoverMsg));
|
||||||
|
|
||||||
pRecoverMsg->consumerId = consumerId;
|
pRecoverMsg->consumerId = consumerId;
|
||||||
|
@ -327,7 +327,7 @@ static int32_t mndProcessAskEpReq(SRpcMsg *pMsg) {
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
if (status == MQ_CONSUMER_STATUS__LOST_REBD) {
|
if (status == MQ_CONSUMER_STATUS__LOST_REBD) {
|
||||||
mInfo("try to recover consumer %ld", consumerId);
|
mInfo("try to recover consumer %" PRId64 "", consumerId);
|
||||||
SMqConsumerRecoverMsg *pRecoverMsg = rpcMallocCont(sizeof(SMqConsumerRecoverMsg));
|
SMqConsumerRecoverMsg *pRecoverMsg = rpcMallocCont(sizeof(SMqConsumerRecoverMsg));
|
||||||
|
|
||||||
pRecoverMsg->consumerId = consumerId;
|
pRecoverMsg->consumerId = consumerId;
|
||||||
|
@ -341,7 +341,7 @@ static int32_t mndProcessAskEpReq(SRpcMsg *pMsg) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (status != MQ_CONSUMER_STATUS__READY) {
|
if (status != MQ_CONSUMER_STATUS__READY) {
|
||||||
mInfo("consumer %ld not ready, status: %s", consumerId, mndConsumerStatusName(status));
|
mInfo("consumer %" PRId64 " not ready, status: %s", consumerId, mndConsumerStatusName(status));
|
||||||
terrno = TSDB_CODE_MND_CONSUMER_NOT_READY;
|
terrno = TSDB_CODE_MND_CONSUMER_NOT_READY;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ static SSdbRaw *mndDbActionEncode(SDbObj *pDb) {
|
||||||
SDB_SET_INT8(pRaw, dataPos, pDb->cfg.hashMethod, _OVER)
|
SDB_SET_INT8(pRaw, dataPos, pDb->cfg.hashMethod, _OVER)
|
||||||
SDB_SET_INT32(pRaw, dataPos, pDb->cfg.numOfRetensions, _OVER)
|
SDB_SET_INT32(pRaw, dataPos, pDb->cfg.numOfRetensions, _OVER)
|
||||||
for (int32_t i = 0; i < pDb->cfg.numOfRetensions; ++i) {
|
for (int32_t i = 0; i < pDb->cfg.numOfRetensions; ++i) {
|
||||||
TASSERT(taosArrayGetSize(pDb->cfg.pRetensions) == pDb->cfg.numOfRetensions);
|
ASSERT(taosArrayGetSize(pDb->cfg.pRetensions) == pDb->cfg.numOfRetensions);
|
||||||
SRetention *pRetension = taosArrayGet(pDb->cfg.pRetensions, i);
|
SRetention *pRetension = taosArrayGet(pDb->cfg.pRetensions, i);
|
||||||
SDB_SET_INT64(pRaw, dataPos, pRetension->freq, _OVER)
|
SDB_SET_INT64(pRaw, dataPos, pRetension->freq, _OVER)
|
||||||
SDB_SET_INT64(pRaw, dataPos, pRetension->keep, _OVER)
|
SDB_SET_INT64(pRaw, dataPos, pRetension->keep, _OVER)
|
||||||
|
@ -1157,7 +1157,7 @@ static void mndBuildDBVgroupInfo(SDbObj *pDb, SMnode *pMnode, SArray *pVgList) {
|
||||||
pEp->port = pDnode->port;
|
pEp->port = pDnode->port;
|
||||||
}
|
}
|
||||||
mndReleaseDnode(pMnode, pDnode);
|
mndReleaseDnode(pMnode, pDnode);
|
||||||
if (pVgid->role == TAOS_SYNC_STATE_LEADER) {
|
if (pVgid->syncState == TAOS_SYNC_STATE_LEADER) {
|
||||||
vgInfo.epSet.inUse = gid;
|
vgInfo.epSet.inUse = gid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1553,7 +1553,7 @@ bool mndIsDbReady(SMnode *pMnode, SDbObj *pDb) {
|
||||||
if (pVgroup->dbUid == pDb->uid && pVgroup->replica > 1) {
|
if (pVgroup->dbUid == pDb->uid && pVgroup->replica > 1) {
|
||||||
bool hasLeader = false;
|
bool hasLeader = false;
|
||||||
for (int32_t i = 0; i < pVgroup->replica; ++i) {
|
for (int32_t i = 0; i < pVgroup->replica; ++i) {
|
||||||
if (pVgroup->vnodeGid[i].role == TAOS_SYNC_STATE_LEADER) {
|
if (pVgroup->vnodeGid[i].syncState == TAOS_SYNC_STATE_LEADER) {
|
||||||
hasLeader = true;
|
hasLeader = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -361,10 +361,12 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) {
|
||||||
bool roleChanged = false;
|
bool roleChanged = false;
|
||||||
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
||||||
if (pVgroup->vnodeGid[vg].dnodeId == statusReq.dnodeId) {
|
if (pVgroup->vnodeGid[vg].dnodeId == statusReq.dnodeId) {
|
||||||
if (pVgroup->vnodeGid[vg].role != pVload->syncState) {
|
if (pVgroup->vnodeGid[vg].syncState != pVload->syncState ||
|
||||||
|
pVgroup->vnodeGid[vg].syncRestore != pVload->syncRestore) {
|
||||||
|
pVgroup->vnodeGid[vg].syncState = pVload->syncState;
|
||||||
|
pVgroup->vnodeGid[vg].syncRestore = pVload->syncRestore;
|
||||||
roleChanged = true;
|
roleChanged = true;
|
||||||
}
|
}
|
||||||
pVgroup->vnodeGid[vg].role = pVload->syncState;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -378,10 +380,11 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) {
|
||||||
|
|
||||||
SMnodeObj *pObj = mndAcquireMnode(pMnode, pDnode->id);
|
SMnodeObj *pObj = mndAcquireMnode(pMnode, pDnode->id);
|
||||||
if (pObj != NULL) {
|
if (pObj != NULL) {
|
||||||
if (pObj->state != statusReq.mload.syncState) {
|
if (pObj->syncState != statusReq.mload.syncState || pObj->syncRestore != statusReq.mload.syncRestore) {
|
||||||
mInfo("dnode:%d, mnode syncstate from %s to %s", pObj->id, syncStr(pObj->state),
|
mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d", pObj->id, syncStr(pObj->syncState),
|
||||||
syncStr(statusReq.mload.syncState));
|
syncStr(statusReq.mload.syncState), pObj->syncRestore, statusReq.mload.syncRestore);
|
||||||
pObj->state = statusReq.mload.syncState;
|
pObj->syncState = statusReq.mload.syncState;
|
||||||
|
pObj->syncRestore = statusReq.mload.syncRestore;
|
||||||
pObj->stateStartTime = taosGetTimestampMs();
|
pObj->stateStartTime = taosGetTimestampMs();
|
||||||
}
|
}
|
||||||
mndReleaseMnode(pMnode, pObj);
|
mndReleaseMnode(pMnode, pObj);
|
||||||
|
|
|
@ -765,7 +765,7 @@ int32_t mndGetMonitorInfo(SMnode *pMnode, SMonClusterInfo *pClusterInfo, SMonVgr
|
||||||
// pClusterInfo->master_uptime = (ms - pObj->stateStartTime) / (86400000.0f);
|
// pClusterInfo->master_uptime = (ms - pObj->stateStartTime) / (86400000.0f);
|
||||||
tstrncpy(desc.role, syncStr(TAOS_SYNC_STATE_LEADER), sizeof(desc.role));
|
tstrncpy(desc.role, syncStr(TAOS_SYNC_STATE_LEADER), sizeof(desc.role));
|
||||||
} else {
|
} else {
|
||||||
tstrncpy(desc.role, syncStr(pObj->state), sizeof(desc.role));
|
tstrncpy(desc.role, syncStr(pObj->syncState), sizeof(desc.role));
|
||||||
}
|
}
|
||||||
taosArrayPush(pClusterInfo->mnodes, &desc);
|
taosArrayPush(pClusterInfo->mnodes, &desc);
|
||||||
sdbRelease(pSdb, pObj);
|
sdbRelease(pSdb, pObj);
|
||||||
|
@ -795,12 +795,12 @@ int32_t mndGetMonitorInfo(SMnode *pMnode, SMonClusterInfo *pClusterInfo, SMonVgr
|
||||||
SVnodeGid *pVgid = &pVgroup->vnodeGid[i];
|
SVnodeGid *pVgid = &pVgroup->vnodeGid[i];
|
||||||
SMonVnodeDesc *pVnDesc = &desc.vnodes[i];
|
SMonVnodeDesc *pVnDesc = &desc.vnodes[i];
|
||||||
pVnDesc->dnode_id = pVgid->dnodeId;
|
pVnDesc->dnode_id = pVgid->dnodeId;
|
||||||
tstrncpy(pVnDesc->vnode_role, syncStr(pVgid->role), sizeof(pVnDesc->vnode_role));
|
tstrncpy(pVnDesc->vnode_role, syncStr(pVgid->syncState), sizeof(pVnDesc->vnode_role));
|
||||||
if (pVgid->role == TAOS_SYNC_STATE_LEADER) {
|
if (pVgid->syncState == TAOS_SYNC_STATE_LEADER) {
|
||||||
tstrncpy(desc.status, "ready", sizeof(desc.status));
|
tstrncpy(desc.status, "ready", sizeof(desc.status));
|
||||||
pClusterInfo->vgroups_alive++;
|
pClusterInfo->vgroups_alive++;
|
||||||
}
|
}
|
||||||
if (pVgid->role != TAOS_SYNC_STATE_ERROR) {
|
if (pVgid->syncState != TAOS_SYNC_STATE_ERROR) {
|
||||||
pClusterInfo->vnodes_alive++;
|
pClusterInfo->vnodes_alive++;
|
||||||
}
|
}
|
||||||
pClusterInfo->vnodes_total++;
|
pClusterInfo->vnodes_total++;
|
||||||
|
@ -845,7 +845,8 @@ int32_t mndGetMonitorInfo(SMnode *pMnode, SMonClusterInfo *pClusterInfo, SMonVgr
|
||||||
|
|
||||||
int32_t mndGetLoad(SMnode *pMnode, SMnodeLoad *pLoad) {
|
int32_t mndGetLoad(SMnode *pMnode, SMnodeLoad *pLoad) {
|
||||||
pLoad->syncState = syncGetMyRole(pMnode->syncMgmt.sync);
|
pLoad->syncState = syncGetMyRole(pMnode->syncMgmt.sync);
|
||||||
mTrace("mnode current syncstate is %s", syncStr(pLoad->syncState));
|
pLoad->syncRestore = pMnode->restored;
|
||||||
|
mTrace("mnode current syncState is %s, syncRestore:%d", syncStr(pLoad->syncState), pLoad->syncRestore);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ static int32_t mndMnodeActionInsert(SSdb *pSdb, SMnodeObj *pObj) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pObj->state = TAOS_SYNC_STATE_ERROR;
|
pObj->syncState = TAOS_SYNC_STATE_ERROR;
|
||||||
mndReloadSyncConfig(pSdb->pMnode);
|
mndReloadSyncConfig(pSdb->pMnode);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -604,19 +604,19 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB
|
||||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
||||||
colDataAppend(pColInfo, numOfRows, b1, false);
|
colDataAppend(pColInfo, numOfRows, b1, false);
|
||||||
|
|
||||||
const char *roles = "offline";
|
char role[20] = "offline";
|
||||||
if (pObj->id == pMnode->selfDnodeId) {
|
if (pObj->id == pMnode->selfDnodeId) {
|
||||||
roles = syncStr(TAOS_SYNC_STATE_LEADER);
|
snprintf(role, sizeof(role), "%s%s", syncStr(TAOS_SYNC_STATE_LEADER), pMnode->restored ? "" : "*");
|
||||||
}
|
}
|
||||||
if (mndIsDnodeOnline(pObj->pDnode, curMs)) {
|
if (mndIsDnodeOnline(pObj->pDnode, curMs)) {
|
||||||
roles = syncStr(pObj->state);
|
tstrncpy(role, syncStr(pObj->syncState), sizeof(role));
|
||||||
if (pObj->state == TAOS_SYNC_STATE_LEADER && pObj->id != pMnode->selfDnodeId) {
|
if (pObj->syncState == TAOS_SYNC_STATE_LEADER && pObj->id != pMnode->selfDnodeId) {
|
||||||
roles = syncStr(TAOS_SYNC_STATE_ERROR);
|
tstrncpy(role, syncStr(TAOS_SYNC_STATE_ERROR), sizeof(role));
|
||||||
mError("mnode:%d, is leader too", pObj->id);
|
mError("mnode:%d, is leader too", pObj->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
char b2[12 + VARSTR_HEADER_SIZE] = {0};
|
char b2[12 + VARSTR_HEADER_SIZE] = {0};
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(b2, roles, pShow->pMeta->pSchemas[cols].bytes);
|
STR_WITH_MAXSIZE_TO_VARSTR(b2, role, pShow->pMeta->pSchemas[cols].bytes);
|
||||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
||||||
colDataAppend(pColInfo, numOfRows, (const char *)b2, false);
|
colDataAppend(pColInfo, numOfRows, (const char *)b2, false);
|
||||||
|
|
||||||
|
|
|
@ -426,10 +426,10 @@ static int32_t mndDoRebalance(SMnode *pMnode, const SMqRebInputObj *pInput, SMqR
|
||||||
if (pIter == NULL) break;
|
if (pIter == NULL) break;
|
||||||
SMqConsumerEp *pConsumerEp = (SMqConsumerEp *)pIter;
|
SMqConsumerEp *pConsumerEp = (SMqConsumerEp *)pIter;
|
||||||
int32_t sz = taosArrayGetSize(pConsumerEp->vgs);
|
int32_t sz = taosArrayGetSize(pConsumerEp->vgs);
|
||||||
mInfo("mq rebalance: final cfg: consumer %ld has %d vg", pConsumerEp->consumerId, sz);
|
mInfo("mq rebalance: final cfg: consumer %" PRId64 " has %d vg", pConsumerEp->consumerId, sz);
|
||||||
for (int32_t i = 0; i < sz; i++) {
|
for (int32_t i = 0; i < sz; i++) {
|
||||||
SMqVgEp *pVgEp = taosArrayGetP(pConsumerEp->vgs, i);
|
SMqVgEp *pVgEp = taosArrayGetP(pConsumerEp->vgs, i);
|
||||||
mInfo("mq rebalance: final cfg: vg %d to consumer %ld", pVgEp->vgId, pConsumerEp->consumerId);
|
mInfo("mq rebalance: final cfg: vg %d to consumer %" PRId64 "", pVgEp->vgId, pConsumerEp->consumerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,7 +142,7 @@ SSdbRow *mndVgroupActionDecode(SSdbRaw *pRaw) {
|
||||||
SVnodeGid *pVgid = &pVgroup->vnodeGid[i];
|
SVnodeGid *pVgid = &pVgroup->vnodeGid[i];
|
||||||
SDB_GET_INT32(pRaw, dataPos, &pVgid->dnodeId, _OVER)
|
SDB_GET_INT32(pRaw, dataPos, &pVgid->dnodeId, _OVER)
|
||||||
if (pVgroup->replica == 1) {
|
if (pVgroup->replica == 1) {
|
||||||
pVgid->role = TAOS_SYNC_STATE_LEADER;
|
pVgid->syncState = TAOS_SYNC_STATE_LEADER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SDB_GET_RESERVE(pRaw, dataPos, VGROUP_RESERVE_SIZE, _OVER)
|
SDB_GET_RESERVE(pRaw, dataPos, VGROUP_RESERVE_SIZE, _OVER)
|
||||||
|
@ -485,9 +485,9 @@ static int32_t mndGetAvailableDnode(SMnode *pMnode, SDbObj *pDb, SVgObj *pVgroup
|
||||||
|
|
||||||
pVgid->dnodeId = pDnode->id;
|
pVgid->dnodeId = pDnode->id;
|
||||||
if (pVgroup->replica == 1) {
|
if (pVgroup->replica == 1) {
|
||||||
pVgid->role = TAOS_SYNC_STATE_LEADER;
|
pVgid->syncState = TAOS_SYNC_STATE_LEADER;
|
||||||
} else {
|
} else {
|
||||||
pVgid->role = TAOS_SYNC_STATE_FOLLOWER;
|
pVgid->syncState = TAOS_SYNC_STATE_FOLLOWER;
|
||||||
}
|
}
|
||||||
|
|
||||||
mInfo("db:%s, vgId:%d, vn:%d is alloced, memory:%" PRId64 ", dnode:%d avail:%" PRId64 " used:%" PRId64,
|
mInfo("db:%s, vgId:%d, vn:%d is alloced, memory:%" PRId64 ", dnode:%d avail:%" PRId64 " used:%" PRId64,
|
||||||
|
@ -587,7 +587,7 @@ SEpSet mndGetVgroupEpset(SMnode *pMnode, const SVgObj *pVgroup) {
|
||||||
SDnodeObj *pDnode = mndAcquireDnode(pMnode, pVgid->dnodeId);
|
SDnodeObj *pDnode = mndAcquireDnode(pMnode, pVgid->dnodeId);
|
||||||
if (pDnode == NULL) continue;
|
if (pDnode == NULL) continue;
|
||||||
|
|
||||||
if (pVgid->role == TAOS_SYNC_STATE_LEADER) {
|
if (pVgid->syncState == TAOS_SYNC_STATE_LEADER) {
|
||||||
epset.inUse = epset.numOfEps;
|
epset.inUse = epset.numOfEps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -681,8 +681,12 @@ static int32_t mndRetrieveVgroups(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *p
|
||||||
mndReleaseDnode(pMnode, pDnode);
|
mndReleaseDnode(pMnode, pDnode);
|
||||||
}
|
}
|
||||||
|
|
||||||
char buf1[20] = {0};
|
char buf1[20] = {0};
|
||||||
const char *role = online ? syncStr(pVgroup->vnodeGid[i].role) : "offline";
|
char role[20] = "offline";
|
||||||
|
if (online) {
|
||||||
|
bool show = (pVgroup->vnodeGid[i].syncState == TAOS_SYNC_STATE_LEADER && !pVgroup->vnodeGid[i].syncRestore);
|
||||||
|
snprintf(role, sizeof(role), "%s%s", syncStr(pVgroup->vnodeGid[i].syncState), show ? "*" : "");
|
||||||
|
}
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(buf1, role, pShow->pMeta->pSchemas[cols].bytes);
|
STR_WITH_MAXSIZE_TO_VARSTR(buf1, role, pShow->pMeta->pSchemas[cols].bytes);
|
||||||
|
|
||||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
||||||
|
@ -809,7 +813,7 @@ static int32_t mndRetrieveVnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB
|
||||||
colDataAppend(pColInfo, numOfRows, (const char *)&pVgroup->replica, false);
|
colDataAppend(pColInfo, numOfRows, (const char *)&pVgroup->replica, false);
|
||||||
|
|
||||||
char buf[20] = {0};
|
char buf[20] = {0};
|
||||||
STR_TO_VARSTR(buf, syncStr(pVgid->role));
|
STR_TO_VARSTR(buf, syncStr(pVgid->syncState));
|
||||||
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
|
||||||
colDataAppend(pColInfo, numOfRows, (const char *)buf, false);
|
colDataAppend(pColInfo, numOfRows, (const char *)buf, false);
|
||||||
|
|
||||||
|
@ -887,7 +891,7 @@ int32_t mndAddVnodeToVgroup(SMnode *pMnode, SVgObj *pVgroup, SArray *pArray) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pVgid->dnodeId = pDnode->id;
|
pVgid->dnodeId = pDnode->id;
|
||||||
pVgid->role = TAOS_SYNC_STATE_ERROR;
|
pVgid->syncState = TAOS_SYNC_STATE_ERROR;
|
||||||
mInfo("db:%s, vgId:%d, vn:%d is added, memory:%" PRId64 ", dnode:%d avail:%" PRId64 " used:%" PRId64,
|
mInfo("db:%s, vgId:%d, vn:%d is added, memory:%" PRId64 ", dnode:%d avail:%" PRId64 " used:%" PRId64,
|
||||||
pVgroup->dbName, pVgroup->vgId, pVgroup->replica, vgMem, pVgid->dnodeId, pDnode->memAvail, pDnode->memUsed);
|
pVgroup->dbName, pVgroup->vgId, pVgroup->replica, vgMem, pVgid->dnodeId, pDnode->memAvail, pDnode->memUsed);
|
||||||
|
|
||||||
|
@ -1179,7 +1183,7 @@ static int32_t mndAddIncVgroupReplicaToTrans(SMnode *pMnode, STrans *pTrans, SDb
|
||||||
SVnodeGid *pGid = &pVgroup->vnodeGid[pVgroup->replica];
|
SVnodeGid *pGid = &pVgroup->vnodeGid[pVgroup->replica];
|
||||||
pVgroup->replica++;
|
pVgroup->replica++;
|
||||||
pGid->dnodeId = newDnodeId;
|
pGid->dnodeId = newDnodeId;
|
||||||
pGid->role = TAOS_SYNC_STATE_ERROR;
|
pGid->syncState = TAOS_SYNC_STATE_ERROR;
|
||||||
|
|
||||||
if (mndAddCreateVnodeAction(pMnode, pTrans, pDb, pVgroup, pGid, true) != 0) return -1;
|
if (mndAddCreateVnodeAction(pMnode, pTrans, pDb, pVgroup, pGid, true) != 0) return -1;
|
||||||
if (mndAddAlterVnodeAction(pMnode, pTrans, pDb, pVgroup, TDMT_VND_ALTER_REPLICA) != 0) return -1;
|
if (mndAddAlterVnodeAction(pMnode, pTrans, pDb, pVgroup, TDMT_VND_ALTER_REPLICA) != 0) return -1;
|
||||||
|
@ -1233,7 +1237,7 @@ static int32_t mndRedistributeVgroup(SMnode *pMnode, SRpcMsg *pReq, SDbObj *pDb,
|
||||||
mInfo("vgId:%d, vgroup info before redistribute, replica:%d", newVg.vgId, newVg.replica);
|
mInfo("vgId:%d, vgroup info before redistribute, replica:%d", newVg.vgId, newVg.replica);
|
||||||
for (int32_t i = 0; i < newVg.replica; ++i) {
|
for (int32_t i = 0; i < newVg.replica; ++i) {
|
||||||
mInfo("vgId:%d, vnode:%d dnode:%d role:%s", newVg.vgId, i, newVg.vnodeGid[i].dnodeId,
|
mInfo("vgId:%d, vnode:%d dnode:%d role:%s", newVg.vgId, i, newVg.vnodeGid[i].dnodeId,
|
||||||
syncStr(newVg.vnodeGid[i].role));
|
syncStr(newVg.vnodeGid[i].syncState));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pNew1 != NULL && pOld1 != NULL) {
|
if (pNew1 != NULL && pOld1 != NULL) {
|
||||||
|
|
|
@ -15,17 +15,18 @@
|
||||||
|
|
||||||
#include "meta.h"
|
#include "meta.h"
|
||||||
|
|
||||||
static int metaSaveJsonVarToIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSchema *pSchema);
|
static int metaSaveJsonVarToIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSchema *pSchema);
|
||||||
static int metaDelJsonVarFromIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSchema *pSchema);
|
static int metaDelJsonVarFromIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSchema *pSchema);
|
||||||
static int metaSaveToTbDb(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaSaveToTbDb(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateUidIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateUidIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateNameIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateNameIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateTtlIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateTtlIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaSaveToSkmDb(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaSaveToSkmDb(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateCtbIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateCtbIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateSuidIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateSuidIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaUpdateTagIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry);
|
static int metaUpdateTagIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry);
|
||||||
static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type);
|
static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type);
|
||||||
|
static void metaDestroyTagIdxKey(STagIdxKey *pTagIdxKey);
|
||||||
// opt ins_tables query
|
// opt ins_tables query
|
||||||
static int metaUpdateCtimeIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaUpdateCtimeIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
static int metaDeleteCtimeIdx(SMeta *pMeta, const SMetaEntry *pME);
|
static int metaDeleteCtimeIdx(SMeta *pMeta, const SMetaEntry *pME);
|
||||||
|
@ -601,7 +602,11 @@ static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type) {
|
||||||
tdbTbGet(pMeta->pTbDb, &(STbDbKey){.version = version, .uid = uid}, sizeof(STbDbKey), &pData, &nData);
|
tdbTbGet(pMeta->pTbDb, &(STbDbKey){.version = version, .uid = uid}, sizeof(STbDbKey), &pData, &nData);
|
||||||
|
|
||||||
tDecoderInit(&dc, pData, nData);
|
tDecoderInit(&dc, pData, nData);
|
||||||
metaDecodeEntry(&dc, &e);
|
rc = metaDecodeEntry(&dc, &e);
|
||||||
|
if (rc < 0) {
|
||||||
|
tDecoderClear(&dc);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (type) *type = e.type;
|
if (type) *type = e.type;
|
||||||
|
|
||||||
|
@ -621,6 +626,28 @@ static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type) {
|
||||||
const SSchema *pTagColumn = &stbEntry.stbEntry.schemaTag.pSchema[0];
|
const SSchema *pTagColumn = &stbEntry.stbEntry.schemaTag.pSchema[0];
|
||||||
if (pTagColumn->type == TSDB_DATA_TYPE_JSON) {
|
if (pTagColumn->type == TSDB_DATA_TYPE_JSON) {
|
||||||
metaDelJsonVarFromIdx(pMeta, &e, pTagColumn);
|
metaDelJsonVarFromIdx(pMeta, &e, pTagColumn);
|
||||||
|
} else {
|
||||||
|
STagIdxKey *pTagIdxKey = NULL;
|
||||||
|
int32_t nTagIdxKey;
|
||||||
|
|
||||||
|
const void *pTagData = NULL;
|
||||||
|
int32_t nTagData = 0;
|
||||||
|
|
||||||
|
STagVal tagVal = {.cid = pTagColumn->colId};
|
||||||
|
tTagGet((const STag *)e.ctbEntry.pTags, &tagVal);
|
||||||
|
if (IS_VAR_DATA_TYPE(pTagColumn->type)) {
|
||||||
|
pTagData = tagVal.pData;
|
||||||
|
nTagData = (int32_t)tagVal.nData;
|
||||||
|
} else {
|
||||||
|
pTagData = &(tagVal.i64);
|
||||||
|
nTagData = tDataTypes[pTagColumn->type].bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (metaCreateTagIdxKey(e.ctbEntry.suid, pTagColumn->colId, pTagData, nTagData, pTagColumn->type, uid,
|
||||||
|
&pTagIdxKey, &nTagIdxKey) == 0) {
|
||||||
|
tdbTbDelete(pMeta->pTagIdx, pTagIdxKey, nTagIdxKey, &pMeta->txn);
|
||||||
|
}
|
||||||
|
metaDestroyTagIdxKey(pTagIdxKey);
|
||||||
}
|
}
|
||||||
tDecoderClear(&tdc);
|
tDecoderClear(&tdc);
|
||||||
}
|
}
|
||||||
|
@ -706,6 +733,11 @@ static int metaAlterTableColumn(SMeta *pMeta, int64_t version, SVAlterTbReq *pAl
|
||||||
SSchemaWrapper *pSchema;
|
SSchemaWrapper *pSchema;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
|
if (pAlterTbReq->colName == NULL) {
|
||||||
|
terrno = TSDB_CODE_INVALID_MSG;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// search name index
|
// search name index
|
||||||
ret = tdbTbGet(pMeta->pNameIdx, pAlterTbReq->tbName, strlen(pAlterTbReq->tbName) + 1, &pVal, &nVal);
|
ret = tdbTbGet(pMeta->pNameIdx, pAlterTbReq->tbName, strlen(pAlterTbReq->tbName) + 1, &pVal, &nVal);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -1282,7 +1314,10 @@ static int metaUpdateTagIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry) {
|
||||||
tdbTbGet(pMeta->pTbDb, &tbDbKey, sizeof(tbDbKey), &pData, &nData);
|
tdbTbGet(pMeta->pTbDb, &tbDbKey, sizeof(tbDbKey), &pData, &nData);
|
||||||
|
|
||||||
tDecoderInit(&dc, pData, nData);
|
tDecoderInit(&dc, pData, nData);
|
||||||
metaDecodeEntry(&dc, &stbEntry);
|
ret = metaDecodeEntry(&dc, &stbEntry);
|
||||||
|
if (ret < 0) {
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
pTagColumn = &stbEntry.stbEntry.schemaTag.pSchema[0];
|
pTagColumn = &stbEntry.stbEntry.schemaTag.pSchema[0];
|
||||||
|
|
||||||
|
|
|
@ -455,7 +455,7 @@ static int32_t tdRsmaStopExecutor(const SSma *pSma) {
|
||||||
|
|
||||||
for (int32_t i = 0; i < tsNumOfVnodeRsmaThreads; ++i) {
|
for (int32_t i = 0; i < tsNumOfVnodeRsmaThreads; ++i) {
|
||||||
if (taosCheckPthreadValid(pthread[i])) {
|
if (taosCheckPthreadValid(pthread[i])) {
|
||||||
smaDebug("vgId:%d, start to join pthread for rsma:%" PRId64, SMA_VID(pSma), pthread[i]);
|
smaDebug("vgId:%d, start to join pthread for rsma:%" PRId64 "", SMA_VID(pSma), taosGetPthreadId(pthread[i]));
|
||||||
taosThreadJoin(pthread[i], NULL);
|
taosThreadJoin(pthread[i], NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -463,4 +463,4 @@ static int32_t tdRsmaStopExecutor(const SSma *pSma) {
|
||||||
smaInfo("vgId:%d, rsma executor stopped, number:%d", SMA_VID(pSma), tsNumOfVnodeRsmaThreads);
|
smaInfo("vgId:%d, rsma executor stopped, number:%d", SMA_VID(pSma), tsNumOfVnodeRsmaThreads);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,8 +92,7 @@ static int32_t smaEvalDays(SVnode *pVnode, SRetention *r, int8_t level, int8_t p
|
||||||
days = freqDuration;
|
days = freqDuration;
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
smaInfo("vgId:%d, evaluated duration for level %" PRIi8 " is %d, raw val:%d", TD_VID(pVnode), level + 1, days,
|
smaInfo("vgId:%d, evaluated duration for level %d is %d, raw val:%d", TD_VID(pVnode), level + 1, days, duration);
|
||||||
duration);
|
|
||||||
return days;
|
return days;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,4 +185,4 @@ int32_t tdRSmaRestore(SSma *pSma, int8_t type, int64_t committedVer) {
|
||||||
ASSERT(VND_IS_RSMA(pSma->pVnode));
|
ASSERT(VND_IS_RSMA(pSma->pVnode));
|
||||||
|
|
||||||
return tdRSmaProcessRestoreImpl(pSma, type, committedVer);
|
return tdRSmaProcessRestoreImpl(pSma, type, committedVer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -342,7 +342,7 @@ static int32_t tdSetRSmaInfoItemParams(SSma *pSma, SRSmaParam *param, SRSmaStat
|
||||||
|
|
||||||
smaInfo("vgId:%d, item:%p table:%" PRIi64 " level:%" PRIi8 " maxdelay:%" PRIi64 " watermark:%" PRIi64
|
smaInfo("vgId:%d, item:%p table:%" PRIi64 " level:%" PRIi8 " maxdelay:%" PRIi64 " watermark:%" PRIi64
|
||||||
", finally maxdelay:%" PRIi32,
|
", finally maxdelay:%" PRIi32,
|
||||||
TD_VID(pVnode), pItem, pRSmaInfo->suid, idx + 1, param->maxdelay[idx], param->watermark[idx],
|
TD_VID(pVnode), pItem, pRSmaInfo->suid, (int8_t)(idx + 1), param->maxdelay[idx], param->watermark[idx],
|
||||||
pItem->maxDelay);
|
pItem->maxDelay);
|
||||||
}
|
}
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
@ -1387,7 +1387,7 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((++pItem->nScanned * pItem->maxDelay) > RSMA_FETCH_DELAY_MAX) {
|
if ((++pItem->nScanned * pItem->maxDelay) > RSMA_FETCH_DELAY_MAX) {
|
||||||
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi8 " maxDelay:%d, fetch executed",
|
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi16 " maxDelay:%d, fetch executed",
|
||||||
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay);
|
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay);
|
||||||
} else {
|
} else {
|
||||||
int64_t curMs = taosGetTimestampMs();
|
int64_t curMs = taosGetTimestampMs();
|
||||||
|
@ -1411,10 +1411,10 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
|
||||||
goto _err;
|
goto _err;
|
||||||
}
|
}
|
||||||
|
|
||||||
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi8 " maxDelay:%d, fetch finished",
|
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi16 " maxDelay:%d, fetch finished",
|
||||||
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay);
|
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay);
|
||||||
} else {
|
} else {
|
||||||
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi8
|
smaDebug("vgId:%d, suid:%" PRIi64 " level:%" PRIi8 " nScanned:%" PRIi16
|
||||||
" maxDelay:%d, fetch not executed as fetch level is %" PRIi8,
|
" maxDelay:%d, fetch not executed as fetch level is %" PRIi8,
|
||||||
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay, pItem->fetchLevel);
|
SMA_VID(pSma), pInfo->suid, i, pItem->nScanned, pItem->maxDelay, pItem->fetchLevel);
|
||||||
}
|
}
|
||||||
|
@ -1513,7 +1513,7 @@ int32_t tdRSmaProcessExecImpl(SSma *pSma, ERsmaExecType type) {
|
||||||
int32_t qallItemSize = taosQallItemSize(pInfo->qall);
|
int32_t qallItemSize = taosQallItemSize(pInfo->qall);
|
||||||
if (qallItemSize > 0) {
|
if (qallItemSize > 0) {
|
||||||
tdRSmaBatchExec(pSma, pInfo, pInfo->qall, pSubmitArr, type);
|
tdRSmaBatchExec(pSma, pInfo, pInfo->qall, pSubmitArr, type);
|
||||||
smaDebug("vgId:%d, batchSize:%d, execType:%" PRIi8, SMA_VID(pSma), qallItemSize, type);
|
smaDebug("vgId:%d, batchSize:%d, execType:%" PRIi32, SMA_VID(pSma), qallItemSize, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RSMA_INFO_ITEM(pInfo, 0)->fetchLevel || RSMA_INFO_ITEM(pInfo, 1)->fetchLevel) {
|
if (RSMA_INFO_ITEM(pInfo, 0)->fetchLevel || RSMA_INFO_ITEM(pInfo, 1)->fetchLevel) {
|
||||||
|
|
|
@ -564,7 +564,7 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) {
|
||||||
pPushEntry->dataRsp.head.epoch = reqEpoch;
|
pPushEntry->dataRsp.head.epoch = reqEpoch;
|
||||||
pPushEntry->dataRsp.head.mqMsgType = TMQ_MSG_TYPE__POLL_RSP;
|
pPushEntry->dataRsp.head.mqMsgType = TMQ_MSG_TYPE__POLL_RSP;
|
||||||
taosHashPut(pTq->pPushMgr, pHandle->subKey, strlen(pHandle->subKey) + 1, &pPushEntry, sizeof(void*));
|
taosHashPut(pTq->pPushMgr, pHandle->subKey, strlen(pHandle->subKey) + 1, &pPushEntry, sizeof(void*));
|
||||||
tqDebug("tmq poll: consumer %ld, subkey %s, vg %d save handle to push mgr", consumerId, pHandle->subKey,
|
tqDebug("tmq poll: consumer %" PRId64 ", subkey %s, vg %d save handle to push mgr", consumerId, pHandle->subKey,
|
||||||
TD_VID(pTq->pVnode));
|
TD_VID(pTq->pVnode));
|
||||||
// unlock
|
// unlock
|
||||||
taosWUnLockLatch(&pTq->pushLock);
|
taosWUnLockLatch(&pTq->pushLock);
|
||||||
|
@ -578,7 +578,8 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) {
|
||||||
code = -1;
|
code = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tqDebug("tmq poll: consumer %ld, subkey %s, vg %d, send data blockNum:%d, offset type:%d, uid:%ld, version:%ld",
|
tqDebug("tmq poll: consumer %" PRId64 ", subkey %s, vg %d, send data blockNum:%d, offset type:%d, uid:%" PRId64
|
||||||
|
", version:%" PRId64 "",
|
||||||
consumerId, pHandle->subKey, TD_VID(pTq->pVnode), dataRsp.blockNum, dataRsp.rspOffset.type,
|
consumerId, pHandle->subKey, TD_VID(pTq->pVnode), dataRsp.blockNum, dataRsp.rspOffset.type,
|
||||||
dataRsp.rspOffset.uid, dataRsp.rspOffset.version);
|
dataRsp.rspOffset.uid, dataRsp.rspOffset.version);
|
||||||
|
|
||||||
|
@ -601,8 +602,9 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) {
|
||||||
if (tqSendMetaPollRsp(pTq, pMsg, pReq, &metaRsp) < 0) {
|
if (tqSendMetaPollRsp(pTq, pMsg, pReq, &metaRsp) < 0) {
|
||||||
code = -1;
|
code = -1;
|
||||||
}
|
}
|
||||||
tqDebug("tmq poll: consumer %ld, subkey %s, vg %d, send meta offset type:%d,uid:%ld,version:%ld", consumerId,
|
tqDebug("tmq poll: consumer %" PRId64 ", subkey %s, vg %d, send meta offset type:%d,uid:%" PRId64
|
||||||
pHandle->subKey, TD_VID(pTq->pVnode), metaRsp.rspOffset.type, metaRsp.rspOffset.uid,
|
",version:%" PRId64 "",
|
||||||
|
consumerId, pHandle->subKey, TD_VID(pTq->pVnode), metaRsp.rspOffset.type, metaRsp.rspOffset.uid,
|
||||||
metaRsp.rspOffset.version);
|
metaRsp.rspOffset.version);
|
||||||
taosMemoryFree(metaRsp.metaRsp);
|
taosMemoryFree(metaRsp.metaRsp);
|
||||||
tDeleteSTaosxRsp(&taosxRsp);
|
tDeleteSTaosxRsp(&taosxRsp);
|
||||||
|
@ -619,7 +621,8 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) {
|
||||||
fetchOffsetNew = taosxRsp.rspOffset;
|
fetchOffsetNew = taosxRsp.rspOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
tqDebug("taosx poll: consumer %ld, subkey %s, vg %d, send data blockNum:%d, offset type:%d,uid:%ld,version:%ld",
|
tqDebug("taosx poll: consumer %" PRId64 ", subkey %s, vg %d, send data blockNum:%d, offset type:%d,uid:%" PRId64
|
||||||
|
",version:%" PRId64 "",
|
||||||
consumerId, pHandle->subKey, TD_VID(pTq->pVnode), taosxRsp.blockNum, taosxRsp.rspOffset.type,
|
consumerId, pHandle->subKey, TD_VID(pTq->pVnode), taosxRsp.blockNum, taosxRsp.rspOffset.type,
|
||||||
taosxRsp.rspOffset.uid, taosxRsp.rspOffset.version);
|
taosxRsp.rspOffset.uid, taosxRsp.rspOffset.version);
|
||||||
}
|
}
|
||||||
|
@ -769,11 +772,11 @@ int32_t tqProcessVgChangeReq(STQ* pTq, int64_t version, char* msg, int32_t msgLe
|
||||||
STqHandle* pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey));
|
STqHandle* pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey));
|
||||||
if (pHandle == NULL) {
|
if (pHandle == NULL) {
|
||||||
if (req.oldConsumerId != -1) {
|
if (req.oldConsumerId != -1) {
|
||||||
tqError("vgId:%d, build new consumer handle %s for consumer %ld, but old consumerId is %ld", req.vgId, req.subKey,
|
tqError("vgId:%d, build new consumer handle %s for consumer %" PRId64 ", but old consumerId is %" PRId64 "",
|
||||||
req.newConsumerId, req.oldConsumerId);
|
req.vgId, req.subKey, req.newConsumerId, req.oldConsumerId);
|
||||||
}
|
}
|
||||||
if (req.newConsumerId == -1) {
|
if (req.newConsumerId == -1) {
|
||||||
tqError("vgId:%d, tq invalid rebalance request, new consumerId %ld", req.vgId, req.newConsumerId);
|
tqError("vgId:%d, tq invalid rebalance request, new consumerId %" PRId64 "", req.vgId, req.newConsumerId);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
STqHandle tqHandle = {0};
|
STqHandle tqHandle = {0};
|
||||||
|
|
|
@ -193,8 +193,8 @@ int32_t tqMetaSaveHandle(STQ* pTq, const char* key, const STqHandle* pHandle) {
|
||||||
tEncodeSize(tEncodeSTqHandle, pHandle, vlen, code);
|
tEncodeSize(tEncodeSTqHandle, pHandle, vlen, code);
|
||||||
ASSERT(code == 0);
|
ASSERT(code == 0);
|
||||||
|
|
||||||
tqDebug("tq save %s(%d) consumer %ld vgId:%d", pHandle->subKey, (int32_t)strlen(pHandle->subKey), pHandle->consumerId,
|
tqDebug("tq save %s(%d) consumer %" PRId64 " vgId:%d", pHandle->subKey, (int32_t)strlen(pHandle->subKey),
|
||||||
TD_VID(pTq->pVnode));
|
pHandle->consumerId, TD_VID(pTq->pVnode));
|
||||||
|
|
||||||
void* buf = taosMemoryCalloc(1, vlen);
|
void* buf = taosMemoryCalloc(1, vlen);
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
|
|
|
@ -213,7 +213,7 @@ int32_t tqPushMsgNew(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t ver) {
|
int tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t ver) {
|
||||||
tqDebug("vgId:%d tq push msg ver %ld, type: %s", pTq->pVnode->config.vgId, ver, TMSG_INFO(msgType));
|
tqDebug("vgId:%d tq push msg ver %" PRId64 ", type: %s", pTq->pVnode->config.vgId, ver, TMSG_INFO(msgType));
|
||||||
|
|
||||||
if (msgType == TDMT_VND_SUBMIT) {
|
if (msgType == TDMT_VND_SUBMIT) {
|
||||||
// lock push mgr to avoid potential msg lost
|
// lock push mgr to avoid potential msg lost
|
||||||
|
@ -246,8 +246,8 @@ int tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t ver)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (pPushEntry->dataRsp.reqOffset.version >= ver) {
|
if (pPushEntry->dataRsp.reqOffset.version >= ver) {
|
||||||
tqDebug("vgId:%d push entry req version %ld, while push version %ld, skip", pTq->pVnode->config.vgId,
|
tqDebug("vgId:%d push entry req version %" PRId64 ", while push version %" PRId64 ", skip",
|
||||||
pPushEntry->dataRsp.reqOffset.version, ver);
|
pTq->pVnode->config.vgId, pPushEntry->dataRsp.reqOffset.version, ver);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
STqExecHandle* pExec = &pHandle->execHandle;
|
STqExecHandle* pExec = &pHandle->execHandle;
|
||||||
|
|
|
@ -36,7 +36,7 @@ int32_t tqBuildDeleteReq(SVnode* pVnode, const char* stbFullName, const SSDataBl
|
||||||
} else {
|
} else {
|
||||||
name = buildCtbNameByGroupId(stbFullName, groupId);
|
name = buildCtbNameByGroupId(stbFullName, groupId);
|
||||||
}
|
}
|
||||||
tqDebug("stream delete msg: groupId :%ld, name: %s", groupId, name);
|
tqDebug("stream delete msg: groupId :%" PRId64 ", name: %s", groupId, name);
|
||||||
SMetaReader mr = {0};
|
SMetaReader mr = {0};
|
||||||
metaReaderInit(&mr, pVnode->pMeta, 0);
|
metaReaderInit(&mr, pVnode->pMeta, 0);
|
||||||
if (metaGetTableEntryByName(&mr, name) < 0) {
|
if (metaGetTableEntryByName(&mr, name) < 0) {
|
||||||
|
@ -435,7 +435,8 @@ void tqSinkToTablePipeline(SStreamTask* pTask, void* vnode, int64_t ver, void* d
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (mr.me.ctbEntry.suid != suid) {
|
if (mr.me.ctbEntry.suid != suid) {
|
||||||
tqError("vgId:%d, failed to write into %s, since suid mismatch, expect suid: %ld, actual suid %ld",
|
tqError("vgId:%d, failed to write into %s, since suid mismatch, expect suid: %" PRId64
|
||||||
|
", actual suid %" PRId64 "",
|
||||||
TD_VID(pVnode), ctbName, suid, mr.me.ctbEntry.suid);
|
TD_VID(pVnode), ctbName, suid, mr.me.ctbEntry.suid);
|
||||||
metaReaderClear(&mr);
|
metaReaderClear(&mr);
|
||||||
taosMemoryFree(ctbName);
|
taosMemoryFree(ctbName);
|
||||||
|
@ -446,7 +447,8 @@ void tqSinkToTablePipeline(SStreamTask* pTask, void* vnode, int64_t ver, void* d
|
||||||
uid = mr.me.uid;
|
uid = mr.me.uid;
|
||||||
metaReaderClear(&mr);
|
metaReaderClear(&mr);
|
||||||
|
|
||||||
tqDebug("vgId:%d, stream write, table %s, uid %ld already exist, skip create", TD_VID(pVnode), ctbName, uid);
|
tqDebug("vgId:%d, stream write, table %s, uid %" PRId64 " already exist, skip create", TD_VID(pVnode), ctbName,
|
||||||
|
uid);
|
||||||
|
|
||||||
taosMemoryFreeClear(ctbName);
|
taosMemoryFreeClear(ctbName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,7 +194,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32
|
||||||
}
|
}
|
||||||
} else if ((pr->type & CACHESCAN_RETRIEVE_TYPE_ALL) == CACHESCAN_RETRIEVE_TYPE_ALL) {
|
} else if ((pr->type & CACHESCAN_RETRIEVE_TYPE_ALL) == CACHESCAN_RETRIEVE_TYPE_ALL) {
|
||||||
for (int32_t i = pr->tableIndex; i < numOfTables; ++i) {
|
for (int32_t i = pr->tableIndex; i < numOfTables; ++i) {
|
||||||
STableKeyInfo* pKeyInfo = taosArrayGet(pr->pTableList, i);
|
STableKeyInfo* pKeyInfo = (STableKeyInfo*) taosArrayGet(pr->pTableList, i);
|
||||||
code = doExtractCacheRow(pr, lruCache, pKeyInfo->uid, &pRow, &h);
|
code = doExtractCacheRow(pr, lruCache, pKeyInfo->uid, &pRow, &h);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
return code;
|
return code;
|
||||||
|
|
|
@ -1054,6 +1054,7 @@ static int32_t tsdbEndCommit(SCommitter *pCommitter, int32_t eno) {
|
||||||
_exit:
|
_exit:
|
||||||
tsdbFSDestroy(&pCommitter->fs);
|
tsdbFSDestroy(&pCommitter->fs);
|
||||||
taosArrayDestroy(pCommitter->aTbDataP);
|
taosArrayDestroy(pCommitter->aTbDataP);
|
||||||
|
pCommitter->aTbDataP = NULL;
|
||||||
if (code || eno) {
|
if (code || eno) {
|
||||||
tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pTsdb->pVnode), __func__, lino, tstrerror(code));
|
tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pTsdb->pVnode), __func__, lino, tstrerror(code));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -149,6 +149,7 @@ _exit:
|
||||||
void tsdbFSDestroy(STsdbFS *pFS) {
|
void tsdbFSDestroy(STsdbFS *pFS) {
|
||||||
if (pFS->pDelFile) {
|
if (pFS->pDelFile) {
|
||||||
taosMemoryFree(pFS->pDelFile);
|
taosMemoryFree(pFS->pDelFile);
|
||||||
|
pFS->pDelFile = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t iSet = 0; iSet < taosArrayGetSize(pFS->aDFileSet); iSet++) {
|
for (int32_t iSet = 0; iSet < taosArrayGetSize(pFS->aDFileSet); iSet++) {
|
||||||
|
@ -162,6 +163,7 @@ void tsdbFSDestroy(STsdbFS *pFS) {
|
||||||
}
|
}
|
||||||
|
|
||||||
taosArrayDestroy(pFS->aDFileSet);
|
taosArrayDestroy(pFS->aDFileSet);
|
||||||
|
pFS->aDFileSet = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t tsdbScanAndTryFixFS(STsdb *pTsdb) {
|
static int32_t tsdbScanAndTryFixFS(STsdb *pTsdb) {
|
||||||
|
@ -296,7 +298,7 @@ static int32_t tsdbLoadFSFromFile(const char *fname, STsdbFS *pFS) {
|
||||||
// load binary
|
// load binary
|
||||||
TdFilePtr pFD = taosOpenFile(fname, TD_FILE_READ);
|
TdFilePtr pFD = taosOpenFile(fname, TD_FILE_READ);
|
||||||
if (pFD == NULL) {
|
if (pFD == NULL) {
|
||||||
code = terrno;
|
code = TAOS_SYSTEM_ERROR(errno);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,44 +120,46 @@ static SBlockData *loadLastBlock(SLDataIter *pIter, const char *idStr) {
|
||||||
return &pInfo->blockData[1];
|
return &pInfo->blockData[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
pInfo->currentLoadBlockIndex ^= 1;
|
if (pIter->pSttBlk == NULL) {
|
||||||
if (pIter->pSttBlk != NULL) { // current block not loaded yet
|
return NULL;
|
||||||
int64_t st = taosGetTimestampUs();
|
|
||||||
|
|
||||||
SBlockData *pBlock = &pInfo->blockData[pInfo->currentLoadBlockIndex];
|
|
||||||
|
|
||||||
TABLEID id = {0};
|
|
||||||
if (pIter->pSttBlk->suid != 0) {
|
|
||||||
id.suid = pIter->pSttBlk->suid;
|
|
||||||
} else {
|
|
||||||
id.uid = pIter->uid;
|
|
||||||
}
|
|
||||||
|
|
||||||
code = tBlockDataInit(pBlock, &id, pInfo->pSchema, pInfo->colIds, pInfo->numOfCols);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
|
||||||
goto _exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
code = tsdbReadSttBlock(pIter->pReader, pIter->iStt, pIter->pSttBlk, pBlock);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
|
||||||
goto _exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
double el = (taosGetTimestampUs() - st) / 1000.0;
|
|
||||||
pInfo->elapsedTime += el;
|
|
||||||
pInfo->loadBlocks += 1;
|
|
||||||
|
|
||||||
tsdbDebug("read last block, total load:%d, trigger by uid:%" PRIu64
|
|
||||||
", last file index:%d, last block index:%d, entry:%d, %p, elapsed time:%.2f ms, %s",
|
|
||||||
pInfo->loadBlocks, pIter->uid, pIter->iStt, pIter->iSttBlk, pInfo->currentLoadBlockIndex, pBlock, el,
|
|
||||||
idStr);
|
|
||||||
|
|
||||||
pInfo->blockIndex[pInfo->currentLoadBlockIndex] = pIter->iSttBlk;
|
|
||||||
tsdbDebug("last block index list:%d, %d, %s", pInfo->blockIndex[0], pInfo->blockIndex[1], idStr);
|
|
||||||
|
|
||||||
pIter->iRow = (pIter->backward) ? pInfo->blockData[pInfo->currentLoadBlockIndex].nRow : -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// current block not loaded yet
|
||||||
|
pInfo->currentLoadBlockIndex ^= 1;
|
||||||
|
int64_t st = taosGetTimestampUs();
|
||||||
|
|
||||||
|
SBlockData *pBlock = &pInfo->blockData[pInfo->currentLoadBlockIndex];
|
||||||
|
|
||||||
|
TABLEID id = {0};
|
||||||
|
if (pIter->pSttBlk->suid != 0) {
|
||||||
|
id.suid = pIter->pSttBlk->suid;
|
||||||
|
} else {
|
||||||
|
id.uid = pIter->uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
code = tBlockDataInit(pBlock, &id, pInfo->pSchema, pInfo->colIds, pInfo->numOfCols);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
goto _exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
code = tsdbReadSttBlock(pIter->pReader, pIter->iStt, pIter->pSttBlk, pBlock);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
goto _exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
double el = (taosGetTimestampUs() - st) / 1000.0;
|
||||||
|
pInfo->elapsedTime += el;
|
||||||
|
pInfo->loadBlocks += 1;
|
||||||
|
|
||||||
|
tsdbDebug("read last block, total load:%d, trigger by uid:%" PRIu64
|
||||||
|
", last file index:%d, last block index:%d, entry:%d, %p, elapsed time:%.2f ms, %s",
|
||||||
|
pInfo->loadBlocks, pIter->uid, pIter->iStt, pIter->iSttBlk, pInfo->currentLoadBlockIndex, pBlock, el,
|
||||||
|
idStr);
|
||||||
|
|
||||||
|
pInfo->blockIndex[pInfo->currentLoadBlockIndex] = pIter->iSttBlk;
|
||||||
|
tsdbDebug("last block index list:%d, %d, %s", pInfo->blockIndex[0], pInfo->blockIndex[1], idStr);
|
||||||
|
|
||||||
|
pIter->iRow = (pIter->backward) ? pInfo->blockData[pInfo->currentLoadBlockIndex].nRow : -1;
|
||||||
return &pInfo->blockData[pInfo->currentLoadBlockIndex];
|
return &pInfo->blockData[pInfo->currentLoadBlockIndex];
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
|
@ -259,7 +261,8 @@ static int32_t binarySearchForStartRowIndex(uint64_t *uidList, int32_t num, uint
|
||||||
int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t iStt, int8_t backward, uint64_t suid,
|
int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t iStt, int8_t backward, uint64_t suid,
|
||||||
uint64_t uid, STimeWindow *pTimeWindow, SVersionRange *pRange, SSttBlockLoadInfo *pBlockLoadInfo,
|
uint64_t uid, STimeWindow *pTimeWindow, SVersionRange *pRange, SSttBlockLoadInfo *pBlockLoadInfo,
|
||||||
const char *idStr) {
|
const char *idStr) {
|
||||||
int32_t code = 0;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
*pIter = taosMemoryCalloc(1, sizeof(SLDataIter));
|
*pIter = taosMemoryCalloc(1, sizeof(SLDataIter));
|
||||||
if (*pIter == NULL) {
|
if (*pIter == NULL) {
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
@ -336,7 +339,10 @@ int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t
|
||||||
(*pIter)->iRow = ((*pIter)->backward) ? (*pIter)->pSttBlk->nRow : -1;
|
(*pIter)->iRow = ((*pIter)->backward) ? (*pIter)->pSttBlk->nRow : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return code;
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
|
taosMemoryFree(*pIter);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,7 +479,7 @@ bool tLDataIterNextRow(SLDataIter *pIter, const char *idStr) {
|
||||||
|
|
||||||
int32_t iBlockL = pIter->iSttBlk;
|
int32_t iBlockL = pIter->iSttBlk;
|
||||||
SBlockData *pBlockData = loadLastBlock(pIter, idStr);
|
SBlockData *pBlockData = loadLastBlock(pIter, idStr);
|
||||||
if (pBlockData == NULL && terrno != TSDB_CODE_SUCCESS) {
|
if (pBlockData == NULL || terrno != TSDB_CODE_SUCCESS) {
|
||||||
goto _exit;
|
goto _exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ static int32_t initFilesetIterator(SFilesetIter* pIter, SArray* aDFileSet, STsdb
|
||||||
pIter->pLastBlockReader = taosMemoryCalloc(1, sizeof(struct SLastBlockReader));
|
pIter->pLastBlockReader = taosMemoryCalloc(1, sizeof(struct SLastBlockReader));
|
||||||
if (pIter->pLastBlockReader == NULL) {
|
if (pIter->pLastBlockReader == NULL) {
|
||||||
int32_t code = TSDB_CODE_OUT_OF_MEMORY;
|
int32_t code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
tsdbError("failed to prepare the last block iterator, code:%s %s", tstrerror(code), pReader->idStr);
|
tsdbError("failed to prepare the last block iterator, since:%s %s", tstrerror(code), pReader->idStr);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -645,11 +645,11 @@ static int32_t doLoadFileBlock(STsdbReader* pReader, SArray* pIndexList, SBlockN
|
||||||
int32_t total = pBlockNum->numOfLastFiles + pBlockNum->numOfBlocks;
|
int32_t total = pBlockNum->numOfLastFiles + pBlockNum->numOfBlocks;
|
||||||
|
|
||||||
double el = (taosGetTimestampUs() - st) / 1000.0;
|
double el = (taosGetTimestampUs() - st) / 1000.0;
|
||||||
tsdbDebug("load block of %" PRIzu
|
tsdbDebug(
|
||||||
" tables completed, blocks:%d in %d tables, last-files:%d, block-info-size:%.2f Kb, elapsed "
|
"load block of %ld tables completed, blocks:%d in %d tables, last-files:%d, block-info-size:%.2f Kb, elapsed "
|
||||||
"time:%.2f ms %s",
|
"time:%.2f ms %s",
|
||||||
numOfTables, pBlockNum->numOfBlocks, numOfQTable, pBlockNum->numOfLastFiles, sizeInDisk / 1000.0, el,
|
numOfTables, pBlockNum->numOfBlocks, numOfQTable, pBlockNum->numOfLastFiles, sizeInDisk / 1000.0, el,
|
||||||
pReader->idStr);
|
pReader->idStr);
|
||||||
|
|
||||||
pReader->cost.numOfBlocks += total;
|
pReader->cost.numOfBlocks += total;
|
||||||
pReader->cost.headFileLoadTime += el;
|
pReader->cost.headFileLoadTime += el;
|
||||||
|
@ -1047,11 +1047,16 @@ static int32_t fileDataBlockOrderCompar(const void* pLeft, const void* pRight, v
|
||||||
return pLeftBlock->offset > pRightBlock->offset ? 1 : -1;
|
return pLeftBlock->offset > pRightBlock->offset ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t doSetCurrentBlock(SDataBlockIter* pBlockIter) {
|
static int32_t doSetCurrentBlock(SDataBlockIter* pBlockIter, const char* idStr) {
|
||||||
SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(pBlockIter);
|
SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(pBlockIter);
|
||||||
if (pBlockInfo != NULL) {
|
if (pBlockInfo != NULL) {
|
||||||
STableBlockScanInfo* pScanInfo = taosHashGet(pBlockIter->pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid));
|
STableBlockScanInfo* pScanInfo = taosHashGet(pBlockIter->pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid));
|
||||||
int32_t* mapDataIndex = taosArrayGet(pScanInfo->pBlockList, pBlockInfo->tbBlockIdx);
|
if (pScanInfo == NULL) {
|
||||||
|
tsdbError("failed to locate the uid:%"PRIu64" in query table uid list, %s", pBlockInfo->uid, idStr);
|
||||||
|
return TSDB_CODE_INVALID_PARA;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t* mapDataIndex = taosArrayGet(pScanInfo->pBlockList, pBlockInfo->tbBlockIdx);
|
||||||
tMapDataGetItemByIdx(&pScanInfo->mapData, *mapDataIndex, &pBlockIter->block, tGetDataBlk);
|
tMapDataGetItemByIdx(&pScanInfo->mapData, *mapDataIndex, &pBlockIter->block, tGetDataBlk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1135,7 +1140,7 @@ static int32_t initBlockIterator(STsdbReader* pReader, SDataBlockIter* pBlockIte
|
||||||
|
|
||||||
pBlockIter->index = asc ? 0 : (numOfBlocks - 1);
|
pBlockIter->index = asc ? 0 : (numOfBlocks - 1);
|
||||||
cleanupBlockOrderSupporter(&sup);
|
cleanupBlockOrderSupporter(&sup);
|
||||||
doSetCurrentBlock(pBlockIter);
|
doSetCurrentBlock(pBlockIter, pReader->idStr);
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1175,12 +1180,12 @@ static int32_t initBlockIterator(STsdbReader* pReader, SDataBlockIter* pBlockIte
|
||||||
taosMemoryFree(pTree);
|
taosMemoryFree(pTree);
|
||||||
|
|
||||||
pBlockIter->index = asc ? 0 : (numOfBlocks - 1);
|
pBlockIter->index = asc ? 0 : (numOfBlocks - 1);
|
||||||
doSetCurrentBlock(pBlockIter);
|
doSetCurrentBlock(pBlockIter, pReader->idStr);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool blockIteratorNext(SDataBlockIter* pBlockIter) {
|
static bool blockIteratorNext(SDataBlockIter* pBlockIter, const char* idStr) {
|
||||||
bool asc = ASCENDING_TRAVERSE(pBlockIter->order);
|
bool asc = ASCENDING_TRAVERSE(pBlockIter->order);
|
||||||
|
|
||||||
int32_t step = asc ? 1 : -1;
|
int32_t step = asc ? 1 : -1;
|
||||||
|
@ -1189,7 +1194,7 @@ static bool blockIteratorNext(SDataBlockIter* pBlockIter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pBlockIter->index += step;
|
pBlockIter->index += step;
|
||||||
doSetCurrentBlock(pBlockIter);
|
doSetCurrentBlock(pBlockIter, idStr);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1260,7 +1265,7 @@ static int32_t setFileBlockActiveInBlockIter(SDataBlockIter* pBlockIter, int32_t
|
||||||
ASSERT(pBlockInfo->uid == fblock.uid && pBlockInfo->tbBlockIdx == fblock.tbBlockIdx);
|
ASSERT(pBlockInfo->uid == fblock.uid && pBlockInfo->tbBlockIdx == fblock.tbBlockIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
doSetCurrentBlock(pBlockIter);
|
doSetCurrentBlock(pBlockIter, "");
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2190,6 +2195,8 @@ static int32_t buildComposedDataBlockImpl(STsdbReader* pReader, STableBlockScanI
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t buildComposedDataBlock(STsdbReader* pReader) {
|
static int32_t buildComposedDataBlock(STsdbReader* pReader) {
|
||||||
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
SSDataBlock* pResBlock = pReader->pResBlock;
|
SSDataBlock* pResBlock = pReader->pResBlock;
|
||||||
|
|
||||||
SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(&pReader->status.blockIter);
|
SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(&pReader->status.blockIter);
|
||||||
|
@ -2200,6 +2207,13 @@ static int32_t buildComposedDataBlock(STsdbReader* pReader) {
|
||||||
STableBlockScanInfo* pBlockScanInfo = NULL;
|
STableBlockScanInfo* pBlockScanInfo = NULL;
|
||||||
if (pBlockInfo != NULL) {
|
if (pBlockInfo != NULL) {
|
||||||
pBlockScanInfo = taosHashGet(pReader->status.pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid));
|
pBlockScanInfo = taosHashGet(pReader->status.pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid));
|
||||||
|
if (pBlockScanInfo == NULL) {
|
||||||
|
code = TSDB_CODE_INVALID_PARA;
|
||||||
|
tsdbError("failed to locate the uid:%"PRIu64" in query table uid list, total tables:%d, %s",
|
||||||
|
pBlockInfo->uid, taosHashGetSize(pReader->status.pTableMap), pReader->idStr);
|
||||||
|
goto _end;
|
||||||
|
}
|
||||||
|
|
||||||
SDataBlk* pBlock = getCurrentBlock(&pReader->status.blockIter);
|
SDataBlk* pBlock = getCurrentBlock(&pReader->status.blockIter);
|
||||||
TSDBKEY keyInBuf = getCurrentKeyInBuf(pBlockScanInfo, pReader);
|
TSDBKEY keyInBuf = getCurrentKeyInBuf(pBlockScanInfo, pReader);
|
||||||
|
|
||||||
|
@ -2276,7 +2290,7 @@ _end:
|
||||||
pResBlock->info.rows, el, pReader->idStr);
|
pResBlock->info.rows, el, pReader->idStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setComposedBlockFlag(STsdbReader* pReader, bool composed) { pReader->status.composedDataBlock = composed; }
|
void setComposedBlockFlag(STsdbReader* pReader, bool composed) { pReader->status.composedDataBlock = composed; }
|
||||||
|
@ -2555,7 +2569,7 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pScanInfo == NULL) {
|
if (pScanInfo == NULL) {
|
||||||
tsdbError("failed to get table, uid:"PRIu64 ", %s", pBlockInfo->uid, pReader->idStr);
|
tsdbError("failed to get table, uid:%" PRIu64 ", %s", pBlockInfo->uid, pReader->idStr);
|
||||||
code = TSDB_CODE_INVALID_PARA;
|
code = TSDB_CODE_INVALID_PARA;
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -2732,7 +2746,7 @@ static int32_t buildBlockFromFiles(STsdbReader* pReader) {
|
||||||
// current block are exhausted, try the next file block
|
// current block are exhausted, try the next file block
|
||||||
if (pDumpInfo->allDumped) {
|
if (pDumpInfo->allDumped) {
|
||||||
// try next data block in current file
|
// try next data block in current file
|
||||||
bool hasNext = blockIteratorNext(&pReader->status.blockIter);
|
bool hasNext = blockIteratorNext(&pReader->status.blockIter, pReader->idStr);
|
||||||
if (hasNext) { // check for the next block in the block accessed order list
|
if (hasNext) { // check for the next block in the block accessed order list
|
||||||
initBlockDumpInfo(pReader, pBlockIter);
|
initBlockDumpInfo(pReader, pBlockIter);
|
||||||
} else {
|
} else {
|
||||||
|
@ -3658,10 +3672,6 @@ void tsdbReaderClose(STsdbReader* pReader) {
|
||||||
taosMemoryFree(pLReader);
|
taosMemoryFree(pLReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pReader->innerReader[0] != 0) {
|
|
||||||
tsdbUntakeReadSnap(pReader->innerReader[0]->pTsdb, pReader->innerReader[0]->pReadSnap, pReader->idStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
tsdbDebug(
|
tsdbDebug(
|
||||||
"%p :io-cost summary: head-file:%" PRIu64 ", head-file time:%.2f ms, SMA:%" PRId64
|
"%p :io-cost summary: head-file:%" PRIu64 ", head-file time:%.2f ms, SMA:%" PRId64
|
||||||
" SMA-time:%.2f ms, fileBlocks:%" PRId64
|
" SMA-time:%.2f ms, fileBlocks:%" PRId64
|
||||||
|
@ -3849,8 +3859,14 @@ static SArray* doRetrieveDataBlock(STsdbReader* pReader) {
|
||||||
return pReader->pResBlock->pDataBlock;
|
return pReader->pResBlock->pDataBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
SFileDataBlockInfo* pFBlock = getCurrentBlockInfo(&pStatus->blockIter);
|
SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(&pStatus->blockIter);
|
||||||
STableBlockScanInfo* pBlockScanInfo = taosHashGet(pStatus->pTableMap, &pFBlock->uid, sizeof(pFBlock->uid));
|
STableBlockScanInfo* pBlockScanInfo = taosHashGet(pStatus->pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid));
|
||||||
|
if (pBlockScanInfo == NULL) {
|
||||||
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
|
tsdbError("failed to locate the uid:%" PRIu64 " in query table uid list, total tables:%d, %s", pBlockInfo->uid,
|
||||||
|
taosHashGetSize(pReader->status.pTableMap), pReader->idStr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t code = doLoadFileBlockData(pReader, &pStatus->blockIter, &pStatus->fileBlockData, pBlockScanInfo->uid);
|
int32_t code = doLoadFileBlockData(pReader, &pStatus->blockIter, &pStatus->fileBlockData, pBlockScanInfo->uid);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -3979,7 +3995,7 @@ int32_t tsdbGetFileBlocksDistInfo(STsdbReader* pReader, STableBlockDistInfo* pTa
|
||||||
int32_t bucketIndex = getBucketIndex(pTableBlockInfo->defMinRows, bucketRange, numOfRows);
|
int32_t bucketIndex = getBucketIndex(pTableBlockInfo->defMinRows, bucketRange, numOfRows);
|
||||||
pTableBlockInfo->blockRowsHisto[bucketIndex]++;
|
pTableBlockInfo->blockRowsHisto[bucketIndex]++;
|
||||||
|
|
||||||
hasNext = blockIteratorNext(&pStatus->blockIter);
|
hasNext = blockIteratorNext(&pStatus->blockIter, pReader->idStr);
|
||||||
} else {
|
} else {
|
||||||
code = initForFirstBlockInFile(pReader, pBlockIter);
|
code = initForFirstBlockInFile(pReader, pBlockIter);
|
||||||
if ((code != TSDB_CODE_SUCCESS) || (pReader->status.loadFromFile == false)) {
|
if ((code != TSDB_CODE_SUCCESS) || (pReader->status.loadFromFile == false)) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ int32_t tsdbDoRetention(STsdb *pTsdb, int64_t now) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// do retention
|
// do retention
|
||||||
STsdbFS fs;
|
STsdbFS fs = {0};
|
||||||
|
|
||||||
code = tsdbFSCopy(pTsdb, &fs);
|
code = tsdbFSCopy(pTsdb, &fs);
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
|
|
|
@ -285,15 +285,43 @@ int32_t vnodeGetBatchMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < msgNum; ++i) {
|
for (int32_t i = 0; i < msgNum; ++i) {
|
||||||
|
if (offset >= pMsg->contLen) {
|
||||||
|
qError("vnode offset %d is bigger than contLen %d", offset, pMsg->contLen);
|
||||||
|
terrno = TSDB_CODE_MSG_NOT_PROCESSED;
|
||||||
|
taosArrayDestroy(batchRsp);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
req.msgIdx = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
req.msgIdx = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
||||||
offset += sizeof(req.msgIdx);
|
offset += sizeof(req.msgIdx);
|
||||||
|
|
||||||
|
if (offset >= pMsg->contLen) {
|
||||||
|
qError("vnode offset %d is bigger than contLen %d", offset, pMsg->contLen);
|
||||||
|
terrno = TSDB_CODE_MSG_NOT_PROCESSED;
|
||||||
|
taosArrayDestroy(batchRsp);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
req.msgType = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
req.msgType = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
||||||
offset += sizeof(req.msgType);
|
offset += sizeof(req.msgType);
|
||||||
|
|
||||||
|
if (offset >= pMsg->contLen) {
|
||||||
|
qError("vnode offset %d is bigger than contLen %d", offset, pMsg->contLen);
|
||||||
|
terrno = TSDB_CODE_MSG_NOT_PROCESSED;
|
||||||
|
taosArrayDestroy(batchRsp);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
req.msgLen = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
req.msgLen = ntohl(*(int32_t *)((char *)pMsg->pCont + offset));
|
||||||
offset += sizeof(req.msgLen);
|
offset += sizeof(req.msgLen);
|
||||||
|
|
||||||
|
if (offset >= pMsg->contLen) {
|
||||||
|
qError("vnode offset %d is bigger than contLen %d", offset, pMsg->contLen);
|
||||||
|
terrno = TSDB_CODE_MSG_NOT_PROCESSED;
|
||||||
|
taosArrayDestroy(batchRsp);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
req.msg = (char *)pMsg->pCont + offset;
|
req.msg = (char *)pMsg->pCont + offset;
|
||||||
offset += req.msgLen;
|
offset += req.msgLen;
|
||||||
|
|
||||||
|
@ -385,6 +413,7 @@ _exit:
|
||||||
int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) {
|
int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) {
|
||||||
pLoad->vgId = TD_VID(pVnode);
|
pLoad->vgId = TD_VID(pVnode);
|
||||||
pLoad->syncState = syncGetMyRole(pVnode->sync);
|
pLoad->syncState = syncGetMyRole(pVnode->sync);
|
||||||
|
pLoad->syncRestore = pVnode->restored;
|
||||||
pLoad->cacheUsage = tsdbCacheGetUsage(pVnode);
|
pLoad->cacheUsage = tsdbCacheGetUsage(pVnode);
|
||||||
pLoad->numOfTables = metaGetTbNum(pVnode->pMeta);
|
pLoad->numOfTables = metaGetTbNum(pVnode->pMeta);
|
||||||
pLoad->numOfTimeSeries = metaGetTimeSeriesNum(pVnode->pMeta);
|
pLoad->numOfTimeSeries = metaGetTimeSeriesNum(pVnode->pMeta);
|
||||||
|
|
|
@ -1090,7 +1090,7 @@ static int32_t vnodeProcessAlterConfigReq(SVnode *pVnode, int64_t version, void
|
||||||
|
|
||||||
if (pVnode->config.szBuf != req.buffer * 1024LL * 1024LL) {
|
if (pVnode->config.szBuf != req.buffer * 1024LL * 1024LL) {
|
||||||
vInfo("vgId:%d vnode buffer is changed from %" PRId64 " to %" PRId64, TD_VID(pVnode), pVnode->config.szBuf,
|
vInfo("vgId:%d vnode buffer is changed from %" PRId64 " to %" PRId64, TD_VID(pVnode), pVnode->config.szBuf,
|
||||||
req.buffer * 1024LL * 1024LL);
|
(uint64_t)(req.buffer * 1024LL * 1024LL));
|
||||||
pVnode->config.szBuf = req.buffer * 1024LL * 1024LL;
|
pVnode->config.szBuf = req.buffer * 1024LL * 1024LL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -328,14 +328,14 @@ int32_t vnodeProcessSyncCtrlMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
|
||||||
const STraceId *trace = &pMsg->info.traceId;
|
const STraceId *trace = &pMsg->info.traceId;
|
||||||
|
|
||||||
if (!syncEnvIsStart()) {
|
if (!syncEnvIsStart()) {
|
||||||
vGError("vgId:%d, msg:%p failed to process since sync env not start", pVnode->config.vgId);
|
vGError("vgId:%d, msg:%p failed to process since sync env not start", pVnode->config.vgId, pMsg);
|
||||||
terrno = TSDB_CODE_APP_ERROR;
|
terrno = TSDB_CODE_APP_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SSyncNode *pSyncNode = syncNodeAcquire(pVnode->sync);
|
SSyncNode *pSyncNode = syncNodeAcquire(pVnode->sync);
|
||||||
if (pSyncNode == NULL) {
|
if (pSyncNode == NULL) {
|
||||||
vGError("vgId:%d, msg:%p failed to process since invalid sync node", pVnode->config.vgId);
|
vGError("vgId:%d, msg:%p failed to process since invalid sync node", pVnode->config.vgId, pMsg);
|
||||||
terrno = TSDB_CODE_SYN_INTERNAL_ERROR;
|
terrno = TSDB_CODE_SYN_INTERNAL_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -353,7 +353,7 @@ int32_t vnodeProcessSyncCtrlMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
|
||||||
syncHeartbeatReplyDestroy(pSyncMsg);
|
syncHeartbeatReplyDestroy(pSyncMsg);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
vGError("vgId:%d, msg:%p failed to process since error msg type:%d", pVnode->config.vgId, pMsg->msgType);
|
vGError("vgId:%d, msg:%p failed to process since error msg type:%d", pVnode->config.vgId, pMsg, pMsg->msgType);
|
||||||
code = -1;
|
code = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,8 +70,8 @@ int32_t ctgInitGetTbMetasTask(SCtgJob* pJob, int32_t taskIdx, void* param) {
|
||||||
|
|
||||||
taosArrayPush(pJob->pTasks, &task);
|
taosArrayPush(pJob->pTasks, &task);
|
||||||
|
|
||||||
qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%d, tbNum:%d", pJob->queryId, taskIdx,
|
qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx,
|
||||||
ctgTaskTypeStr(task.type), (int32_t)taosArrayGetSize(ctx->pNames), pJob->tbMetaNum);
|
ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbMetaNum);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -201,8 +201,8 @@ int32_t ctgInitGetTbHashsTask(SCtgJob* pJob, int32_t taskIdx, void* param) {
|
||||||
|
|
||||||
taosArrayPush(pJob->pTasks, &task);
|
taosArrayPush(pJob->pTasks, &task);
|
||||||
|
|
||||||
qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%d, tbNum:%d", pJob->queryId, taskIdx,
|
qDebug("QID:0x%" PRIx64 " the %dth task type %s initialized, dbNum:%lu, tbNum:%d", pJob->queryId, taskIdx,
|
||||||
ctgTaskTypeStr(task.type), (int32_t)taosArrayGetSize(ctx->pNames), pJob->tbHashNum);
|
ctgTaskTypeStr(task.type), taosArrayGetSize(ctx->pNames), pJob->tbHashNum);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -1667,7 +1667,7 @@ int32_t ctgLaunchGetTbMetasTask(SCtgTask* pTask) {
|
||||||
int32_t baseResIdx = 0;
|
int32_t baseResIdx = 0;
|
||||||
for (int32_t i = 0; i < dbNum; ++i) {
|
for (int32_t i = 0; i < dbNum; ++i) {
|
||||||
STablesReq* pReq = taosArrayGet(pCtx->pNames, i);
|
STablesReq* pReq = taosArrayGet(pCtx->pNames, i);
|
||||||
ctgDebug("start to check tb metas in db %s, tbNum %d", pReq->dbFName, (int32_t)taosArrayGetSize(pReq->pTables));
|
ctgDebug("start to check tb metas in db %s, tbNum %ld", pReq->dbFName, taosArrayGetSize(pReq->pTables));
|
||||||
CTG_ERR_RET(ctgGetTbMetasFromCache(pCtg, pConn, pCtx, i, &fetchIdx, baseResIdx, pReq->pTables));
|
CTG_ERR_RET(ctgGetTbMetasFromCache(pCtg, pConn, pCtx, i, &fetchIdx, baseResIdx, pReq->pTables));
|
||||||
baseResIdx += taosArrayGetSize(pReq->pTables);
|
baseResIdx += taosArrayGetSize(pReq->pTables);
|
||||||
}
|
}
|
||||||
|
|
|
@ -954,9 +954,7 @@ SOperatorInfo* createTagScanOperatorInfo(SReadHandle* pReadHandle, STagScanPhysi
|
||||||
SOperatorInfo* createSysTableScanOperatorInfo(void* readHandle, SSystemTableScanPhysiNode* pScanPhyNode,
|
SOperatorInfo* createSysTableScanOperatorInfo(void* readHandle, SSystemTableScanPhysiNode* pScanPhyNode,
|
||||||
const char* pUser, SExecTaskInfo* pTaskInfo);
|
const char* pUser, SExecTaskInfo* pTaskInfo);
|
||||||
|
|
||||||
SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols,
|
SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SAggPhysiNode* pNode, SExecTaskInfo* pTaskInfo);
|
||||||
SSDataBlock* pResultBlock, SNode* pCondition, SExprInfo* pScalarExprInfo,
|
|
||||||
int32_t numOfScalarExpr, bool mergeResult, SExecTaskInfo* pTaskInfo);
|
|
||||||
|
|
||||||
SOperatorInfo* createIndefinitOutputOperatorInfo(SOperatorInfo* downstream, SPhysiNode* pNode,
|
SOperatorInfo* createIndefinitOutputOperatorInfo(SOperatorInfo* downstream, SPhysiNode* pNode,
|
||||||
SExecTaskInfo* pTaskInfo);
|
SExecTaskInfo* pTaskInfo);
|
||||||
|
@ -980,9 +978,7 @@ SOperatorInfo* createStreamFinalIntervalOperatorInfo(SOperatorInfo* downstream,
|
||||||
SExecTaskInfo* pTaskInfo, int32_t numOfChild);
|
SExecTaskInfo* pTaskInfo, int32_t numOfChild);
|
||||||
SOperatorInfo* createSessionAggOperatorInfo(SOperatorInfo* downstream, SSessionWinodwPhysiNode* pSessionNode,
|
SOperatorInfo* createSessionAggOperatorInfo(SOperatorInfo* downstream, SSessionWinodwPhysiNode* pSessionNode,
|
||||||
SExecTaskInfo* pTaskInfo);
|
SExecTaskInfo* pTaskInfo);
|
||||||
SOperatorInfo* createGroupOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols,
|
SOperatorInfo* createGroupOperatorInfo(SOperatorInfo* downstream, SAggPhysiNode *pAggNode, SExecTaskInfo* pTaskInfo);
|
||||||
SSDataBlock* pResultBlock, SArray* pGroupColList, SNode* pCondition,
|
|
||||||
SExprInfo* pScalarExprInfo, int32_t numOfScalarExpr, SExecTaskInfo* pTaskInfo);
|
|
||||||
SOperatorInfo* createDataBlockInfoScanOperator(void* dataReader, SReadHandle* readHandle, uint64_t uid,
|
SOperatorInfo* createDataBlockInfoScanOperator(void* dataReader, SReadHandle* readHandle, uint64_t uid,
|
||||||
SBlockDistScanPhysiNode* pBlockScanNode, SExecTaskInfo* pTaskInfo);
|
SBlockDistScanPhysiNode* pBlockScanNode, SExecTaskInfo* pTaskInfo);
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,9 @@ SSDataBlock* doScanCache(SOperatorInfo* pOperator) {
|
||||||
|
|
||||||
if (pTableList->map != NULL) {
|
if (pTableList->map != NULL) {
|
||||||
int64_t* groupId = taosHashGet(pTableList->map, &pInfo->pRes->info.uid, sizeof(int64_t));
|
int64_t* groupId = taosHashGet(pTableList->map, &pInfo->pRes->info.uid, sizeof(int64_t));
|
||||||
pInfo->pRes->info.groupId = *groupId;
|
if (groupId != NULL) {
|
||||||
|
pInfo->pRes->info.groupId = *groupId;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ASSERT(taosArrayGetSize(pTableList->pTableList) == 1);
|
ASSERT(taosArrayGetSize(pTableList->pTableList) == 1);
|
||||||
STableKeyInfo* pKeyInfo = taosArrayGet(pTableList->pTableList, 0);
|
STableKeyInfo* pKeyInfo = taosArrayGet(pTableList->pTableList, 0);
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void toDataCacheEntry(SDataDeleterHandle* pHandle, const SInputData* pInp
|
||||||
pRes->ekey = pHandle->pDeleter->deleteTimeRange.ekey;
|
pRes->ekey = pHandle->pDeleter->deleteTimeRange.ekey;
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("delete %ld rows, from %ld to %ld", pRes->affectedRows, pRes->skey, pRes->ekey);
|
qDebug("delete %" PRId64 " rows, from %" PRId64 " to %" PRId64 "", pRes->affectedRows, pRes->skey, pRes->ekey);
|
||||||
|
|
||||||
pBuf->useSize += pEntry->dataLen;
|
pBuf->useSize += pEntry->dataLen;
|
||||||
|
|
||||||
|
@ -234,8 +234,11 @@ static int32_t destroyDataSinker(SDataSinkHandle* pHandle) {
|
||||||
while (!taosQueueEmpty(pDeleter->pDataBlocks)) {
|
while (!taosQueueEmpty(pDeleter->pDataBlocks)) {
|
||||||
SDataDeleterBuf* pBuf = NULL;
|
SDataDeleterBuf* pBuf = NULL;
|
||||||
taosReadQitem(pDeleter->pDataBlocks, (void**)&pBuf);
|
taosReadQitem(pDeleter->pDataBlocks, (void**)&pBuf);
|
||||||
taosMemoryFreeClear(pBuf->pData);
|
|
||||||
taosFreeQitem(pBuf);
|
if (pBuf != NULL) {
|
||||||
|
taosMemoryFreeClear(pBuf->pData);
|
||||||
|
taosFreeQitem(pBuf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
taosCloseQueue(pDeleter->pDataBlocks);
|
taosCloseQueue(pDeleter->pDataBlocks);
|
||||||
taosThreadMutexDestroy(&pDeleter->mutex);
|
taosThreadMutexDestroy(&pDeleter->mutex);
|
||||||
|
|
|
@ -329,6 +329,8 @@ int32_t createDataInserter(SDataSinkManager* pManager, const SDataSinkNode* pDat
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pInserterNode->stableId != suid) {
|
if (pInserterNode->stableId != suid) {
|
||||||
|
destroyDataSinker((SDataSinkHandle*)inserter);
|
||||||
|
taosMemoryFree(inserter);
|
||||||
terrno = TSDB_CODE_TDB_INVALID_TABLE_ID;
|
terrno = TSDB_CODE_TDB_INVALID_TABLE_ID;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -336,6 +338,8 @@ int32_t createDataInserter(SDataSinkManager* pManager, const SDataSinkNode* pDat
|
||||||
inserter->pDataBlocks = taosArrayInit(1, POINTER_BYTES);
|
inserter->pDataBlocks = taosArrayInit(1, POINTER_BYTES);
|
||||||
taosThreadMutexInit(&inserter->mutex, NULL);
|
taosThreadMutexInit(&inserter->mutex, NULL);
|
||||||
if (NULL == inserter->pDataBlocks) {
|
if (NULL == inserter->pDataBlocks) {
|
||||||
|
destroyDataSinker((SDataSinkHandle*)inserter);
|
||||||
|
taosMemoryFree(inserter);
|
||||||
terrno = TSDB_CODE_QRY_OUT_OF_MEMORY;
|
terrno = TSDB_CODE_QRY_OUT_OF_MEMORY;
|
||||||
return TSDB_CODE_QRY_OUT_OF_MEMORY;
|
return TSDB_CODE_QRY_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
|
@ -920,7 +920,7 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
|
||||||
void* var = POINTER_SHIFT(pColInfoData->pData, j * pColInfoData->info.bytes);
|
void* var = POINTER_SHIFT(pColInfoData->pData, j * pColInfoData->info.bytes);
|
||||||
|
|
||||||
int64_t* uid = taosArrayGet(res, i);
|
int64_t* uid = taosArrayGet(res, i);
|
||||||
qDebug("tagfilter get uid:%ld, res:%d", *uid, *(bool*)var);
|
qDebug("tagfilter get uid:%" PRId64 ", res:%d", *uid, *(bool*)var);
|
||||||
if (*(bool*)var == false) {
|
if (*(bool*)var == false) {
|
||||||
taosArrayRemove(res, i);
|
taosArrayRemove(res, i);
|
||||||
j++;
|
j++;
|
||||||
|
@ -942,7 +942,7 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("tagfilter get uid:%ld", info.uid);
|
qDebug("tagfilter get uid:%" PRId64 "", info.uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
taosArrayDestroy(res);
|
taosArrayDestroy(res);
|
||||||
|
|
|
@ -358,7 +358,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
|
||||||
SDataSinkMgtCfg cfg = {.maxDataBlockNum = 10000, .maxDataBlockNumPerQuery = 5000};
|
SDataSinkMgtCfg cfg = {.maxDataBlockNum = 10000, .maxDataBlockNumPerQuery = 5000};
|
||||||
code = dsDataSinkMgtInit(&cfg);
|
code = dsDataSinkMgtInit(&cfg);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
qError("failed to dsDataSinkMgtInit, code: %s", tstrerror(code));
|
qError("failed to dsDataSinkMgtInit, code:%s, %s", tstrerror(code), (*pTask)->id.str);
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
|
||||||
void* pSinkParam = NULL;
|
void* pSinkParam = NULL;
|
||||||
code = createDataSinkParam(pSubplan->pDataSink, &pSinkParam, pTaskInfo, readHandle);
|
code = createDataSinkParam(pSubplan->pDataSink, &pSinkParam, pTaskInfo, readHandle);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
qError("failed to createDataSinkParam, code: %s", tstrerror(code));
|
qError("failed to createDataSinkParam, vgId:%d, code:%s, %s", vgId, tstrerror(code), (*pTask)->id.str);
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -858,7 +858,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, STqOffsetVal* pOffset, int8_t subT
|
||||||
tDeleteSSchemaWrapper(pTaskInfo->streamInfo.schema);
|
tDeleteSSchemaWrapper(pTaskInfo->streamInfo.schema);
|
||||||
pTaskInfo->streamInfo.schema = mtInfo.schema;
|
pTaskInfo->streamInfo.schema = mtInfo.schema;
|
||||||
|
|
||||||
qDebug("tmqsnap qStreamPrepareScan snapshot data uid %ld ts %"PRId64, mtInfo.uid, pOffset->ts);
|
qDebug("tmqsnap qStreamPrepareScan snapshot data uid %" PRId64 " ts %" PRId64, mtInfo.uid, pOffset->ts);
|
||||||
} else if (pOffset->type == TMQ_OFFSET__SNAPSHOT_META) {
|
} else if (pOffset->type == TMQ_OFFSET__SNAPSHOT_META) {
|
||||||
SStreamRawScanInfo* pInfo = pOperator->info;
|
SStreamRawScanInfo* pInfo = pOperator->info;
|
||||||
SSnapContext* sContext = pInfo->sContext;
|
SSnapContext* sContext = pInfo->sContext;
|
||||||
|
@ -866,7 +866,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, STqOffsetVal* pOffset, int8_t subT
|
||||||
qError("setForSnapShot error. uid:%" PRIu64 " ,version:%" PRId64, pOffset->uid, pOffset->version);
|
qError("setForSnapShot error. uid:%" PRIu64 " ,version:%" PRId64, pOffset->uid, pOffset->version);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
qDebug("tmqsnap qStreamPrepareScan snapshot meta uid %ld ts %"PRId64, pOffset->uid, pOffset->ts);
|
qDebug("tmqsnap qStreamPrepareScan snapshot meta uid %" PRId64 " ts %" PRId64, pOffset->uid, pOffset->ts);
|
||||||
} else if (pOffset->type == TMQ_OFFSET__LOG) {
|
} else if (pOffset->type == TMQ_OFFSET__LOG) {
|
||||||
SStreamRawScanInfo* pInfo = pOperator->info;
|
SStreamRawScanInfo* pInfo = pOperator->info;
|
||||||
tsdbReaderClose(pInfo->dataReader);
|
tsdbReaderClose(pInfo->dataReader);
|
||||||
|
|
|
@ -1776,7 +1776,7 @@ int32_t loadRemoteDataCallback(void* param, SDataBuf* pMsg, int32_t code) {
|
||||||
} else {
|
} else {
|
||||||
taosMemoryFree(pMsg->pData);
|
taosMemoryFree(pMsg->pData);
|
||||||
pSourceDataInfo->code = code;
|
pSourceDataInfo->code = code;
|
||||||
qDebug("%s fetch rsp received, index:%d, code:%s", pSourceDataInfo->taskId, index, tstrerror(code));
|
qDebug("%s fetch rsp received, index:%d, error:%s", pSourceDataInfo->taskId, index, tstrerror(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
pSourceDataInfo->status = EX_SOURCE_DATA_READY;
|
pSourceDataInfo->status = EX_SOURCE_DATA_READY;
|
||||||
|
@ -3048,32 +3048,40 @@ void cleanupExprSupp(SExprSupp* pSupp) {
|
||||||
taosMemoryFree(pSupp->rowEntryInfoOffset);
|
taosMemoryFree(pSupp->rowEntryInfoOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols,
|
SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SAggPhysiNode* pAggNode,SExecTaskInfo* pTaskInfo) {
|
||||||
SSDataBlock* pResultBlock, SNode* pCondition, SExprInfo* pScalarExprInfo,
|
|
||||||
int32_t numOfScalarExpr, bool mergeResult, SExecTaskInfo* pTaskInfo) {
|
|
||||||
SAggOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SAggOperatorInfo));
|
SAggOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SAggOperatorInfo));
|
||||||
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
||||||
if (pInfo == NULL || pOperator == NULL) {
|
if (pInfo == NULL || pOperator == NULL) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t keyBufSize = sizeof(int64_t) + sizeof(int64_t) + POINTER_BYTES;
|
SSDataBlock* pResBlock = createResDataBlock(pAggNode->node.pOutputDataBlockDesc);
|
||||||
|
initBasicInfo(&pInfo->binfo, pResBlock);
|
||||||
|
|
||||||
|
int32_t numOfScalarExpr = 0;
|
||||||
|
SExprInfo* pScalarExprInfo = NULL;
|
||||||
|
if (pAggNode->pExprs != NULL) {
|
||||||
|
pScalarExprInfo = createExprInfo(pAggNode->pExprs, NULL, &numOfScalarExpr);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t keyBufSize = sizeof(int64_t) + sizeof(int64_t) + POINTER_BYTES;
|
||||||
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
||||||
int32_t code = initAggInfo(&pOperator->exprSupp, &pInfo->aggSup, pExprInfo, numOfCols, keyBufSize, pTaskInfo->id.str);
|
|
||||||
|
int32_t num = 0;
|
||||||
|
SExprInfo* pExprInfo = createExprInfo(pAggNode->pAggFuncs, pAggNode->pGroupKeys, &num);
|
||||||
|
int32_t code = initAggInfo(&pOperator->exprSupp, &pInfo->aggSup, pExprInfo, num, keyBufSize, pTaskInfo->id.str);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
initBasicInfo(&pInfo->binfo, pResultBlock);
|
|
||||||
code = initExprSupp(&pInfo->scalarExprSup, pScalarExprInfo, numOfScalarExpr);
|
code = initExprSupp(&pInfo->scalarExprSup, pScalarExprInfo, numOfScalarExpr);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
pInfo->binfo.mergeResultBlock = mergeResult;
|
pInfo->binfo.mergeResultBlock = pAggNode->mergeDataBlock;
|
||||||
pInfo->groupId = UINT64_MAX;
|
pInfo->groupId = UINT64_MAX;
|
||||||
pInfo->pCondition = pCondition;
|
pInfo->pCondition = pAggNode->node.pConditions;
|
||||||
pOperator->name = "TableAggregate";
|
pOperator->name = "TableAggregate";
|
||||||
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_HASH_AGG;
|
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_HASH_AGG;
|
||||||
pOperator->blocking = true;
|
pOperator->blocking = true;
|
||||||
|
@ -3332,8 +3340,6 @@ static SExecTaskInfo* createExecTaskInfo(uint64_t queryId, uint64_t taskId, EOPT
|
||||||
return pTaskInfo;
|
return pTaskInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SArray* extractColumnInfo(SNodeList* pNodeList);
|
|
||||||
|
|
||||||
SSchemaWrapper* extractQueriedColumnSchema(SScanPhysiNode* pScanNode);
|
SSchemaWrapper* extractQueriedColumnSchema(SScanPhysiNode* pScanNode);
|
||||||
|
|
||||||
int32_t extractTableSchemaInfo(SReadHandle* pHandle, SScanPhysiNode* pScanNode, SExecTaskInfo* pTaskInfo) {
|
int32_t extractTableSchemaInfo(SReadHandle* pHandle, SScanPhysiNode* pScanNode, SExecTaskInfo* pTaskInfo) {
|
||||||
|
@ -3710,22 +3716,10 @@ SOperatorInfo* createOperatorTree(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo
|
||||||
pOptr = createProjectOperatorInfo(ops[0], (SProjectPhysiNode*)pPhyNode, pTaskInfo);
|
pOptr = createProjectOperatorInfo(ops[0], (SProjectPhysiNode*)pPhyNode, pTaskInfo);
|
||||||
} else if (QUERY_NODE_PHYSICAL_PLAN_HASH_AGG == type) {
|
} else if (QUERY_NODE_PHYSICAL_PLAN_HASH_AGG == type) {
|
||||||
SAggPhysiNode* pAggNode = (SAggPhysiNode*)pPhyNode;
|
SAggPhysiNode* pAggNode = (SAggPhysiNode*)pPhyNode;
|
||||||
SExprInfo* pExprInfo = createExprInfo(pAggNode->pAggFuncs, pAggNode->pGroupKeys, &num);
|
|
||||||
SSDataBlock* pResBlock = createResDataBlock(pPhyNode->pOutputDataBlockDesc);
|
|
||||||
|
|
||||||
int32_t numOfScalarExpr = 0;
|
|
||||||
SExprInfo* pScalarExprInfo = NULL;
|
|
||||||
if (pAggNode->pExprs != NULL) {
|
|
||||||
pScalarExprInfo = createExprInfo(pAggNode->pExprs, NULL, &numOfScalarExpr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pAggNode->pGroupKeys != NULL) {
|
if (pAggNode->pGroupKeys != NULL) {
|
||||||
SArray* pColList = extractColumnInfo(pAggNode->pGroupKeys);
|
pOptr = createGroupOperatorInfo(ops[0], pAggNode, pTaskInfo);
|
||||||
pOptr = createGroupOperatorInfo(ops[0], pExprInfo, num, pResBlock, pColList, pAggNode->node.pConditions,
|
|
||||||
pScalarExprInfo, numOfScalarExpr, pTaskInfo);
|
|
||||||
} else {
|
} else {
|
||||||
pOptr = createAggregateOperatorInfo(ops[0], pExprInfo, num, pResBlock, pAggNode->node.pConditions,
|
pOptr = createAggregateOperatorInfo(ops[0], pAggNode, pTaskInfo);
|
||||||
pScalarExprInfo, numOfScalarExpr, pAggNode->mergeDataBlock, pTaskInfo);
|
|
||||||
}
|
}
|
||||||
} else if (QUERY_NODE_PHYSICAL_PLAN_HASH_INTERVAL == type) {
|
} else if (QUERY_NODE_PHYSICAL_PLAN_HASH_INTERVAL == type) {
|
||||||
SIntervalPhysiNode* pIntervalPhyNode = (SIntervalPhysiNode*)pPhyNode;
|
SIntervalPhysiNode* pIntervalPhyNode = (SIntervalPhysiNode*)pPhyNode;
|
||||||
|
@ -3815,39 +3809,6 @@ SOperatorInfo* createOperatorTree(SPhysiNode* pPhyNode, SExecTaskInfo* pTaskInfo
|
||||||
return pOptr;
|
return pOptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
SArray* extractColumnInfo(SNodeList* pNodeList) {
|
|
||||||
size_t numOfCols = LIST_LENGTH(pNodeList);
|
|
||||||
SArray* pList = taosArrayInit(numOfCols, sizeof(SColumn));
|
|
||||||
if (pList == NULL) {
|
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int32_t i = 0; i < numOfCols; ++i) {
|
|
||||||
STargetNode* pNode = (STargetNode*)nodesListGetNode(pNodeList, i);
|
|
||||||
|
|
||||||
if (nodeType(pNode->pExpr) == QUERY_NODE_COLUMN) {
|
|
||||||
SColumnNode* pColNode = (SColumnNode*)pNode->pExpr;
|
|
||||||
|
|
||||||
SColumn c = extractColumnFromColumnNode(pColNode);
|
|
||||||
taosArrayPush(pList, &c);
|
|
||||||
} else if (nodeType(pNode->pExpr) == QUERY_NODE_VALUE) {
|
|
||||||
SValueNode* pValNode = (SValueNode*)pNode->pExpr;
|
|
||||||
SColumn c = {0};
|
|
||||||
c.slotId = pNode->slotId;
|
|
||||||
c.colId = pNode->slotId;
|
|
||||||
c.type = pValNode->node.type;
|
|
||||||
c.bytes = pValNode->node.resType.bytes;
|
|
||||||
c.scale = pValNode->node.resType.scale;
|
|
||||||
c.precision = pValNode->node.resType.precision;
|
|
||||||
|
|
||||||
taosArrayPush(pList, &c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return pList;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int32_t extractTbscanInStreamOpTree(SOperatorInfo* pOperator, STableScanInfo** ppInfo) {
|
static int32_t extractTbscanInStreamOpTree(SOperatorInfo* pOperator, STableScanInfo** ppInfo) {
|
||||||
if (pOperator->operatorType != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
if (pOperator->operatorType != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
||||||
if (pOperator->numOfDownstream == 0) {
|
if (pOperator->numOfDownstream == 0) {
|
||||||
|
@ -4071,6 +4032,7 @@ int32_t createExecTaskInfoImpl(SSubplan* pPlan, SExecTaskInfo** pTaskInfo, SRead
|
||||||
|
|
||||||
(*pTaskInfo)->sql = sql;
|
(*pTaskInfo)->sql = sql;
|
||||||
sql = NULL;
|
sql = NULL;
|
||||||
|
|
||||||
(*pTaskInfo)->pSubplan = pPlan;
|
(*pTaskInfo)->pSubplan = pPlan;
|
||||||
(*pTaskInfo)->pRoot = createOperatorTree(pPlan->pNode, *pTaskInfo, pHandle, &(*pTaskInfo)->tableqinfoList,
|
(*pTaskInfo)->pRoot = createOperatorTree(pPlan->pNode, *pTaskInfo, pHandle, &(*pTaskInfo)->tableqinfoList,
|
||||||
pPlan->pTagCond, pPlan->pTagIndexCond, pPlan->user);
|
pPlan->pTagCond, pPlan->pTagIndexCond, pPlan->user);
|
||||||
|
|
|
@ -30,6 +30,7 @@ static void* getCurrentDataGroupInfo(const SPartitionOperatorInfo* pInfo, SDa
|
||||||
static int32_t* setupColumnOffset(const SSDataBlock* pBlock, int32_t rowCapacity);
|
static int32_t* setupColumnOffset(const SSDataBlock* pBlock, int32_t rowCapacity);
|
||||||
static int32_t setGroupResultOutputBuf(SOperatorInfo* pOperator, SOptrBasicInfo* binfo, int32_t numOfCols, char* pData,
|
static int32_t setGroupResultOutputBuf(SOperatorInfo* pOperator, SOptrBasicInfo* binfo, int32_t numOfCols, char* pData,
|
||||||
int16_t bytes, uint64_t groupId, SDiskbasedBuf* pBuf, SAggSupporter* pAggSup);
|
int16_t bytes, uint64_t groupId, SDiskbasedBuf* pBuf, SAggSupporter* pAggSup);
|
||||||
|
static SArray* extractColumnInfo(SNodeList* pNodeList);
|
||||||
|
|
||||||
static void freeGroupKey(void* param) {
|
static void freeGroupKey(void* param) {
|
||||||
SGroupKeys* pKey = (SGroupKeys*)param;
|
SGroupKeys* pKey = (SGroupKeys*)param;
|
||||||
|
@ -61,7 +62,7 @@ static int32_t initGroupOptrInfo(SArray** pGroupColVals, int32_t* keyLen, char**
|
||||||
|
|
||||||
int32_t numOfGroupCols = taosArrayGetSize(pGroupColList);
|
int32_t numOfGroupCols = taosArrayGetSize(pGroupColList);
|
||||||
for (int32_t i = 0; i < numOfGroupCols; ++i) {
|
for (int32_t i = 0; i < numOfGroupCols; ++i) {
|
||||||
SColumn* pCol = taosArrayGet(pGroupColList, i);
|
SColumn* pCol = (SColumn*) taosArrayGet(pGroupColList, i);
|
||||||
(*keyLen) += pCol->bytes; // actual data + null_flag
|
(*keyLen) += pCol->bytes; // actual data + null_flag
|
||||||
|
|
||||||
SGroupKeys key = {0};
|
SGroupKeys key = {0};
|
||||||
|
@ -396,41 +397,48 @@ static SSDataBlock* hashGroupbyAggregate(SOperatorInfo* pOperator) {
|
||||||
return buildGroupResultDataBlock(pOperator);
|
return buildGroupResultDataBlock(pOperator);
|
||||||
}
|
}
|
||||||
|
|
||||||
SOperatorInfo* createGroupOperatorInfo(SOperatorInfo* downstream, SExprInfo* pExprInfo, int32_t numOfCols,
|
SOperatorInfo* createGroupOperatorInfo(SOperatorInfo* downstream, SAggPhysiNode *pAggNode, SExecTaskInfo* pTaskInfo) {
|
||||||
SSDataBlock* pResultBlock, SArray* pGroupColList, SNode* pCondition,
|
|
||||||
SExprInfo* pScalarExprInfo, int32_t numOfScalarExpr, SExecTaskInfo* pTaskInfo) {
|
|
||||||
SGroupbyOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SGroupbyOperatorInfo));
|
SGroupbyOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SGroupbyOperatorInfo));
|
||||||
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
||||||
if (pInfo == NULL || pOperator == NULL) {
|
if (pInfo == NULL || pOperator == NULL) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
pInfo->pGroupCols = pGroupColList;
|
SSDataBlock* pResBlock = createResDataBlock(pAggNode->node.pOutputDataBlockDesc);
|
||||||
pInfo->pCondition = pCondition;
|
initBasicInfo(&pInfo->binfo, pResBlock);
|
||||||
|
|
||||||
|
int32_t numOfScalarExpr = 0;
|
||||||
|
SExprInfo* pScalarExprInfo = NULL;
|
||||||
|
if (pAggNode->pExprs != NULL) {
|
||||||
|
pScalarExprInfo = createExprInfo(pAggNode->pExprs, NULL, &numOfScalarExpr);
|
||||||
|
}
|
||||||
|
|
||||||
|
pInfo->pGroupCols = extractColumnInfo(pAggNode->pGroupKeys);
|
||||||
|
pInfo->pCondition = pAggNode->node.pConditions;
|
||||||
|
|
||||||
int32_t code = initExprSupp(&pInfo->scalarSup, pScalarExprInfo, numOfScalarExpr);
|
int32_t code = initExprSupp(&pInfo->scalarSup, pScalarExprInfo, numOfScalarExpr);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = initGroupOptrInfo(&pInfo->pGroupColVals, &pInfo->groupKeyLen, &pInfo->keyBuf, pGroupColList);
|
int32_t num = 0;
|
||||||
|
SExprInfo* pExprInfo = createExprInfo(pAggNode->pAggFuncs, pAggNode->pGroupKeys, &num);
|
||||||
|
code = initGroupOptrInfo(&pInfo->pGroupColVals, &pInfo->groupKeyLen, &pInfo->keyBuf, pInfo->pGroupCols);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
||||||
code = initAggInfo(&pOperator->exprSupp, &pInfo->aggSup, pExprInfo, numOfCols, pInfo->groupKeyLen, pTaskInfo->id.str);
|
code = initAggInfo(&pOperator->exprSupp, &pInfo->aggSup, pExprInfo, num, pInfo->groupKeyLen, pTaskInfo->id.str);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
initBasicInfo(&pInfo->binfo, pResultBlock);
|
|
||||||
initResultRowInfo(&pInfo->binfo.resultRowInfo);
|
initResultRowInfo(&pInfo->binfo.resultRowInfo);
|
||||||
|
|
||||||
pOperator->name = "GroupbyAggOperator";
|
pOperator->name = "GroupbyAggOperator";
|
||||||
pOperator->blocking = true;
|
pOperator->blocking = true;
|
||||||
pOperator->status = OP_NOT_OPENED;
|
pOperator->status = OP_NOT_OPENED;
|
||||||
// pOperator->operatorType = OP_Groupby;
|
|
||||||
pOperator->info = pInfo;
|
pOperator->info = pInfo;
|
||||||
pOperator->pTaskInfo = pTaskInfo;
|
pOperator->pTaskInfo = pTaskInfo;
|
||||||
|
|
||||||
|
@ -451,8 +459,6 @@ _error:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doHashPartition(SOperatorInfo* pOperator, SSDataBlock* pBlock) {
|
static void doHashPartition(SOperatorInfo* pOperator, SSDataBlock* pBlock) {
|
||||||
// SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
|
||||||
|
|
||||||
SPartitionOperatorInfo* pInfo = pOperator->info;
|
SPartitionOperatorInfo* pInfo = pOperator->info;
|
||||||
|
|
||||||
for (int32_t j = 0; j < pBlock->info.rows; ++j) {
|
for (int32_t j = 0; j < pBlock->info.rows; ++j) {
|
||||||
|
@ -760,7 +766,6 @@ SOperatorInfo* createPartitionOperatorInfo(SOperatorInfo* downstream, SPartition
|
||||||
|
|
||||||
int32_t numOfCols = 0;
|
int32_t numOfCols = 0;
|
||||||
SExprInfo* pExprInfo = createExprInfo(pPartNode->pTargets, NULL, &numOfCols);
|
SExprInfo* pExprInfo = createExprInfo(pPartNode->pTargets, NULL, &numOfCols);
|
||||||
|
|
||||||
pInfo->pGroupCols = extractPartitionColInfo(pPartNode->pPartitionKeys);
|
pInfo->pGroupCols = extractPartitionColInfo(pPartNode->pPartitionKeys);
|
||||||
|
|
||||||
if (pPartNode->pExprs != NULL) {
|
if (pPartNode->pExprs != NULL) {
|
||||||
|
@ -781,14 +786,13 @@ SOperatorInfo* createPartitionOperatorInfo(SOperatorInfo* downstream, SPartition
|
||||||
uint32_t defaultPgsz = 0;
|
uint32_t defaultPgsz = 0;
|
||||||
uint32_t defaultBufsz = 0;
|
uint32_t defaultBufsz = 0;
|
||||||
|
|
||||||
SSDataBlock* pResBlock = createResDataBlock(pPartNode->node.pOutputDataBlockDesc);
|
pInfo->binfo.pRes = createResDataBlock(pPartNode->node.pOutputDataBlockDesc);
|
||||||
getBufferPgSize(pResBlock->info.rowSize, &defaultPgsz, &defaultBufsz);
|
getBufferPgSize(pInfo->binfo.pRes->info.rowSize, &defaultPgsz, &defaultBufsz);
|
||||||
|
|
||||||
if (!osTempSpaceAvailable()) {
|
if (!osTempSpaceAvailable()) {
|
||||||
terrno = TSDB_CODE_NO_AVAIL_DISK;
|
terrno = TSDB_CODE_NO_AVAIL_DISK;
|
||||||
pTaskInfo->code = terrno;
|
pTaskInfo->code = terrno;
|
||||||
qError("Create partition operator info failed since %s", terrstr(terrno));
|
qError("Create partition operator info failed since %s", terrstr(terrno));
|
||||||
blockDataDestroy(pResBlock);
|
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -797,8 +801,8 @@ SOperatorInfo* createPartitionOperatorInfo(SOperatorInfo* downstream, SPartition
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
pInfo->rowCapacity = blockDataGetCapacityInRow(pResBlock, getBufPageSize(pInfo->pBuf));
|
pInfo->rowCapacity = blockDataGetCapacityInRow(pInfo->binfo.pRes, getBufPageSize(pInfo->pBuf));
|
||||||
pInfo->columnOffset = setupColumnOffset(pResBlock, pInfo->rowCapacity);
|
pInfo->columnOffset = setupColumnOffset(pInfo->binfo.pRes, pInfo->rowCapacity);
|
||||||
code = initGroupOptrInfo(&pInfo->pGroupColVals, &pInfo->groupKeyLen, &pInfo->keyBuf, pInfo->pGroupCols);
|
code = initGroupOptrInfo(&pInfo->pGroupColVals, &pInfo->groupKeyLen, &pInfo->keyBuf, pInfo->pGroupCols);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
|
@ -808,7 +812,6 @@ SOperatorInfo* createPartitionOperatorInfo(SOperatorInfo* downstream, SPartition
|
||||||
pOperator->blocking = true;
|
pOperator->blocking = true;
|
||||||
pOperator->status = OP_NOT_OPENED;
|
pOperator->status = OP_NOT_OPENED;
|
||||||
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_PARTITION;
|
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_PARTITION;
|
||||||
pInfo->binfo.pRes = pResBlock;
|
|
||||||
pOperator->exprSupp.numOfExprs = numOfCols;
|
pOperator->exprSupp.numOfExprs = numOfCols;
|
||||||
pOperator->exprSupp.pExprInfo = pExprInfo;
|
pOperator->exprSupp.pExprInfo = pExprInfo;
|
||||||
pOperator->info = pInfo;
|
pOperator->info = pInfo;
|
||||||
|
@ -1102,3 +1105,37 @@ _error:
|
||||||
taosMemoryFreeClear(pOperator);
|
taosMemoryFreeClear(pOperator);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SArray* extractColumnInfo(SNodeList* pNodeList) {
|
||||||
|
size_t numOfCols = LIST_LENGTH(pNodeList);
|
||||||
|
SArray* pList = taosArrayInit(numOfCols, sizeof(SColumn));
|
||||||
|
if (pList == NULL) {
|
||||||
|
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < numOfCols; ++i) {
|
||||||
|
STargetNode* pNode = (STargetNode*)nodesListGetNode(pNodeList, i);
|
||||||
|
|
||||||
|
if (nodeType(pNode->pExpr) == QUERY_NODE_COLUMN) {
|
||||||
|
SColumnNode* pColNode = (SColumnNode*)pNode->pExpr;
|
||||||
|
|
||||||
|
SColumn c = extractColumnFromColumnNode(pColNode);
|
||||||
|
taosArrayPush(pList, &c);
|
||||||
|
} else if (nodeType(pNode->pExpr) == QUERY_NODE_VALUE) {
|
||||||
|
SValueNode* pValNode = (SValueNode*)pNode->pExpr;
|
||||||
|
SColumn c = {0};
|
||||||
|
c.slotId = pNode->slotId;
|
||||||
|
c.colId = pNode->slotId;
|
||||||
|
c.type = pValNode->node.type;
|
||||||
|
c.bytes = pValNode->node.resType.bytes;
|
||||||
|
c.scale = pValNode->node.resType.scale;
|
||||||
|
c.precision = pValNode->node.resType.precision;
|
||||||
|
|
||||||
|
taosArrayPush(pList, &c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pList;
|
||||||
|
}
|
||||||
|
|
|
@ -59,15 +59,16 @@ SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t
|
||||||
SSortMergeJoinPhysiNode* pJoinNode, SExecTaskInfo* pTaskInfo) {
|
SSortMergeJoinPhysiNode* pJoinNode, SExecTaskInfo* pTaskInfo) {
|
||||||
SJoinOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SJoinOperatorInfo));
|
SJoinOperatorInfo* pInfo = taosMemoryCalloc(1, sizeof(SJoinOperatorInfo));
|
||||||
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
||||||
|
|
||||||
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
if (pOperator == NULL || pInfo == NULL) {
|
if (pOperator == NULL || pInfo == NULL) {
|
||||||
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t numOfCols = 0;
|
||||||
SSDataBlock* pResBlock = createResDataBlock(pJoinNode->node.pOutputDataBlockDesc);
|
SSDataBlock* pResBlock = createResDataBlock(pJoinNode->node.pOutputDataBlockDesc);
|
||||||
|
SExprInfo* pExprInfo = createExprInfo(pJoinNode->pTargets, NULL, &numOfCols);
|
||||||
int32_t numOfCols = 0;
|
|
||||||
SExprInfo* pExprInfo = createExprInfo(pJoinNode->pTargets, NULL, &numOfCols);
|
|
||||||
|
|
||||||
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
initResultSizeInfo(&pOperator->resultInfo, 4096);
|
||||||
|
|
||||||
pInfo->pRes = pResBlock;
|
pInfo->pRes = pResBlock;
|
||||||
|
@ -84,8 +85,18 @@ SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t
|
||||||
|
|
||||||
if (pJoinNode->pOnConditions != NULL && pJoinNode->node.pConditions != NULL) {
|
if (pJoinNode->pOnConditions != NULL && pJoinNode->node.pConditions != NULL) {
|
||||||
pInfo->pCondAfterMerge = nodesMakeNode(QUERY_NODE_LOGIC_CONDITION);
|
pInfo->pCondAfterMerge = nodesMakeNode(QUERY_NODE_LOGIC_CONDITION);
|
||||||
|
if (pInfo->pCondAfterMerge == NULL) {
|
||||||
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
goto _error;
|
||||||
|
}
|
||||||
|
|
||||||
SLogicConditionNode* pLogicCond = (SLogicConditionNode*)(pInfo->pCondAfterMerge);
|
SLogicConditionNode* pLogicCond = (SLogicConditionNode*)(pInfo->pCondAfterMerge);
|
||||||
pLogicCond->pParameterList = nodesMakeList();
|
pLogicCond->pParameterList = nodesMakeList();
|
||||||
|
if (pLogicCond->pParameterList == NULL) {
|
||||||
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
goto _error;
|
||||||
|
}
|
||||||
|
|
||||||
nodesListMakeAppend(&pLogicCond->pParameterList, nodesCloneNode(pJoinNode->pOnConditions));
|
nodesListMakeAppend(&pLogicCond->pParameterList, nodesCloneNode(pJoinNode->pOnConditions));
|
||||||
nodesListMakeAppend(&pLogicCond->pParameterList, nodesCloneNode(pJoinNode->node.pConditions));
|
nodesListMakeAppend(&pLogicCond->pParameterList, nodesCloneNode(pJoinNode->node.pConditions));
|
||||||
pLogicCond->condType = LOGIC_COND_TYPE_AND;
|
pLogicCond->condType = LOGIC_COND_TYPE_AND;
|
||||||
|
@ -106,7 +117,7 @@ SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t
|
||||||
|
|
||||||
pOperator->fpSet =
|
pOperator->fpSet =
|
||||||
createOperatorFpSet(operatorDummyOpenFn, doMergeJoin, NULL, NULL, destroyMergeJoinOperator, NULL, NULL, NULL);
|
createOperatorFpSet(operatorDummyOpenFn, doMergeJoin, NULL, NULL, destroyMergeJoinOperator, NULL, NULL, NULL);
|
||||||
int32_t code = appendDownstream(pOperator, pDownstream, numOfDownstream);
|
code = appendDownstream(pOperator, pDownstream, numOfDownstream);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
@ -114,9 +125,12 @@ SOperatorInfo* createMergeJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t
|
||||||
return pOperator;
|
return pOperator;
|
||||||
|
|
||||||
_error:
|
_error:
|
||||||
taosMemoryFree(pInfo);
|
if (pInfo != NULL) {
|
||||||
|
destroyMergeJoinOperator(pInfo);
|
||||||
|
}
|
||||||
|
|
||||||
taosMemoryFree(pOperator);
|
taosMemoryFree(pOperator);
|
||||||
pTaskInfo->code = TSDB_CODE_OUT_OF_MEMORY;
|
pTaskInfo->code = code;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -548,7 +548,13 @@ void setTbNameColData(void* pMeta, const SSDataBlock* pBlock, SColumnInfoData* p
|
||||||
SScalarParam srcParam = {.numOfRows = pBlock->info.rows, .param = pMeta, .columnData = &infoData};
|
SScalarParam srcParam = {.numOfRows = pBlock->info.rows, .param = pMeta, .columnData = &infoData};
|
||||||
|
|
||||||
SScalarParam param = {.columnData = pColInfoData};
|
SScalarParam param = {.columnData = pColInfoData};
|
||||||
fpSet.process(&srcParam, 1, ¶m);
|
|
||||||
|
if (fpSet.process != NULL) {
|
||||||
|
fpSet.process(&srcParam, 1, ¶m);
|
||||||
|
} else {
|
||||||
|
qError("failed to get the corresponding callback function, functionId:%d", functionId);
|
||||||
|
}
|
||||||
|
|
||||||
colDataDestroy(&infoData);
|
colDataDestroy(&infoData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1604,7 +1610,7 @@ static SSDataBlock* doQueueScan(SOperatorInfo* pOperator) {
|
||||||
tsdbReaderClose(pTSInfo->dataReader);
|
tsdbReaderClose(pTSInfo->dataReader);
|
||||||
pTSInfo->dataReader = NULL;
|
pTSInfo->dataReader = NULL;
|
||||||
tqOffsetResetToLog(&pTaskInfo->streamInfo.prepareStatus, pTaskInfo->streamInfo.snapshotVer);
|
tqOffsetResetToLog(&pTaskInfo->streamInfo.prepareStatus, pTaskInfo->streamInfo.snapshotVer);
|
||||||
qDebug("queue scan tsdb over, switch to wal ver %" PRId64, pTaskInfo->streamInfo.snapshotVer + 1);
|
qDebug("queue scan tsdb over, switch to wal ver %" PRId64 "", pTaskInfo->streamInfo.snapshotVer + 1);
|
||||||
if (tqSeekVer(pInfo->tqReader, pTaskInfo->streamInfo.snapshotVer + 1) < 0) {
|
if (tqSeekVer(pInfo->tqReader, pTaskInfo->streamInfo.snapshotVer + 1) < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2037,7 +2043,7 @@ static SSDataBlock* doRawScan(SOperatorInfo* pOperator) {
|
||||||
longjmp(pTaskInfo->env, terrno);
|
longjmp(pTaskInfo->env, terrno);
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("tmqsnap doRawScan get data uid:%ld", pBlock->info.uid);
|
qDebug("tmqsnap doRawScan get data uid:%" PRId64 "", pBlock->info.uid);
|
||||||
pTaskInfo->streamInfo.lastStatus.type = TMQ_OFFSET__SNAPSHOT_DATA;
|
pTaskInfo->streamInfo.lastStatus.type = TMQ_OFFSET__SNAPSHOT_DATA;
|
||||||
pTaskInfo->streamInfo.lastStatus.uid = pBlock->info.uid;
|
pTaskInfo->streamInfo.lastStatus.uid = pBlock->info.uid;
|
||||||
pTaskInfo->streamInfo.lastStatus.ts = pBlock->info.window.ekey;
|
pTaskInfo->streamInfo.lastStatus.ts = pBlock->info.window.ekey;
|
||||||
|
@ -2053,7 +2059,7 @@ static SSDataBlock* doRawScan(SOperatorInfo* pOperator) {
|
||||||
} else {
|
} else {
|
||||||
pTaskInfo->streamInfo.prepareStatus.uid = mtInfo.uid;
|
pTaskInfo->streamInfo.prepareStatus.uid = mtInfo.uid;
|
||||||
pTaskInfo->streamInfo.prepareStatus.ts = INT64_MIN;
|
pTaskInfo->streamInfo.prepareStatus.ts = INT64_MIN;
|
||||||
qDebug("tmqsnap change get data uid:%ld", mtInfo.uid);
|
qDebug("tmqsnap change get data uid:%" PRId64 "", mtInfo.uid);
|
||||||
qStreamPrepareScan(pTaskInfo, &pTaskInfo->streamInfo.prepareStatus, pInfo->sContext->subType);
|
qStreamPrepareScan(pTaskInfo, &pTaskInfo->streamInfo.prepareStatus, pInfo->sContext->subType);
|
||||||
}
|
}
|
||||||
tDeleteSSchemaWrapper(mtInfo.schema);
|
tDeleteSSchemaWrapper(mtInfo.schema);
|
||||||
|
|
|
@ -719,12 +719,16 @@ SOperatorInfo* createMultiwayMergeOperatorInfo(SOperatorInfo** downStreams, size
|
||||||
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
SOperatorInfo* pOperator = taosMemoryCalloc(1, sizeof(SOperatorInfo));
|
||||||
SDataBlockDescNode* pDescNode = pPhyNode->pOutputDataBlockDesc;
|
SDataBlockDescNode* pDescNode = pPhyNode->pOutputDataBlockDesc;
|
||||||
|
|
||||||
pInfo->binfo.pRes = createResDataBlock(pDescNode);
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
int32_t rowSize = pInfo->binfo.pRes->info.rowSize;
|
if (pInfo == NULL || pOperator == NULL) {
|
||||||
if (pInfo == NULL || pOperator == NULL || rowSize > 100 * 1024 * 1024) {
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pInfo->binfo.pRes = createResDataBlock(pDescNode);
|
||||||
|
int32_t rowSize = pInfo->binfo.pRes->info.rowSize;
|
||||||
|
ASSERT(rowSize < 100 * 1024 * 1024);
|
||||||
|
|
||||||
SArray* pSortInfo = createSortInfo(pMergePhyNode->pMergeKeys);
|
SArray* pSortInfo = createSortInfo(pMergePhyNode->pMergeKeys);
|
||||||
int32_t numOfOutputCols = 0;
|
int32_t numOfOutputCols = 0;
|
||||||
SArray* pColMatchColInfo =
|
SArray* pColMatchColInfo =
|
||||||
|
@ -737,6 +741,9 @@ SOperatorInfo* createMultiwayMergeOperatorInfo(SOperatorInfo** downStreams, size
|
||||||
pInfo->pSortInfo = pSortInfo;
|
pInfo->pSortInfo = pSortInfo;
|
||||||
pInfo->pColMatchInfo = pColMatchColInfo;
|
pInfo->pColMatchInfo = pColMatchColInfo;
|
||||||
pInfo->pInputBlock = pInputBlock;
|
pInfo->pInputBlock = pInputBlock;
|
||||||
|
pInfo->bufPageSize = getProperSortPageSize(rowSize);
|
||||||
|
pInfo->sortBufSize = pInfo->bufPageSize * (numStreams + 1); // one additional is reserved for merged result.
|
||||||
|
|
||||||
pOperator->name = "MultiwayMerge";
|
pOperator->name = "MultiwayMerge";
|
||||||
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_MERGE;
|
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_MERGE;
|
||||||
pOperator->blocking = false;
|
pOperator->blocking = false;
|
||||||
|
@ -744,15 +751,10 @@ SOperatorInfo* createMultiwayMergeOperatorInfo(SOperatorInfo** downStreams, size
|
||||||
pOperator->info = pInfo;
|
pOperator->info = pInfo;
|
||||||
pOperator->pTaskInfo = pTaskInfo;
|
pOperator->pTaskInfo = pTaskInfo;
|
||||||
|
|
||||||
pInfo->bufPageSize = getProperSortPageSize(rowSize);
|
|
||||||
|
|
||||||
// one additional is reserved for merged result.
|
|
||||||
pInfo->sortBufSize = pInfo->bufPageSize * (numStreams + 1);
|
|
||||||
|
|
||||||
pOperator->fpSet = createOperatorFpSet(doOpenMultiwayMergeOperator, doMultiwayMerge, NULL, NULL,
|
pOperator->fpSet = createOperatorFpSet(doOpenMultiwayMergeOperator, doMultiwayMerge, NULL, NULL,
|
||||||
destroyMultiwayMergeOperatorInfo, NULL, NULL, getMultiwayMergeExplainExecInfo);
|
destroyMultiwayMergeOperatorInfo, NULL, NULL, getMultiwayMergeExplainExecInfo);
|
||||||
|
|
||||||
int32_t code = appendDownstream(pOperator, downStreams, numStreams);
|
code = appendDownstream(pOperator, downStreams, numStreams);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
goto _error;
|
goto _error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3594,9 +3594,7 @@ void getCurSessionWindow(SStreamAggSupporter* pAggSup, TSKEY startTs, TSKEY endT
|
||||||
pKey->win.skey = startTs;
|
pKey->win.skey = startTs;
|
||||||
pKey->win.ekey = endTs;
|
pKey->win.ekey = endTs;
|
||||||
pKey->groupId = groupId;
|
pKey->groupId = groupId;
|
||||||
SStreamStateCur* pCur = streamStateSessionGetCur(pAggSup->pState, pKey);
|
int32_t code = streamStateSessionGetKey(pAggSup->pState, pKey, pKey);
|
||||||
int32_t code = streamStateSessionGetKVByCur(pCur, pKey, NULL, 0);
|
|
||||||
streamStateFreeCur(pCur);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
SET_SESSION_WIN_KEY_INVALID(pKey);
|
SET_SESSION_WIN_KEY_INVALID(pKey);
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,6 +251,7 @@ SLHashObj* tHashInit(int32_t inMemPages, int32_t pageSize, _hash_fn_t fn, int32_
|
||||||
if (!osTempSpaceAvailable()) {
|
if (!osTempSpaceAvailable()) {
|
||||||
terrno = TSDB_CODE_NO_AVAIL_DISK;
|
terrno = TSDB_CODE_NO_AVAIL_DISK;
|
||||||
printf("tHash Init failed since %s", terrstr(terrno));
|
printf("tHash Init failed since %s", terrstr(terrno));
|
||||||
|
taosMemoryFree(pHashObj);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,8 +105,8 @@ static void tSimpleHashTableResize(SSHashObj *pHashObj) {
|
||||||
|
|
||||||
int32_t newCapacity = (int32_t)(pHashObj->capacity << 1u);
|
int32_t newCapacity = (int32_t)(pHashObj->capacity << 1u);
|
||||||
if (newCapacity > HASH_MAX_CAPACITY) {
|
if (newCapacity > HASH_MAX_CAPACITY) {
|
||||||
uDebug("current capacity:%"PRIzu", maximum capacity:%" PRIu64 ", no resize applied due to limitation is reached",
|
uDebug("current capacity:%" PRIzu ", maximum capacity:%" PRId32 ", no resize applied due to limitation is reached",
|
||||||
pHashObj->capacity, HASH_MAX_CAPACITY);
|
pHashObj->capacity, (int32_t)HASH_MAX_CAPACITY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -388,4 +388,4 @@ void *tSimpleHashIterate(const SSHashObj *pHashObj, void *data, int32_t *iter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,6 +140,7 @@ static int32_t doAddNewExternalMemSource(SDiskbasedBuf* pBuf, SArray* pAllSource
|
||||||
int32_t* sourceId, SArray* pPageIdList) {
|
int32_t* sourceId, SArray* pPageIdList) {
|
||||||
SSortSource* pSource = taosMemoryCalloc(1, sizeof(SSortSource));
|
SSortSource* pSource = taosMemoryCalloc(1, sizeof(SSortSource));
|
||||||
if (pSource == NULL) {
|
if (pSource == NULL) {
|
||||||
|
taosArrayDestroy(pPageIdList);
|
||||||
return TSDB_CODE_QRY_OUT_OF_MEMORY;
|
return TSDB_CODE_QRY_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,6 +156,7 @@ static int32_t doAddNewExternalMemSource(SDiskbasedBuf* pBuf, SArray* pAllSource
|
||||||
int32_t numOfRows =
|
int32_t numOfRows =
|
||||||
(getBufPageSize(pBuf) - blockDataGetSerialMetaSize(taosArrayGetSize(pBlock->pDataBlock))) / rowSize;
|
(getBufPageSize(pBuf) - blockDataGetSerialMetaSize(taosArrayGetSize(pBlock->pDataBlock))) / rowSize;
|
||||||
ASSERT(numOfRows > 0);
|
ASSERT(numOfRows > 0);
|
||||||
|
|
||||||
return blockDataEnsureCapacity(pSource->src.pBlock, numOfRows);
|
return blockDataEnsureCapacity(pSource->src.pBlock, numOfRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,6 +226,22 @@ static int32_t sortComparInit(SMsortComparParam* cmpParam, SArray* pSources, int
|
||||||
|
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
|
|
||||||
|
// multi-pass internal merge sort is required
|
||||||
|
if (pHandle->pBuf == NULL) {
|
||||||
|
if (!osTempSpaceAvailable()) {
|
||||||
|
code = TSDB_CODE_NO_AVAIL_DISK;
|
||||||
|
qError("Sort compare init failed since %s", terrstr(code));
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
code = createDiskbasedBuf(&pHandle->pBuf, pHandle->pageSize, pHandle->numOfPages * pHandle->pageSize,
|
||||||
|
"sortComparInit", tsTempDir);
|
||||||
|
dBufSetPrintInfo(pHandle->pBuf);
|
||||||
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (pHandle->type == SORT_SINGLESOURCE_SORT) {
|
if (pHandle->type == SORT_SINGLESOURCE_SORT) {
|
||||||
for (int32_t i = 0; i < cmpParam->numOfSources; ++i) {
|
for (int32_t i = 0; i < cmpParam->numOfSources; ++i) {
|
||||||
SSortSource* pSource = cmpParam->pSources[i];
|
SSortSource* pSource = cmpParam->pSources[i];
|
||||||
|
@ -245,22 +263,6 @@ static int32_t sortComparInit(SMsortComparParam* cmpParam, SArray* pSources, int
|
||||||
releaseBufPage(pHandle->pBuf, pPage);
|
releaseBufPage(pHandle->pBuf, pPage);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// multi-pass internal merge sort is required
|
|
||||||
if (pHandle->pBuf == NULL) {
|
|
||||||
if (!osTempSpaceAvailable()) {
|
|
||||||
terrno = TSDB_CODE_NO_AVAIL_DISK;
|
|
||||||
code = terrno;
|
|
||||||
qError("Sort compare init failed since %s", terrstr(terrno));
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
code = createDiskbasedBuf(&pHandle->pBuf, pHandle->pageSize, pHandle->numOfPages * pHandle->pageSize,
|
|
||||||
"sortComparInit", tsTempDir);
|
|
||||||
dBufSetPrintInfo(pHandle->pBuf);
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int32_t i = 0; i < cmpParam->numOfSources; ++i) {
|
for (int32_t i = 0; i < cmpParam->numOfSources; ++i) {
|
||||||
SSortSource* pSource = cmpParam->pSources[i];
|
SSortSource* pSource = cmpParam->pSources[i];
|
||||||
pSource->src.pBlock = pHandle->fetchfp(pSource->param);
|
pSource->src.pBlock = pHandle->fetchfp(pSource->param);
|
||||||
|
@ -507,12 +509,14 @@ static int32_t doInternalMergeSort(SSortHandle* pHandle) {
|
||||||
|
|
||||||
int32_t code = sortComparInit(&pHandle->cmpParam, pHandle->pOrderedSource, i * numOfInputSources, end, pHandle);
|
int32_t code = sortComparInit(&pHandle->cmpParam, pHandle->pOrderedSource, i * numOfInputSources, end, pHandle);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
taosArrayDestroy(pResList);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
code =
|
code =
|
||||||
tMergeTreeCreate(&pHandle->pMergeTree, pHandle->cmpParam.numOfSources, &pHandle->cmpParam, pHandle->comparFn);
|
tMergeTreeCreate(&pHandle->pMergeTree, pHandle->cmpParam.numOfSources, &pHandle->cmpParam, pHandle->comparFn);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
taosArrayDestroy(pResList);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,12 +524,16 @@ static int32_t doInternalMergeSort(SSortHandle* pHandle) {
|
||||||
while (1) {
|
while (1) {
|
||||||
SSDataBlock* pDataBlock = getSortedBlockDataInner(pHandle, &pHandle->cmpParam, numOfRows);
|
SSDataBlock* pDataBlock = getSortedBlockDataInner(pHandle, &pHandle->cmpParam, numOfRows);
|
||||||
if (pDataBlock == NULL) {
|
if (pDataBlock == NULL) {
|
||||||
|
taosArrayDestroy(pResList);
|
||||||
|
taosArrayDestroy(pPageIdList);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t pageId = -1;
|
int32_t pageId = -1;
|
||||||
void* pPage = getNewBufPage(pHandle->pBuf, &pageId);
|
void* pPage = getNewBufPage(pHandle->pBuf, &pageId);
|
||||||
if (pPage == NULL) {
|
if (pPage == NULL) {
|
||||||
|
taosArrayDestroy(pResList);
|
||||||
|
taosArrayDestroy(pPageIdList);
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct SUdfSetupRequest {
|
typedef struct SUdfSetupRequest {
|
||||||
char udfName[TSDB_FUNC_NAME_LEN];
|
char udfName[TSDB_FUNC_NAME_LEN + 1];
|
||||||
} SUdfSetupRequest;
|
} SUdfSetupRequest;
|
||||||
|
|
||||||
typedef struct SUdfSetupResponse {
|
typedef struct SUdfSetupResponse {
|
||||||
|
|
|
@ -2545,7 +2545,7 @@ int32_t apercentileFunction(SqlFunctionCtx* pCtx) {
|
||||||
// might be a race condition here that pHisto can be overwritten or setup function
|
// might be a race condition here that pHisto can be overwritten or setup function
|
||||||
// has not been called, need to relink the buffer pHisto points to.
|
// has not been called, need to relink the buffer pHisto points to.
|
||||||
buildHistogramInfo(pInfo);
|
buildHistogramInfo(pInfo);
|
||||||
qDebug("%s before add %d elements into histogram, total:%d, numOfEntry:%d, pHisto:%p, elems: %p", __FUNCTION__,
|
qDebug("%s before add %d elements into histogram, total:%" PRId64 ", numOfEntry:%d, pHisto:%p, elems: %p", __FUNCTION__,
|
||||||
numOfElems, pInfo->pHisto->numOfElems, pInfo->pHisto->numOfEntries, pInfo->pHisto, pInfo->pHisto->elems);
|
numOfElems, pInfo->pHisto->numOfElems, pInfo->pHisto->numOfEntries, pInfo->pHisto, pInfo->pHisto->elems);
|
||||||
for (int32_t i = start; i < pInput->numOfRows + start; ++i) {
|
for (int32_t i = start; i < pInput->numOfRows + start; ++i) {
|
||||||
if (colDataIsNull_f(pCol->nullbitmap, i)) {
|
if (colDataIsNull_f(pCol->nullbitmap, i)) {
|
||||||
|
@ -2559,8 +2559,9 @@ int32_t apercentileFunction(SqlFunctionCtx* pCtx) {
|
||||||
tHistogramAdd(&pInfo->pHisto, v);
|
tHistogramAdd(&pInfo->pHisto, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("%s after add %d elements into histogram, total:%d, numOfEntry:%d, pHisto:%p, elems: %p", __FUNCTION__,
|
qDebug("%s after add %d elements into histogram, total:%" PRId64 ", numOfEntry:%d, pHisto:%p, elems: %p",
|
||||||
numOfElems, pInfo->pHisto->numOfElems, pInfo->pHisto->numOfEntries, pInfo->pHisto, pInfo->pHisto->elems);
|
__FUNCTION__, numOfElems, pInfo->pHisto->numOfElems, pInfo->pHisto->numOfEntries, pInfo->pHisto,
|
||||||
|
pInfo->pHisto->elems);
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_VAL(pResInfo, numOfElems, 1);
|
SET_VAL(pResInfo, numOfElems, 1);
|
||||||
|
@ -2640,7 +2641,7 @@ int32_t apercentileFunctionMerge(SqlFunctionCtx* pCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pInfo->algo != APERCT_ALGO_TDIGEST) {
|
if (pInfo->algo != APERCT_ALGO_TDIGEST) {
|
||||||
qDebug("%s after merge, total:%d, numOfEntry:%d, %p", __FUNCTION__, pInfo->pHisto->numOfElems,
|
qDebug("%s after merge, total:%" PRId64 ", numOfEntry:%d, %p", __FUNCTION__, pInfo->pHisto->numOfElems,
|
||||||
pInfo->pHisto->numOfEntries, pInfo->pHisto);
|
pInfo->pHisto->numOfEntries, pInfo->pHisto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -315,7 +315,7 @@ enum { UV_TASK_CONNECT = 0, UV_TASK_REQ_RSP = 1, UV_TASK_DISCONNECT = 2 };
|
||||||
|
|
||||||
int64_t gUdfTaskSeqNum = 0;
|
int64_t gUdfTaskSeqNum = 0;
|
||||||
typedef struct SUdfcFuncStub {
|
typedef struct SUdfcFuncStub {
|
||||||
char udfName[TSDB_FUNC_NAME_LEN];
|
char udfName[TSDB_FUNC_NAME_LEN + 1];
|
||||||
UdfcFuncHandle handle;
|
UdfcFuncHandle handle;
|
||||||
int32_t refCount;
|
int32_t refCount;
|
||||||
int64_t lastRefTime;
|
int64_t lastRefTime;
|
||||||
|
@ -353,7 +353,7 @@ typedef struct SUdfcUvSession {
|
||||||
int32_t outputLen;
|
int32_t outputLen;
|
||||||
int32_t bufSize;
|
int32_t bufSize;
|
||||||
|
|
||||||
char udfName[TSDB_FUNC_NAME_LEN];
|
char udfName[TSDB_FUNC_NAME_LEN + 1];
|
||||||
} SUdfcUvSession;
|
} SUdfcUvSession;
|
||||||
|
|
||||||
typedef struct SClientUvTaskNode {
|
typedef struct SClientUvTaskNode {
|
||||||
|
@ -898,7 +898,7 @@ int32_t acquireUdfFuncHandle(char *udfName, UdfcFuncHandle *pHandle) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
uv_mutex_lock(&gUdfdProxy.udfStubsMutex);
|
uv_mutex_lock(&gUdfdProxy.udfStubsMutex);
|
||||||
SUdfcFuncStub key = {0};
|
SUdfcFuncStub key = {0};
|
||||||
strcpy(key.udfName, udfName);
|
strncpy(key.udfName, udfName, TSDB_FUNC_NAME_LEN);
|
||||||
int32_t stubIndex = taosArraySearchIdx(gUdfdProxy.udfStubs, &key, compareUdfcFuncSub, TD_EQ);
|
int32_t stubIndex = taosArraySearchIdx(gUdfdProxy.udfStubs, &key, compareUdfcFuncSub, TD_EQ);
|
||||||
if (stubIndex != -1) {
|
if (stubIndex != -1) {
|
||||||
SUdfcFuncStub *foundStub = taosArrayGet(gUdfdProxy.udfStubs, stubIndex);
|
SUdfcFuncStub *foundStub = taosArrayGet(gUdfdProxy.udfStubs, stubIndex);
|
||||||
|
@ -936,7 +936,7 @@ int32_t acquireUdfFuncHandle(char *udfName, UdfcFuncHandle *pHandle) {
|
||||||
void releaseUdfFuncHandle(char *udfName) {
|
void releaseUdfFuncHandle(char *udfName) {
|
||||||
uv_mutex_lock(&gUdfdProxy.udfStubsMutex);
|
uv_mutex_lock(&gUdfdProxy.udfStubsMutex);
|
||||||
SUdfcFuncStub key = {0};
|
SUdfcFuncStub key = {0};
|
||||||
strcpy(key.udfName, udfName);
|
strncpy(key.udfName, udfName, TSDB_FUNC_NAME_LEN);
|
||||||
SUdfcFuncStub *foundStub = taosArraySearch(gUdfdProxy.udfStubs, &key, compareUdfcFuncSub, TD_EQ);
|
SUdfcFuncStub *foundStub = taosArraySearch(gUdfdProxy.udfStubs, &key, compareUdfcFuncSub, TD_EQ);
|
||||||
if (!foundStub) {
|
if (!foundStub) {
|
||||||
uv_mutex_unlock(&gUdfdProxy.udfStubsMutex);
|
uv_mutex_unlock(&gUdfdProxy.udfStubsMutex);
|
||||||
|
@ -1269,7 +1269,7 @@ void udfcUvHandleRsp(SClientUvConn *conn) {
|
||||||
SClientUvTaskNode *task = QUEUE_DATA(h, SClientUvTaskNode, connTaskQueue);
|
SClientUvTaskNode *task = QUEUE_DATA(h, SClientUvTaskNode, connTaskQueue);
|
||||||
|
|
||||||
while (h != &conn->taskQueue) {
|
while (h != &conn->taskQueue) {
|
||||||
fnDebug("udfc handle response iterate through queue. uvTask:%d-%p", task->seqNum, task);
|
fnDebug("udfc handle response iterate through queue. uvTask:%" PRId64 "-%p", task->seqNum, task);
|
||||||
if (task->seqNum == seqNum) {
|
if (task->seqNum == seqNum) {
|
||||||
if (found == false) {
|
if (found == false) {
|
||||||
found = true;
|
found = true;
|
||||||
|
@ -1446,6 +1446,7 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) {
|
||||||
QUEUE_INSERT_TAIL(connTaskQueue, &uvTask->connTaskQueue);
|
QUEUE_INSERT_TAIL(connTaskQueue, &uvTask->connTaskQueue);
|
||||||
int err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipeWrite);
|
int err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipeWrite);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
|
taosMemoryFree(write);
|
||||||
fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code: %s", uvTask, uv_strerror(err));
|
fnError("udfc event loop start req_rsp task uv_write failed. uvtask: %p, code: %s", uvTask, uv_strerror(err));
|
||||||
}
|
}
|
||||||
code = err;
|
code = err;
|
||||||
|
@ -1637,7 +1638,7 @@ int32_t doSetupUdf(char udfName[], UdfcFuncHandle *funcHandle) {
|
||||||
task->session->outputType = rsp->outputType;
|
task->session->outputType = rsp->outputType;
|
||||||
task->session->outputLen = rsp->outputLen;
|
task->session->outputLen = rsp->outputLen;
|
||||||
task->session->bufSize = rsp->bufSize;
|
task->session->bufSize = rsp->bufSize;
|
||||||
strcpy(task->session->udfName, udfName);
|
strncpy(task->session->udfName, udfName, TSDB_FUNC_NAME_LEN);
|
||||||
if (task->errCode != 0) {
|
if (task->errCode != 0) {
|
||||||
fnError("failed to setup udf. udfname: %s, err: %d", udfName, task->errCode)
|
fnError("failed to setup udf. udfname: %s, err: %d", udfName, task->errCode)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -71,7 +71,7 @@ typedef struct SUdf {
|
||||||
uv_cond_t condReady;
|
uv_cond_t condReady;
|
||||||
bool resident;
|
bool resident;
|
||||||
|
|
||||||
char name[TSDB_FUNC_NAME_LEN];
|
char name[TSDB_FUNC_NAME_LEN + 1];
|
||||||
int8_t funcType;
|
int8_t funcType;
|
||||||
int8_t scriptType;
|
int8_t scriptType;
|
||||||
int8_t outputType;
|
int8_t outputType;
|
||||||
|
@ -188,11 +188,12 @@ void udfdProcessSetupRequest(SUvUdfWork *uvUdf, SUdfRequest *request) {
|
||||||
SUdf *udfNew = taosMemoryCalloc(1, sizeof(SUdf));
|
SUdf *udfNew = taosMemoryCalloc(1, sizeof(SUdf));
|
||||||
udfNew->refCount = 1;
|
udfNew->refCount = 1;
|
||||||
udfNew->state = UDF_STATE_INIT;
|
udfNew->state = UDF_STATE_INIT;
|
||||||
|
|
||||||
uv_mutex_init(&udfNew->lock);
|
uv_mutex_init(&udfNew->lock);
|
||||||
uv_cond_init(&udfNew->condReady);
|
uv_cond_init(&udfNew->condReady);
|
||||||
|
|
||||||
udf = udfNew;
|
udf = udfNew;
|
||||||
taosHashPut(global.udfsHash, request->setup.udfName, strlen(request->setup.udfName), &udfNew, sizeof(&udfNew));
|
SUdf** pUdf = &udf;
|
||||||
|
taosHashPut(global.udfsHash, request->setup.udfName, strlen(request->setup.udfName), pUdf, POINTER_BYTES);
|
||||||
uv_mutex_unlock(&global.udfsMutex);
|
uv_mutex_unlock(&global.udfsMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,7 +247,7 @@ void udfdProcessSetupRequest(SUvUdfWork *uvUdf, SUdfRequest *request) {
|
||||||
|
|
||||||
void udfdProcessCallRequest(SUvUdfWork *uvUdf, SUdfRequest *request) {
|
void udfdProcessCallRequest(SUvUdfWork *uvUdf, SUdfRequest *request) {
|
||||||
SUdfCallRequest *call = &request->call;
|
SUdfCallRequest *call = &request->call;
|
||||||
fnDebug("%" PRId64 "call request. call type %d, handle: %" PRIx64, request->seqNum, call->callType, call->udfHandle);
|
fnDebug("call request. call type %d, handle: %" PRIx64 ", seq num %" PRId64 , call->callType, call->udfHandle, request->seqNum);
|
||||||
SUdfcFuncHandle * handle = (SUdfcFuncHandle *)(call->udfHandle);
|
SUdfcFuncHandle * handle = (SUdfcFuncHandle *)(call->udfHandle);
|
||||||
SUdf * udf = handle->udf;
|
SUdf * udf = handle->udf;
|
||||||
SUdfResponse response = {0};
|
SUdfResponse response = {0};
|
||||||
|
@ -372,7 +373,7 @@ void udfdProcessTeardownRequest(SUvUdfWork *uvUdf, SUdfRequest *request) {
|
||||||
}
|
}
|
||||||
taosMemoryFree(handle);
|
taosMemoryFree(handle);
|
||||||
|
|
||||||
SUdfResponse response;
|
SUdfResponse response = {0};
|
||||||
SUdfResponse *rsp = &response;
|
SUdfResponse *rsp = &response;
|
||||||
rsp->seqNum = request->seqNum;
|
rsp->seqNum = request->seqNum;
|
||||||
rsp->type = request->type;
|
rsp->type = request->type;
|
||||||
|
@ -428,7 +429,9 @@ void udfdProcessRpcRsp(void *parent, SRpcMsg *pMsg, SEpSet *pEpSet) {
|
||||||
} else if (msgInfo->rpcType == UDFD_RPC_RETRIVE_FUNC) {
|
} else if (msgInfo->rpcType == UDFD_RPC_RETRIVE_FUNC) {
|
||||||
SRetrieveFuncRsp retrieveRsp = {0};
|
SRetrieveFuncRsp retrieveRsp = {0};
|
||||||
tDeserializeSRetrieveFuncRsp(pMsg->pCont, pMsg->contLen, &retrieveRsp);
|
tDeserializeSRetrieveFuncRsp(pMsg->pCont, pMsg->contLen, &retrieveRsp);
|
||||||
|
if (retrieveRsp.pFuncInfos == NULL) {
|
||||||
|
goto _return;
|
||||||
|
}
|
||||||
SFuncInfo *pFuncInfo = (SFuncInfo *)taosArrayGet(retrieveRsp.pFuncInfos, 0);
|
SFuncInfo *pFuncInfo = (SFuncInfo *)taosArrayGet(retrieveRsp.pFuncInfos, 0);
|
||||||
SUdf * udf = msgInfo->param;
|
SUdf * udf = msgInfo->param;
|
||||||
udf->funcType = pFuncInfo->funcType;
|
udf->funcType = pFuncInfo->funcType;
|
||||||
|
@ -540,7 +543,7 @@ int32_t udfdConnectToMnode() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t udfdLoadUdf(char *udfName, SUdf *udf) {
|
int32_t udfdLoadUdf(char *udfName, SUdf *udf) {
|
||||||
strcpy(udf->name, udfName);
|
strncpy(udf->name, udfName, TSDB_FUNC_NAME_LEN);
|
||||||
int32_t err = 0;
|
int32_t err = 0;
|
||||||
|
|
||||||
err = udfdFillUdfInfoFromMNode(global.clientRpc, udf->name, udf);
|
err = udfdFillUdfInfoFromMNode(global.clientRpc, udf->name, udf);
|
||||||
|
@ -880,6 +883,8 @@ static int32_t udfdUvInit() {
|
||||||
uv_loop_t *loop = taosMemoryMalloc(sizeof(uv_loop_t));
|
uv_loop_t *loop = taosMemoryMalloc(sizeof(uv_loop_t));
|
||||||
if (loop) {
|
if (loop) {
|
||||||
uv_loop_init(loop);
|
uv_loop_init(loop);
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
global.loop = loop;
|
global.loop = loop;
|
||||||
|
|
||||||
|
@ -901,12 +906,12 @@ static int32_t udfdUvInit() {
|
||||||
if ((r = uv_pipe_bind(&global.listeningPipe, global.listenPipeName))) {
|
if ((r = uv_pipe_bind(&global.listeningPipe, global.listenPipeName))) {
|
||||||
fnError("Bind error %s", uv_err_name(r));
|
fnError("Bind error %s", uv_err_name(r));
|
||||||
removeListeningPipe();
|
removeListeningPipe();
|
||||||
return -1;
|
return -2;
|
||||||
}
|
}
|
||||||
if ((r = uv_listen((uv_stream_t *)&global.listeningPipe, 128, udfdOnNewConnection))) {
|
if ((r = uv_listen((uv_stream_t *)&global.listeningPipe, 128, udfdOnNewConnection))) {
|
||||||
fnError("Listen error %s", uv_err_name(r));
|
fnError("Listen error %s", uv_err_name(r));
|
||||||
removeListeningPipe();
|
removeListeningPipe();
|
||||||
return -2;
|
return -3;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -962,6 +967,7 @@ int32_t udfdInitResidentFuncs() {
|
||||||
while ((token = strtok_r(pSave, ",", &pSave)) != NULL) {
|
while ((token = strtok_r(pSave, ",", &pSave)) != NULL) {
|
||||||
char func[TSDB_FUNC_NAME_LEN+1] = {0};
|
char func[TSDB_FUNC_NAME_LEN+1] = {0};
|
||||||
strncpy(func, token, TSDB_FUNC_NAME_LEN);
|
strncpy(func, token, TSDB_FUNC_NAME_LEN);
|
||||||
|
fnInfo("udfd add resident function %s", func);
|
||||||
taosArrayPush(global.residentFuncs, func);
|
taosArrayPush(global.residentFuncs, func);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,8 +110,11 @@ int aggregateFuncTest() {
|
||||||
taosArrayDestroy(pBlock->pDataBlock);
|
taosArrayDestroy(pBlock->pDataBlock);
|
||||||
|
|
||||||
doCallUdfAggFinalize(handle, &newBuf, &resultBuf);
|
doCallUdfAggFinalize(handle, &newBuf, &resultBuf);
|
||||||
fprintf(stderr, "agg result: %f\n", *(double *)resultBuf.buf);
|
if (resultBuf.buf != NULL) {
|
||||||
|
fprintf(stderr, "agg result: %f\n", *(double *)resultBuf.buf);
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "result buffer is null");
|
||||||
|
}
|
||||||
freeUdfInterBuf(&buf);
|
freeUdfInterBuf(&buf);
|
||||||
freeUdfInterBuf(&newBuf);
|
freeUdfInterBuf(&newBuf);
|
||||||
freeUdfInterBuf(&resultBuf);
|
freeUdfInterBuf(&resultBuf);
|
||||||
|
|
|
@ -367,7 +367,7 @@ int32_t idxConvertData(void* src, int8_t type, void** dst) {
|
||||||
tlen = taosEncodeBinary(dst, src, strlen(src));
|
tlen = taosEncodeBinary(dst, src, strlen(src));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*dst = (char*)*dst - tlen;
|
*dst = (char*)*dst - tlen;
|
||||||
|
@ -459,7 +459,7 @@ int32_t idxConvertDataToStr(void* src, int8_t type, void** dst) {
|
||||||
*dst = (char*)*dst - tlen;
|
*dst = (char*)*dst - tlen;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TASSERT(0);
|
ASSERT(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return tlen;
|
return tlen;
|
||||||
|
|
|
@ -509,7 +509,8 @@ int32_t tSerializeSMonVloadInfo(void *buf, int32_t bufLen, SMonVloadInfo *pInfo)
|
||||||
for (int32_t i = 0; i < taosArrayGetSize(pInfo->pVloads); ++i) {
|
for (int32_t i = 0; i < taosArrayGetSize(pInfo->pVloads); ++i) {
|
||||||
SVnodeLoad *pLoad = taosArrayGet(pInfo->pVloads, i);
|
SVnodeLoad *pLoad = taosArrayGet(pInfo->pVloads, i);
|
||||||
if (tEncodeI32(&encoder, pLoad->vgId) < 0) return -1;
|
if (tEncodeI32(&encoder, pLoad->vgId) < 0) return -1;
|
||||||
if (tEncodeI32(&encoder, pLoad->syncState) < 0) return -1;
|
if (tEncodeI8(&encoder, pLoad->syncState) < 0) return -1;
|
||||||
|
if (tEncodeI8(&encoder, pLoad->syncRestore) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pLoad->cacheUsage) < 0) return -1;
|
if (tEncodeI64(&encoder, pLoad->cacheUsage) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pLoad->numOfTables) < 0) return -1;
|
if (tEncodeI64(&encoder, pLoad->numOfTables) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pLoad->numOfTimeSeries) < 0) return -1;
|
if (tEncodeI64(&encoder, pLoad->numOfTimeSeries) < 0) return -1;
|
||||||
|
@ -544,7 +545,8 @@ int32_t tDeserializeSMonVloadInfo(void *buf, int32_t bufLen, SMonVloadInfo *pInf
|
||||||
for (int32_t i = 0; i < arraySize; ++i) {
|
for (int32_t i = 0; i < arraySize; ++i) {
|
||||||
SVnodeLoad load = {0};
|
SVnodeLoad load = {0};
|
||||||
if (tDecodeI32(&decoder, &load.vgId) < 0) return -1;
|
if (tDecodeI32(&decoder, &load.vgId) < 0) return -1;
|
||||||
if (tDecodeI32(&decoder, &load.syncState) < 0) return -1;
|
if (tDecodeI8(&decoder, &load.syncState) < 0) return -1;
|
||||||
|
if (tDecodeI8(&decoder, &load.syncRestore) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &load.cacheUsage) < 0) return -1;
|
if (tDecodeI64(&decoder, &load.cacheUsage) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &load.numOfTables) < 0) return -1;
|
if (tDecodeI64(&decoder, &load.numOfTables) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &load.numOfTimeSeries) < 0) return -1;
|
if (tDecodeI64(&decoder, &load.numOfTimeSeries) < 0) return -1;
|
||||||
|
@ -575,7 +577,8 @@ int32_t tSerializeSMonMloadInfo(void *buf, int32_t bufLen, SMonMloadInfo *pInfo)
|
||||||
|
|
||||||
if (tStartEncode(&encoder) < 0) return -1;
|
if (tStartEncode(&encoder) < 0) return -1;
|
||||||
if (tEncodeI8(&encoder, pInfo->isMnode) < 0) return -1;
|
if (tEncodeI8(&encoder, pInfo->isMnode) < 0) return -1;
|
||||||
if (tEncodeI32(&encoder, pInfo->load.syncState) < 0) return -1;
|
if (tEncodeI8(&encoder, pInfo->load.syncState) < 0) return -1;
|
||||||
|
if (tEncodeI8(&encoder, pInfo->load.syncRestore) < 0) return -1;
|
||||||
tEndEncode(&encoder);
|
tEndEncode(&encoder);
|
||||||
|
|
||||||
int32_t tlen = encoder.pos;
|
int32_t tlen = encoder.pos;
|
||||||
|
@ -589,7 +592,8 @@ int32_t tDeserializeSMonMloadInfo(void *buf, int32_t bufLen, SMonMloadInfo *pInf
|
||||||
|
|
||||||
if (tStartDecode(&decoder) < 0) return -1;
|
if (tStartDecode(&decoder) < 0) return -1;
|
||||||
if (tDecodeI8(&decoder, &pInfo->isMnode) < 0) return -1;
|
if (tDecodeI8(&decoder, &pInfo->isMnode) < 0) return -1;
|
||||||
if (tDecodeI32(&decoder, &pInfo->load.syncState) < 0) return -1;
|
if (tDecodeI8(&decoder, &pInfo->load.syncState) < 0) return -1;
|
||||||
|
if (tDecodeI8(&decoder, &pInfo->load.syncRestore) < 0) return -1;
|
||||||
tEndDecode(&decoder);
|
tEndDecode(&decoder);
|
||||||
|
|
||||||
tDecoderClear(&decoder);
|
tDecoderClear(&decoder);
|
||||||
|
|
|
@ -258,7 +258,7 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen,
|
||||||
dsGetDataLength(ctx->sinkHandle, &len, &queryEnd);
|
dsGetDataLength(ctx->sinkHandle, &len, &queryEnd);
|
||||||
|
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
QW_TASK_ELOG("invalid length from dsGetDataLength, length:%" PRId64, len);
|
QW_TASK_ELOG("invalid length from dsGetDataLength, length:%" PRId64 "", len);
|
||||||
QW_ERR_RET(TSDB_CODE_QRY_INVALID_INPUT);
|
QW_ERR_RET(TSDB_CODE_QRY_INVALID_INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Got data from sink
|
// Got data from sink
|
||||||
QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64, len);
|
QW_TASK_DLOG("there are data in sink, dataLength:%" PRId64 "", len);
|
||||||
|
|
||||||
*dataLen += len;
|
*dataLen += len;
|
||||||
|
|
||||||
|
|
|
@ -1178,9 +1178,7 @@ int32_t timeTruncateFunction(SScalarParam *pInput, int32_t inputNum, SScalarPara
|
||||||
GET_TYPED_DATA(timeUnit, int64_t, GET_PARAM_TYPE(&pInput[1]), pInput[1].columnData->pData);
|
GET_TYPED_DATA(timeUnit, int64_t, GET_PARAM_TYPE(&pInput[1]), pInput[1].columnData->pData);
|
||||||
GET_TYPED_DATA(timePrec, int64_t, GET_PARAM_TYPE(&pInput[2]), pInput[2].columnData->pData);
|
GET_TYPED_DATA(timePrec, int64_t, GET_PARAM_TYPE(&pInput[2]), pInput[2].columnData->pData);
|
||||||
|
|
||||||
int64_t factor =
|
int64_t factor = TSDB_TICK_PER_SECOND(timePrec);
|
||||||
(timePrec == TSDB_TIME_PRECISION_MILLI) ? 1000 : (timePrec == TSDB_TIME_PRECISION_MICRO ? 1000000 : 1000000000);
|
|
||||||
|
|
||||||
int64_t unit = timeUnit * 1000 / factor;
|
int64_t unit = timeUnit * 1000 / factor;
|
||||||
|
|
||||||
for (int32_t i = 0; i < pInput[0].numOfRows; ++i) {
|
for (int32_t i = 0; i < pInput[0].numOfRows; ++i) {
|
||||||
|
@ -1372,9 +1370,7 @@ int32_t timeDiffFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *p
|
||||||
GET_TYPED_DATA(timePrec, int64_t, GET_PARAM_TYPE(&pInput[2]), pInput[2].columnData->pData);
|
GET_TYPED_DATA(timePrec, int64_t, GET_PARAM_TYPE(&pInput[2]), pInput[2].columnData->pData);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t factor =
|
int64_t factor = TSDB_TICK_PER_SECOND(timePrec);
|
||||||
(timePrec == TSDB_TIME_PRECISION_MILLI) ? 1000 : (timePrec == TSDB_TIME_PRECISION_MICRO ? 1000000 : 1000000000);
|
|
||||||
|
|
||||||
int32_t numOfRows = 0;
|
int32_t numOfRows = 0;
|
||||||
for (int32_t i = 0; i < inputNum; ++i) {
|
for (int32_t i = 0; i < inputNum; ++i) {
|
||||||
if (pInput[i].numOfRows > numOfRows) {
|
if (pInput[i].numOfRows > numOfRows) {
|
||||||
|
|
|
@ -1426,57 +1426,6 @@ void vectorAssign(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut,
|
||||||
pOut->numOfQualified = pRight->numOfQualified * pOut->numOfRows;
|
pOut->numOfQualified = pRight->numOfQualified * pOut->numOfRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
void vectorConcat(SScalarParam *pLeft, SScalarParam *pRight, void *out, int32_t _ord) {
|
|
||||||
#if 0
|
|
||||||
int32_t len = pLeft->bytes + pRight->bytes;
|
|
||||||
|
|
||||||
int32_t i = ((_ord) == TSDB_ORDER_ASC) ? 0 : TMAX(pLeft->numOfRows, pRight->numOfRows) - 1;
|
|
||||||
int32_t step = ((_ord) == TSDB_ORDER_ASC) ? 1 : -1;
|
|
||||||
|
|
||||||
char *output = (char *)out;
|
|
||||||
if (pLeft->numOfRows == pRight->numOfRows) {
|
|
||||||
for (; i < pRight->numOfRows && i >= 0; i += step, output += len) {
|
|
||||||
char* left = POINTER_SHIFT(pLeft->data, pLeft->bytes * i);
|
|
||||||
char* right = POINTER_SHIFT(pRight->data, pRight->bytes * i);
|
|
||||||
|
|
||||||
if (isNull(left, pLeftCol->info.type) || isNull(right, pRight->info.type)) {
|
|
||||||
setVardataNull(output, TSDB_DATA_TYPE_BINARY);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo define a macro
|
|
||||||
memcpy(varDataVal(output), varDataVal(left), varDataLen(left));
|
|
||||||
memcpy(varDataVal(output) + varDataLen(left), varDataVal(right), varDataLen(right));
|
|
||||||
varDataSetLen(output, varDataLen(left) + varDataLen(right));
|
|
||||||
}
|
|
||||||
} else if (pLeft->numOfRows == 1) {
|
|
||||||
for (; i >= 0 && i < pRight->numOfRows; i += step, output += len) {
|
|
||||||
char *right = POINTER_SHIFT(pRight->data, pRight->bytes * i);
|
|
||||||
if (isNull(pLeft->data, pLeftCol->info.type) || isNull(right, pRight->info.type)) {
|
|
||||||
setVardataNull(output, TSDB_DATA_TYPE_BINARY);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(varDataVal(output), varDataVal(pLeft->data), varDataLen(pLeft->data));
|
|
||||||
memcpy(varDataVal(output) + varDataLen(pLeft->data), varDataVal(right), varDataLen(right));
|
|
||||||
varDataSetLen(output, varDataLen(pLeft->data) + varDataLen(right));
|
|
||||||
}
|
|
||||||
} else if (pRight->numOfRows == 1) {
|
|
||||||
for (; i >= 0 && i < pLeft->numOfRows; i += step, output += len) {
|
|
||||||
char* left = POINTER_SHIFT(pLeft->data, pLeft->bytes * i);
|
|
||||||
if (isNull(left, pLeftCol->info.type) || isNull(pRight->data, pRight->info.type)) {
|
|
||||||
SET_DOUBLE_NULL(output);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(varDataVal(output), varDataVal(left), varDataLen(pRight->data));
|
|
||||||
memcpy(varDataVal(output) + varDataLen(left), varDataVal(pRight->data), varDataLen(pRight->data));
|
|
||||||
varDataSetLen(output, varDataLen(left) + varDataLen(pRight->data));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vectorBitAndHelper(SColumnInfoData *pLeftCol, SColumnInfoData *pRightCol, SColumnInfoData *pOutputCol,
|
static void vectorBitAndHelper(SColumnInfoData *pLeftCol, SColumnInfoData *pRightCol, SColumnInfoData *pOutputCol,
|
||||||
int32_t numOfRows, int32_t step, int32_t i) {
|
int32_t numOfRows, int32_t step, int32_t i) {
|
||||||
_getBigintValue_fn_t getVectorBigintValueFnLeft = getVectorBigintValueFn(pLeftCol->info.type);
|
_getBigintValue_fn_t getVectorBigintValueFnLeft = getVectorBigintValueFn(pLeftCol->info.type);
|
||||||
|
|
|
@ -526,7 +526,7 @@ int32_t streamStateSessionDel(SStreamState* pState, const SSessionKey* key) {
|
||||||
return tdbTbDelete(pState->pSessionStateDb, &sKey, sizeof(SStateSessionKey), &pState->txn);
|
return tdbTbDelete(pState->pSessionStateDb, &sKey, sizeof(SStateSessionKey), &pState->txn);
|
||||||
}
|
}
|
||||||
|
|
||||||
SStreamStateCur* streamStateSessionSeekKeyPrev(SStreamState* pState, const SSessionKey* key) {
|
SStreamStateCur* streamStateSessionSeekKeyCurrentPrev(SStreamState* pState, const SSessionKey* key) {
|
||||||
SStreamStateCur* pCur = taosMemoryCalloc(1, sizeof(SStreamStateCur));
|
SStreamStateCur* pCur = taosMemoryCalloc(1, sizeof(SStreamStateCur));
|
||||||
if (pCur == NULL) {
|
if (pCur == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -544,7 +544,7 @@ SStreamStateCur* streamStateSessionSeekKeyPrev(SStreamState* pState, const SSess
|
||||||
streamStateFreeCur(pCur);
|
streamStateFreeCur(pCur);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (c > 0) return pCur;
|
if (c >= 0) return pCur;
|
||||||
|
|
||||||
if (tdbTbcMoveToPrev(pCur->pCur) < 0) {
|
if (tdbTbcMoveToPrev(pCur->pCur) < 0) {
|
||||||
streamStateFreeCur(pCur);
|
streamStateFreeCur(pCur);
|
||||||
|
@ -572,7 +572,7 @@ SStreamStateCur* streamStateSessionSeekKeyNext(SStreamState* pState, const SSess
|
||||||
streamStateFreeCur(pCur);
|
streamStateFreeCur(pCur);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (c > 0) return pCur;
|
if (c < 0) return pCur;
|
||||||
|
|
||||||
if (tdbTbcMoveToNext(pCur->pCur) < 0) {
|
if (tdbTbcMoveToNext(pCur->pCur) < 0) {
|
||||||
streamStateFreeCur(pCur);
|
streamStateFreeCur(pCur);
|
||||||
|
@ -630,7 +630,7 @@ SStreamStateCur* streamStateSessionGetCur(SStreamState* pState, const SSessionKe
|
||||||
streamStateCurPrev(pState, pCur);
|
streamStateCurPrev(pState, pCur);
|
||||||
SSessionKey tmpKey = *key;
|
SSessionKey tmpKey = *key;
|
||||||
int32_t code = streamStateSessionGetKVByCur(pCur, &tmpKey, NULL, 0);
|
int32_t code = streamStateSessionGetKVByCur(pCur, &tmpKey, NULL, 0);
|
||||||
if (code == TSDB_CODE_SUCCESS && sessionKeyCmpr(key, &tmpKey) == 0) {
|
if (code == 0 && sessionKeyCmpr(key, &tmpKey) == 0) {
|
||||||
resKey = tmpKey;
|
resKey = tmpKey;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
@ -640,9 +640,28 @@ SStreamStateCur* streamStateSessionGetCur(SStreamState* pState, const SSessionKe
|
||||||
return streamStateSessionGetRanomCur(pState, &resKey);
|
return streamStateSessionGetRanomCur(pState, &resKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t streamStateSessionGetKey(SStreamState* pState, const SSessionKey* key, SSessionKey* curKey) {
|
||||||
|
SStreamStateCur* pCur = streamStateSessionGetRanomCur(pState, key);
|
||||||
|
SSessionKey resKey = *key;
|
||||||
|
int32_t res = -1;
|
||||||
|
while (1) {
|
||||||
|
SSessionKey tmpKey = *key;
|
||||||
|
int32_t code = streamStateSessionGetKVByCur(pCur, &tmpKey, NULL, 0);
|
||||||
|
if (code == 0 && sessionKeyCmpr(key, &tmpKey) == 0) {
|
||||||
|
res = 0;
|
||||||
|
resKey = tmpKey;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
streamStateCurPrev(pState, pCur);
|
||||||
|
}
|
||||||
|
*curKey = resKey;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t streamStateSessionAddIfNotExist(SStreamState* pState, SSessionKey* key, void** pVal, int32_t* pVLen) {
|
int32_t streamStateSessionAddIfNotExist(SStreamState* pState, SSessionKey* key, void** pVal, int32_t* pVLen) {
|
||||||
// todo refactor
|
// todo refactor
|
||||||
SStreamStateCur* pCur = streamStateSessionGetCur(pState, key);
|
SStreamStateCur* pCur = streamStateSessionGetRanomCur(pState, key);
|
||||||
int32_t size = *pVLen;
|
int32_t size = *pVLen;
|
||||||
void* tmp = NULL;
|
void* tmp = NULL;
|
||||||
*pVal = tdbRealloc(NULL, size);
|
*pVal = tdbRealloc(NULL, size);
|
||||||
|
@ -659,7 +678,7 @@ int32_t streamStateSessionAddIfNotExist(SStreamState* pState, SSessionKey* key,
|
||||||
int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, char* pKeyData, int32_t keyDataLen,
|
int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, char* pKeyData, int32_t keyDataLen,
|
||||||
state_key_cmpr_fn fn, void** pVal, int32_t* pVLen) {
|
state_key_cmpr_fn fn, void** pVal, int32_t* pVLen) {
|
||||||
// todo refactor
|
// todo refactor
|
||||||
int32_t res = TSDB_CODE_SUCCESS;
|
int32_t res = 0;
|
||||||
SSessionKey tmpKey = *key;
|
SSessionKey tmpKey = *key;
|
||||||
int32_t valSize = *pVLen;
|
int32_t valSize = *pVLen;
|
||||||
void* tmp = tdbRealloc(NULL, valSize);
|
void* tmp = tdbRealloc(NULL, valSize);
|
||||||
|
@ -667,21 +686,14 @@ int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, ch
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SStreamStateCur* pCur = streamStateSessionGetRanomCur(pState, key);
|
SStreamStateCur* pCur = streamStateSessionSeekKeyCurrentPrev(pState, key);
|
||||||
int32_t code = streamStateSessionGetKVByCur(pCur, key, (const void**)pVal, pVLen);
|
int32_t code = streamStateSessionGetKVByCur(pCur, key, (const void**)pVal, pVLen);
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
if (code == 0) {
|
||||||
memcpy(tmp, *pVal, valSize);
|
if (key->win.skey <= tmpKey.win.skey && tmpKey.win.ekey <= key->win.ekey) {
|
||||||
*pVal = tmp;
|
memcpy(tmp, *pVal, valSize);
|
||||||
streamStateFreeCur(pCur);
|
goto _end;
|
||||||
return res;
|
}
|
||||||
}
|
|
||||||
streamStateFreeCur(pCur);
|
|
||||||
|
|
||||||
streamStateSessionPut(pState, key, NULL, 0);
|
|
||||||
pCur = streamStateSessionGetRanomCur(pState, key);
|
|
||||||
streamStateCurPrev(pState, pCur);
|
|
||||||
code = streamStateSessionGetKVByCur(pCur, key, (const void**)pVal, pVLen);
|
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
|
||||||
void* stateKey = (char*)(*pVal) + (valSize - keyDataLen);
|
void* stateKey = (char*)(*pVal) + (valSize - keyDataLen);
|
||||||
if (fn(pKeyData, stateKey) == true) {
|
if (fn(pKeyData, stateKey) == true) {
|
||||||
memcpy(tmp, *pVal, valSize);
|
memcpy(tmp, *pVal, valSize);
|
||||||
|
@ -689,11 +701,9 @@ int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, ch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
streamStateFreeCur(pCur);
|
streamStateCurNext(pState, pCur);
|
||||||
*key = tmpKey;
|
|
||||||
pCur = streamStateSessionSeekKeyNext(pState, key);
|
|
||||||
code = streamStateSessionGetKVByCur(pCur, key, (const void**)pVal, pVLen);
|
code = streamStateSessionGetKVByCur(pCur, key, (const void**)pVal, pVLen);
|
||||||
if (code == TSDB_CODE_SUCCESS) {
|
if (code == 0) {
|
||||||
void* stateKey = (char*)(*pVal) + (valSize - keyDataLen);
|
void* stateKey = (char*)(*pVal) + (valSize - keyDataLen);
|
||||||
if (fn(pKeyData, stateKey) == true) {
|
if (fn(pKeyData, stateKey) == true) {
|
||||||
memcpy(tmp, *pVal, valSize);
|
memcpy(tmp, *pVal, valSize);
|
||||||
|
@ -708,7 +718,6 @@ int32_t streamStateStateAddIfNotExist(SStreamState* pState, SSessionKey* key, ch
|
||||||
_end:
|
_end:
|
||||||
|
|
||||||
*pVal = tmp;
|
*pVal = tmp;
|
||||||
streamStateSessionDel(pState, &tmpKey);
|
|
||||||
streamStateFreeCur(pCur);
|
streamStateFreeCur(pCur);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -408,7 +408,7 @@ static int32_t syncNodeDoMakeLogSame(SSyncNode* ths, SyncIndex FromIndex) {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "update delete begin to %ld", delBegin);
|
snprintf(logBuf, sizeof(logBuf), "update delete begin to %" PRId64, delBegin);
|
||||||
syncNodeEventLog(ths, logBuf);
|
syncNodeEventLog(ths, logBuf);
|
||||||
} while (0);
|
} while (0);
|
||||||
}
|
}
|
||||||
|
@ -419,7 +419,8 @@ static int32_t syncNodeDoMakeLogSame(SSyncNode* ths, SyncIndex FromIndex) {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "make log same from:%ld, delbegin:%ld, pass:%d", FromIndex, delBegin, pass);
|
snprintf(logBuf, sizeof(logBuf), "make log same from:%" PRId64 ", delbegin:%" PRId64 ", pass:%d", FromIndex,
|
||||||
|
delBegin, pass);
|
||||||
syncNodeEventLog(ths, logBuf);
|
syncNodeEventLog(ths, logBuf);
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
|
|
|
@ -77,8 +77,8 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
|
||||||
} else {
|
} else {
|
||||||
pEntry = pSyncNode->pLogStore->getEntry(pSyncNode->pLogStore, index);
|
pEntry = pSyncNode->pLogStore->getEntry(pSyncNode->pLogStore, index);
|
||||||
if (pEntry == NULL) {
|
if (pEntry == NULL) {
|
||||||
sError("failed to get entry since %s. index:%lld", tstrerror(terrno), index);
|
sError("failed to get entry since %s. index:%" PRId64, tstrerror(terrno), index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// cannot commit, even if quorum agree. need check term!
|
// cannot commit, even if quorum agree. need check term!
|
||||||
|
|
|
@ -200,28 +200,28 @@ int64_t syncIndexMgrGetRecvTime(SSyncIndexMgr *pSyncIndexMgr, const SRaftId *pRa
|
||||||
// for debug -------------------
|
// for debug -------------------
|
||||||
void syncIndexMgrPrint(SSyncIndexMgr *pObj) {
|
void syncIndexMgrPrint(SSyncIndexMgr *pObj) {
|
||||||
char *serialized = syncIndexMgr2Str(pObj);
|
char *serialized = syncIndexMgr2Str(pObj);
|
||||||
printf("syncIndexMgrPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncIndexMgrPrint | len:%" PRIu64 " | %s \n", (uint64_t)strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncIndexMgrPrint2(char *s, SSyncIndexMgr *pObj) {
|
void syncIndexMgrPrint2(char *s, SSyncIndexMgr *pObj) {
|
||||||
char *serialized = syncIndexMgr2Str(pObj);
|
char *serialized = syncIndexMgr2Str(pObj);
|
||||||
printf("syncIndexMgrPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncIndexMgrPrint2 | len:%" PRIu64 " | %s | %s \n", (uint64_t)strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncIndexMgrLog(SSyncIndexMgr *pObj) {
|
void syncIndexMgrLog(SSyncIndexMgr *pObj) {
|
||||||
char *serialized = syncIndexMgr2Str(pObj);
|
char *serialized = syncIndexMgr2Str(pObj);
|
||||||
sTrace("syncIndexMgrLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncIndexMgrLog | len:%" PRIu64 " | %s", (uint64_t)strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncIndexMgrLog2(char *s, SSyncIndexMgr *pObj) {
|
void syncIndexMgrLog2(char *s, SSyncIndexMgr *pObj) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char *serialized = syncIndexMgr2Str(pObj);
|
char *serialized = syncIndexMgr2Str(pObj);
|
||||||
sTrace("syncIndexMgrLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncIndexMgrLog2 | len:%" PRIu64 " | %s | %s", (uint64_t)strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ int32_t syncInit() {
|
||||||
syncCleanUp();
|
syncCleanUp();
|
||||||
ret = -1;
|
ret = -1;
|
||||||
} else {
|
} else {
|
||||||
sDebug("sync rsetId:%" PRId64 " is open", tsNodeRefId);
|
sDebug("sync rsetId:%" PRId32 " is open", tsNodeRefId);
|
||||||
ret = syncEnvStart();
|
ret = syncEnvStart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ void syncCleanUp() {
|
||||||
ASSERT(ret == 0);
|
ASSERT(ret == 0);
|
||||||
|
|
||||||
if (tsNodeRefId != -1) {
|
if (tsNodeRefId != -1) {
|
||||||
sDebug("sync rsetId:%" PRId64 " is closed", tsNodeRefId);
|
sDebug("sync rsetId:%" PRId32 " is closed", tsNodeRefId);
|
||||||
taosCloseRef(tsNodeRefId);
|
taosCloseRef(tsNodeRefId);
|
||||||
tsNodeRefId = -1;
|
tsNodeRefId = -1;
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ int64_t syncOpen(SSyncInfo* pSyncInfo) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sDebug("vgId:%d, sync rid:%" PRId64 " is added to rsetId:%" PRId64, pSyncInfo->vgId, pSyncNode->rid, tsNodeRefId);
|
sDebug("vgId:%d, sync rid:%" PRId64 " is added to rsetId:%" PRId32, pSyncInfo->vgId, pSyncNode->rid, tsNodeRefId);
|
||||||
return pSyncNode->rid;
|
return pSyncNode->rid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ void syncStop(int64_t rid) {
|
||||||
taosReleaseRef(tsNodeRefId, pSyncNode->rid);
|
taosReleaseRef(tsNodeRefId, pSyncNode->rid);
|
||||||
|
|
||||||
taosRemoveRef(tsNodeRefId, rid);
|
taosRemoveRef(tsNodeRefId, rid);
|
||||||
sDebug("vgId:%d, sync rid:%" PRId64 " is removed from rsetId:%" PRId64, vgId, rid, tsNodeRefId);
|
sDebug("vgId:%d, sync rid:%" PRId64 " is removed from rsetId:%" PRId64, vgId, rid, (int64_t)tsNodeRefId);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t syncSetStandby(int64_t rid) {
|
int32_t syncSetStandby(int64_t rid) {
|
||||||
|
@ -316,7 +316,7 @@ int32_t syncNodeLeaderTransferTo(SSyncNode* pSyncNode, SNodeInfo newLeader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
char logBuf[128];
|
char logBuf[256];
|
||||||
snprintf(logBuf, sizeof(logBuf), "begin leader transfer to %s:%u", newLeader.nodeFqdn, newLeader.nodePort);
|
snprintf(logBuf, sizeof(logBuf), "begin leader transfer to %s:%u", newLeader.nodeFqdn, newLeader.nodePort);
|
||||||
syncNodeEventLog(pSyncNode, logBuf);
|
syncNodeEventLog(pSyncNode, logBuf);
|
||||||
} while (0);
|
} while (0);
|
||||||
|
@ -867,8 +867,8 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak) {
|
||||||
if (!pSyncNode->restoreFinish && pSyncNode->vgId != 1) {
|
if (!pSyncNode->restoreFinish && pSyncNode->vgId != 1) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
terrno = TSDB_CODE_SYN_PROPOSE_NOT_READY;
|
terrno = TSDB_CODE_SYN_PROPOSE_NOT_READY;
|
||||||
sError("vgId:%d, failed to sync propose since not ready, type:%s, last:%ld, cmt:%ld", pSyncNode->vgId,
|
sError("vgId:%d, failed to sync propose since not ready, type:%s, last:%" PRId64 ", cmt:%" PRId64 "",
|
||||||
TMSG_INFO(pMsg->msgType), syncNodeGetLastIndex(pSyncNode), pSyncNode->commitIndex);
|
pSyncNode->vgId, TMSG_INFO(pMsg->msgType), syncNodeGetLastIndex(pSyncNode), pSyncNode->commitIndex);
|
||||||
goto _END;
|
goto _END;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2475,35 +2475,35 @@ int32_t syncNodeGetPreIndexTerm(SSyncNode* pSyncNode, SyncIndex index, SyncIndex
|
||||||
// for debug --------------
|
// for debug --------------
|
||||||
void syncNodePrint(SSyncNode* pObj) {
|
void syncNodePrint(SSyncNode* pObj) {
|
||||||
char* serialized = syncNode2Str(pObj);
|
char* serialized = syncNode2Str(pObj);
|
||||||
printf("syncNodePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncNodePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncNodePrint2(char* s, SSyncNode* pObj) {
|
void syncNodePrint2(char* s, SSyncNode* pObj) {
|
||||||
char* serialized = syncNode2Str(pObj);
|
char* serialized = syncNode2Str(pObj);
|
||||||
printf("syncNodePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncNodePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncNodeLog(SSyncNode* pObj) {
|
void syncNodeLog(SSyncNode* pObj) {
|
||||||
char* serialized = syncNode2Str(pObj);
|
char* serialized = syncNode2Str(pObj);
|
||||||
sTraceLong("syncNodeLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTraceLong("syncNodeLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncNodeLog2(char* s, SSyncNode* pObj) {
|
void syncNodeLog2(char* s, SSyncNode* pObj) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncNode2Str(pObj);
|
char* serialized = syncNode2Str(pObj);
|
||||||
sTraceLong("syncNodeLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("syncNodeLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncNodeLog3(char* s, SSyncNode* pObj) {
|
void syncNodeLog3(char* s, SSyncNode* pObj) {
|
||||||
char* serialized = syncNode2Str(pObj);
|
char* serialized = syncNode2Str(pObj);
|
||||||
sTraceLong("syncNodeLog3 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("syncNodeLog3 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2919,14 +2919,14 @@ int32_t syncDoLeaderTransfer(SSyncNode* ths, SRpcMsg* pRpcMsg, SSyncRaftEntry* p
|
||||||
|
|
||||||
if (pEntry->term < ths->pRaftStore->currentTerm) {
|
if (pEntry->term < ths->pRaftStore->currentTerm) {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "little term:%lu, can not do leader transfer", pEntry->term);
|
snprintf(logBuf, sizeof(logBuf), "little term:%" PRIu64 ", can not do leader transfer", pEntry->term);
|
||||||
syncNodeEventLog(ths, logBuf);
|
syncNodeEventLog(ths, logBuf);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pEntry->index < syncNodeGetLastIndex(ths)) {
|
if (pEntry->index < syncNodeGetLastIndex(ths)) {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "little index:%ld, can not do leader transfer", pEntry->index);
|
snprintf(logBuf, sizeof(logBuf), "little index:%" PRId64 ", can not do leader transfer", pEntry->index);
|
||||||
syncNodeEventLog(ths, logBuf);
|
syncNodeEventLog(ths, logBuf);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2942,7 +2942,7 @@ int32_t syncDoLeaderTransfer(SSyncNode* ths, SRpcMsg* pRpcMsg, SSyncRaftEntry* p
|
||||||
|
|
||||||
do {
|
do {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "do leader transfer, index:%ld", pEntry->index);
|
snprintf(logBuf, sizeof(logBuf), "do leader transfer, index:%" PRId64 "", pEntry->index);
|
||||||
syncNodeEventLog(ths, logBuf);
|
syncNodeEventLog(ths, logBuf);
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
|
@ -3122,9 +3122,9 @@ int32_t syncNodeCommit(SSyncNode* ths, SyncIndex beginIndex, SyncIndex endIndex,
|
||||||
} else {
|
} else {
|
||||||
code = ths->pLogStore->syncLogGetEntry(ths->pLogStore, i, &pEntry);
|
code = ths->pLogStore->syncLogGetEntry(ths->pLogStore, i, &pEntry);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
sError("vgId:%d, failed to get log entry since %s. index:%lld", ths->vgId, tstrerror(terrno), i);
|
sError("vgId:%d, failed to get log entry since %s. index:%" PRId64 "", ths->vgId, tstrerror(terrno), i);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ASSERT(pEntry != NULL);
|
ASSERT(pEntry != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3203,8 +3203,8 @@ int32_t syncNodeCommit(SSyncNode* ths, SyncIndex beginIndex, SyncIndex endIndex,
|
||||||
int64_t restoreDelay = taosGetTimestampMs() - ths->leaderTime;
|
int64_t restoreDelay = taosGetTimestampMs() - ths->leaderTime;
|
||||||
|
|
||||||
char eventLog[128];
|
char eventLog[128];
|
||||||
snprintf(eventLog, sizeof(eventLog), "restore finish, index:%ld, elapsed:%ld ms, ", pEntry->index,
|
snprintf(eventLog, sizeof(eventLog), "restore finish, index:%" PRId64 ", elapsed:%" PRId64 " ms, ",
|
||||||
restoreDelay);
|
pEntry->index, restoreDelay);
|
||||||
syncNodeEventLog(ths, eventLog);
|
syncNodeEventLog(ths, eventLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3427,4 +3427,4 @@ void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* p
|
||||||
snprintf(logBuf, sizeof(logBuf), "recv sync-heartbeat-reply from %s:%d {term:%" PRIu64 ", pterm:%" PRIu64 "}, %s",
|
snprintf(logBuf, sizeof(logBuf), "recv sync-heartbeat-reply from %s:%d {term:%" PRIu64 ", pterm:%" PRIu64 "}, %s",
|
||||||
host, port, pMsg->term, pMsg->privateTerm, s);
|
host, port, pMsg->term, pMsg->privateTerm, s);
|
||||||
syncNodeEventLog(pSyncNode, logBuf);
|
syncNodeEventLog(pSyncNode, logBuf);
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,28 +133,28 @@ char* syncRpcMsg2Str(SRpcMsg* pRpcMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncRpcMsgPrint(SRpcMsg* pMsg) {
|
void syncRpcMsgPrint(SRpcMsg* pMsg) {
|
||||||
char* serialized = syncRpcMsg2Str(pMsg);
|
char* serialized = syncRpcMsg2Str(pMsg);
|
||||||
printf("syncRpcMsgPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncRpcMsgPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRpcMsgPrint2(char* s, SRpcMsg* pMsg) {
|
void syncRpcMsgPrint2(char* s, SRpcMsg* pMsg) {
|
||||||
char* serialized = syncRpcMsg2Str(pMsg);
|
char* serialized = syncRpcMsg2Str(pMsg);
|
||||||
printf("syncRpcMsgPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncRpcMsgPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRpcMsgLog(SRpcMsg* pMsg) {
|
void syncRpcMsgLog(SRpcMsg* pMsg) {
|
||||||
char* serialized = syncRpcMsg2Str(pMsg);
|
char* serialized = syncRpcMsg2Str(pMsg);
|
||||||
sTrace("syncRpcMsgLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncRpcMsgLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRpcMsgLog2(char* s, SRpcMsg* pMsg) {
|
void syncRpcMsgLog2(char* s, SRpcMsg* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncRpcMsg2Str(pMsg);
|
char* serialized = syncRpcMsg2Str(pMsg);
|
||||||
sTrace("syncRpcMsgLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncRpcMsgLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -271,21 +271,21 @@ void syncTimeoutPrint(const SyncTimeout* pMsg) {
|
||||||
|
|
||||||
void syncTimeoutPrint2(char* s, const SyncTimeout* pMsg) {
|
void syncTimeoutPrint2(char* s, const SyncTimeout* pMsg) {
|
||||||
char* serialized = syncTimeout2Str(pMsg);
|
char* serialized = syncTimeout2Str(pMsg);
|
||||||
printf("syncTimeoutPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncTimeoutPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncTimeoutLog(const SyncTimeout* pMsg) {
|
void syncTimeoutLog(const SyncTimeout* pMsg) {
|
||||||
char* serialized = syncTimeout2Str(pMsg);
|
char* serialized = syncTimeout2Str(pMsg);
|
||||||
sTrace("syncTimeoutLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncTimeoutLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncTimeoutLog2(char* s, const SyncTimeout* pMsg) {
|
void syncTimeoutLog2(char* s, const SyncTimeout* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncTimeout2Str(pMsg);
|
char* serialized = syncTimeout2Str(pMsg);
|
||||||
sTrace("syncTimeoutLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncTimeoutLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -526,28 +526,28 @@ char* syncPing2Str(const SyncPing* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncPingPrint(const SyncPing* pMsg) {
|
void syncPingPrint(const SyncPing* pMsg) {
|
||||||
char* serialized = syncPing2Str(pMsg);
|
char* serialized = syncPing2Str(pMsg);
|
||||||
printf("syncPingPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncPingPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncPingPrint2(char* s, const SyncPing* pMsg) {
|
void syncPingPrint2(char* s, const SyncPing* pMsg) {
|
||||||
char* serialized = syncPing2Str(pMsg);
|
char* serialized = syncPing2Str(pMsg);
|
||||||
printf("syncPingPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncPingPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncPingLog(const SyncPing* pMsg) {
|
void syncPingLog(const SyncPing* pMsg) {
|
||||||
char* serialized = syncPing2Str(pMsg);
|
char* serialized = syncPing2Str(pMsg);
|
||||||
sTrace("syncPingLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncPingLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncPingLog2(char* s, const SyncPing* pMsg) {
|
void syncPingLog2(char* s, const SyncPing* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncPing2Str(pMsg);
|
char* serialized = syncPing2Str(pMsg);
|
||||||
sTrace("syncPingLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncPingLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -931,28 +931,28 @@ char* syncClientRequest2Str(const SyncClientRequest* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncClientRequestPrint(const SyncClientRequest* pMsg) {
|
void syncClientRequestPrint(const SyncClientRequest* pMsg) {
|
||||||
char* serialized = syncClientRequest2Str(pMsg);
|
char* serialized = syncClientRequest2Str(pMsg);
|
||||||
printf("syncClientRequestPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncClientRequestPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestPrint2(char* s, const SyncClientRequest* pMsg) {
|
void syncClientRequestPrint2(char* s, const SyncClientRequest* pMsg) {
|
||||||
char* serialized = syncClientRequest2Str(pMsg);
|
char* serialized = syncClientRequest2Str(pMsg);
|
||||||
printf("syncClientRequestPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncClientRequestPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestLog(const SyncClientRequest* pMsg) {
|
void syncClientRequestLog(const SyncClientRequest* pMsg) {
|
||||||
char* serialized = syncClientRequest2Str(pMsg);
|
char* serialized = syncClientRequest2Str(pMsg);
|
||||||
sTrace("syncClientRequestLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncClientRequestLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestLog2(char* s, const SyncClientRequest* pMsg) {
|
void syncClientRequestLog2(char* s, const SyncClientRequest* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncClientRequest2Str(pMsg);
|
char* serialized = syncClientRequest2Str(pMsg);
|
||||||
sTrace("syncClientRequestLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncClientRequestLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1101,28 +1101,28 @@ char* syncClientRequestBatch2Str(const SyncClientRequestBatch* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncClientRequestBatchPrint(const SyncClientRequestBatch* pMsg) {
|
void syncClientRequestBatchPrint(const SyncClientRequestBatch* pMsg) {
|
||||||
char* serialized = syncClientRequestBatch2Str(pMsg);
|
char* serialized = syncClientRequestBatch2Str(pMsg);
|
||||||
printf("syncClientRequestBatchPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncClientRequestBatchPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestBatchPrint2(char* s, const SyncClientRequestBatch* pMsg) {
|
void syncClientRequestBatchPrint2(char* s, const SyncClientRequestBatch* pMsg) {
|
||||||
char* serialized = syncClientRequestBatch2Str(pMsg);
|
char* serialized = syncClientRequestBatch2Str(pMsg);
|
||||||
printf("syncClientRequestBatchPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncClientRequestBatchPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestBatchLog(const SyncClientRequestBatch* pMsg) {
|
void syncClientRequestBatchLog(const SyncClientRequestBatch* pMsg) {
|
||||||
char* serialized = syncClientRequestBatch2Str(pMsg);
|
char* serialized = syncClientRequestBatch2Str(pMsg);
|
||||||
sTrace("syncClientRequestBatchLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncClientRequestBatchLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncClientRequestBatchLog2(char* s, const SyncClientRequestBatch* pMsg) {
|
void syncClientRequestBatchLog2(char* s, const SyncClientRequestBatch* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncClientRequestBatch2Str(pMsg);
|
char* serialized = syncClientRequestBatch2Str(pMsg);
|
||||||
sTraceLong("syncClientRequestBatchLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("syncClientRequestBatchLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1252,28 +1252,28 @@ char* syncRequestVote2Str(const SyncRequestVote* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncRequestVotePrint(const SyncRequestVote* pMsg) {
|
void syncRequestVotePrint(const SyncRequestVote* pMsg) {
|
||||||
char* serialized = syncRequestVote2Str(pMsg);
|
char* serialized = syncRequestVote2Str(pMsg);
|
||||||
printf("syncRequestVotePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncRequestVotePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVotePrint2(char* s, const SyncRequestVote* pMsg) {
|
void syncRequestVotePrint2(char* s, const SyncRequestVote* pMsg) {
|
||||||
char* serialized = syncRequestVote2Str(pMsg);
|
char* serialized = syncRequestVote2Str(pMsg);
|
||||||
printf("syncRequestVotePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncRequestVotePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVoteLog(const SyncRequestVote* pMsg) {
|
void syncRequestVoteLog(const SyncRequestVote* pMsg) {
|
||||||
char* serialized = syncRequestVote2Str(pMsg);
|
char* serialized = syncRequestVote2Str(pMsg);
|
||||||
sTrace("syncRequestVoteLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncRequestVoteLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVoteLog2(char* s, const SyncRequestVote* pMsg) {
|
void syncRequestVoteLog2(char* s, const SyncRequestVote* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncRequestVote2Str(pMsg);
|
char* serialized = syncRequestVote2Str(pMsg);
|
||||||
sTrace("syncRequestVoteLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncRequestVoteLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1400,28 +1400,28 @@ char* syncRequestVoteReply2Str(const SyncRequestVoteReply* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncRequestVoteReplyPrint(const SyncRequestVoteReply* pMsg) {
|
void syncRequestVoteReplyPrint(const SyncRequestVoteReply* pMsg) {
|
||||||
char* serialized = syncRequestVoteReply2Str(pMsg);
|
char* serialized = syncRequestVoteReply2Str(pMsg);
|
||||||
printf("syncRequestVoteReplyPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncRequestVoteReplyPrint | len:%ld | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVoteReplyPrint2(char* s, const SyncRequestVoteReply* pMsg) {
|
void syncRequestVoteReplyPrint2(char* s, const SyncRequestVoteReply* pMsg) {
|
||||||
char* serialized = syncRequestVoteReply2Str(pMsg);
|
char* serialized = syncRequestVoteReply2Str(pMsg);
|
||||||
printf("syncRequestVoteReplyPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncRequestVoteReplyPrint2 | len:%ld | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVoteReplyLog(const SyncRequestVoteReply* pMsg) {
|
void syncRequestVoteReplyLog(const SyncRequestVoteReply* pMsg) {
|
||||||
char* serialized = syncRequestVoteReply2Str(pMsg);
|
char* serialized = syncRequestVoteReply2Str(pMsg);
|
||||||
sTrace("syncRequestVoteReplyLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncRequestVoteReplyLog | len:%ld | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncRequestVoteReplyLog2(char* s, const SyncRequestVoteReply* pMsg) {
|
void syncRequestVoteReplyLog2(char* s, const SyncRequestVoteReply* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncRequestVoteReply2Str(pMsg);
|
char* serialized = syncRequestVoteReply2Str(pMsg);
|
||||||
sTrace("syncRequestVoteReplyLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncRequestVoteReplyLog2 | len:%ld | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1571,28 +1571,28 @@ char* syncAppendEntries2Str(const SyncAppendEntries* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncAppendEntriesPrint(const SyncAppendEntries* pMsg) {
|
void syncAppendEntriesPrint(const SyncAppendEntries* pMsg) {
|
||||||
char* serialized = syncAppendEntries2Str(pMsg);
|
char* serialized = syncAppendEntries2Str(pMsg);
|
||||||
printf("syncAppendEntriesPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncAppendEntriesPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesPrint2(char* s, const SyncAppendEntries* pMsg) {
|
void syncAppendEntriesPrint2(char* s, const SyncAppendEntries* pMsg) {
|
||||||
char* serialized = syncAppendEntries2Str(pMsg);
|
char* serialized = syncAppendEntries2Str(pMsg);
|
||||||
printf("syncAppendEntriesPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncAppendEntriesPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesLog(const SyncAppendEntries* pMsg) {
|
void syncAppendEntriesLog(const SyncAppendEntries* pMsg) {
|
||||||
char* serialized = syncAppendEntries2Str(pMsg);
|
char* serialized = syncAppendEntries2Str(pMsg);
|
||||||
sTrace("syncAppendEntriesLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncAppendEntriesLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesLog2(char* s, const SyncAppendEntries* pMsg) {
|
void syncAppendEntriesLog2(char* s, const SyncAppendEntries* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncAppendEntries2Str(pMsg);
|
char* serialized = syncAppendEntries2Str(pMsg);
|
||||||
sTrace("syncAppendEntriesLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncAppendEntriesLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1810,28 +1810,28 @@ char* syncAppendEntriesBatch2Str(const SyncAppendEntriesBatch* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncAppendEntriesBatchPrint(const SyncAppendEntriesBatch* pMsg) {
|
void syncAppendEntriesBatchPrint(const SyncAppendEntriesBatch* pMsg) {
|
||||||
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
||||||
printf("syncAppendEntriesBatchPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncAppendEntriesBatchPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesBatchPrint2(char* s, const SyncAppendEntriesBatch* pMsg) {
|
void syncAppendEntriesBatchPrint2(char* s, const SyncAppendEntriesBatch* pMsg) {
|
||||||
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
||||||
printf("syncAppendEntriesBatchPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncAppendEntriesBatchPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesBatchLog(const SyncAppendEntriesBatch* pMsg) {
|
void syncAppendEntriesBatchLog(const SyncAppendEntriesBatch* pMsg) {
|
||||||
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
||||||
sTrace("syncAppendEntriesBatchLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncAppendEntriesBatchLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesBatchLog2(char* s, const SyncAppendEntriesBatch* pMsg) {
|
void syncAppendEntriesBatchLog2(char* s, const SyncAppendEntriesBatch* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
char* serialized = syncAppendEntriesBatch2Str(pMsg);
|
||||||
sTraceLong("syncAppendEntriesBatchLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("syncAppendEntriesBatchLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1966,28 +1966,28 @@ char* syncAppendEntriesReply2Str(const SyncAppendEntriesReply* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncAppendEntriesReplyPrint(const SyncAppendEntriesReply* pMsg) {
|
void syncAppendEntriesReplyPrint(const SyncAppendEntriesReply* pMsg) {
|
||||||
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
||||||
printf("syncAppendEntriesReplyPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncAppendEntriesReplyPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesReplyPrint2(char* s, const SyncAppendEntriesReply* pMsg) {
|
void syncAppendEntriesReplyPrint2(char* s, const SyncAppendEntriesReply* pMsg) {
|
||||||
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
||||||
printf("syncAppendEntriesReplyPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncAppendEntriesReplyPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesReplyLog(const SyncAppendEntriesReply* pMsg) {
|
void syncAppendEntriesReplyLog(const SyncAppendEntriesReply* pMsg) {
|
||||||
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
||||||
sTrace("syncAppendEntriesReplyLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncAppendEntriesReplyLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncAppendEntriesReplyLog2(char* s, const SyncAppendEntriesReply* pMsg) {
|
void syncAppendEntriesReplyLog2(char* s, const SyncAppendEntriesReply* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
char* serialized = syncAppendEntriesReply2Str(pMsg);
|
||||||
sTrace("syncAppendEntriesReplyLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncAppendEntriesReplyLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2119,28 +2119,28 @@ char* syncHeartbeat2Str(const SyncHeartbeat* pMsg) {
|
||||||
|
|
||||||
void syncHeartbeatPrint(const SyncHeartbeat* pMsg) {
|
void syncHeartbeatPrint(const SyncHeartbeat* pMsg) {
|
||||||
char* serialized = syncHeartbeat2Str(pMsg);
|
char* serialized = syncHeartbeat2Str(pMsg);
|
||||||
printf("syncHeartbeatPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncHeartbeatPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatPrint2(char* s, const SyncHeartbeat* pMsg) {
|
void syncHeartbeatPrint2(char* s, const SyncHeartbeat* pMsg) {
|
||||||
char* serialized = syncHeartbeat2Str(pMsg);
|
char* serialized = syncHeartbeat2Str(pMsg);
|
||||||
printf("syncHeartbeatPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncHeartbeatPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatLog(const SyncHeartbeat* pMsg) {
|
void syncHeartbeatLog(const SyncHeartbeat* pMsg) {
|
||||||
char* serialized = syncHeartbeat2Str(pMsg);
|
char* serialized = syncHeartbeat2Str(pMsg);
|
||||||
sTrace("syncHeartbeatLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncHeartbeatLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatLog2(char* s, const SyncHeartbeat* pMsg) {
|
void syncHeartbeatLog2(char* s, const SyncHeartbeat* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncHeartbeat2Str(pMsg);
|
char* serialized = syncHeartbeat2Str(pMsg);
|
||||||
sTrace("syncHeartbeatLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncHeartbeatLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2273,28 +2273,28 @@ char* syncHeartbeatReply2Str(const SyncHeartbeatReply* pMsg) {
|
||||||
|
|
||||||
void syncHeartbeatReplyPrint(const SyncHeartbeatReply* pMsg) {
|
void syncHeartbeatReplyPrint(const SyncHeartbeatReply* pMsg) {
|
||||||
char* serialized = syncHeartbeatReply2Str(pMsg);
|
char* serialized = syncHeartbeatReply2Str(pMsg);
|
||||||
printf("syncHeartbeatReplyPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncHeartbeatReplyPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatReplyPrint2(char* s, const SyncHeartbeatReply* pMsg) {
|
void syncHeartbeatReplyPrint2(char* s, const SyncHeartbeatReply* pMsg) {
|
||||||
char* serialized = syncHeartbeatReply2Str(pMsg);
|
char* serialized = syncHeartbeatReply2Str(pMsg);
|
||||||
printf("syncHeartbeatReplyPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncHeartbeatReplyPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatReplyLog(const SyncHeartbeatReply* pMsg) {
|
void syncHeartbeatReplyLog(const SyncHeartbeatReply* pMsg) {
|
||||||
char* serialized = syncHeartbeatReply2Str(pMsg);
|
char* serialized = syncHeartbeatReply2Str(pMsg);
|
||||||
sTrace("syncHeartbeatReplyLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncHeartbeatReplyLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncHeartbeatReplyLog2(char* s, const SyncHeartbeatReply* pMsg) {
|
void syncHeartbeatReplyLog2(char* s, const SyncHeartbeatReply* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncHeartbeatReply2Str(pMsg);
|
char* serialized = syncHeartbeatReply2Str(pMsg);
|
||||||
sTrace("syncHeartbeatReplyLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncHeartbeatReplyLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2426,28 +2426,28 @@ char* syncApplyMsg2Str(const SyncApplyMsg* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncApplyMsgPrint(const SyncApplyMsg* pMsg) {
|
void syncApplyMsgPrint(const SyncApplyMsg* pMsg) {
|
||||||
char* serialized = syncApplyMsg2Str(pMsg);
|
char* serialized = syncApplyMsg2Str(pMsg);
|
||||||
printf("syncApplyMsgPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncApplyMsgPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncApplyMsgPrint2(char* s, const SyncApplyMsg* pMsg) {
|
void syncApplyMsgPrint2(char* s, const SyncApplyMsg* pMsg) {
|
||||||
char* serialized = syncApplyMsg2Str(pMsg);
|
char* serialized = syncApplyMsg2Str(pMsg);
|
||||||
printf("syncApplyMsgPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncApplyMsgPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncApplyMsgLog(const SyncApplyMsg* pMsg) {
|
void syncApplyMsgLog(const SyncApplyMsg* pMsg) {
|
||||||
char* serialized = syncApplyMsg2Str(pMsg);
|
char* serialized = syncApplyMsg2Str(pMsg);
|
||||||
sTrace("ssyncApplyMsgLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("ssyncApplyMsgLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncApplyMsgLog2(char* s, const SyncApplyMsg* pMsg) {
|
void syncApplyMsgLog2(char* s, const SyncApplyMsg* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncApplyMsg2Str(pMsg);
|
char* serialized = syncApplyMsg2Str(pMsg);
|
||||||
sTrace("syncApplyMsgLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncApplyMsgLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2603,28 +2603,28 @@ char* syncSnapshotSend2Str(const SyncSnapshotSend* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncSnapshotSendPrint(const SyncSnapshotSend* pMsg) {
|
void syncSnapshotSendPrint(const SyncSnapshotSend* pMsg) {
|
||||||
char* serialized = syncSnapshotSend2Str(pMsg);
|
char* serialized = syncSnapshotSend2Str(pMsg);
|
||||||
printf("syncSnapshotSendPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncSnapshotSendPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotSendPrint2(char* s, const SyncSnapshotSend* pMsg) {
|
void syncSnapshotSendPrint2(char* s, const SyncSnapshotSend* pMsg) {
|
||||||
char* serialized = syncSnapshotSend2Str(pMsg);
|
char* serialized = syncSnapshotSend2Str(pMsg);
|
||||||
printf("syncSnapshotSendPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncSnapshotSendPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotSendLog(const SyncSnapshotSend* pMsg) {
|
void syncSnapshotSendLog(const SyncSnapshotSend* pMsg) {
|
||||||
char* serialized = syncSnapshotSend2Str(pMsg);
|
char* serialized = syncSnapshotSend2Str(pMsg);
|
||||||
sTrace("syncSnapshotSendLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncSnapshotSendLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotSendLog2(char* s, const SyncSnapshotSend* pMsg) {
|
void syncSnapshotSendLog2(char* s, const SyncSnapshotSend* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncSnapshotSend2Str(pMsg);
|
char* serialized = syncSnapshotSend2Str(pMsg);
|
||||||
sTrace("syncSnapshotSendLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncSnapshotSendLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2763,28 +2763,28 @@ char* syncSnapshotRsp2Str(const SyncSnapshotRsp* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncSnapshotRspPrint(const SyncSnapshotRsp* pMsg) {
|
void syncSnapshotRspPrint(const SyncSnapshotRsp* pMsg) {
|
||||||
char* serialized = syncSnapshotRsp2Str(pMsg);
|
char* serialized = syncSnapshotRsp2Str(pMsg);
|
||||||
printf("syncSnapshotRspPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncSnapshotRspPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotRspPrint2(char* s, const SyncSnapshotRsp* pMsg) {
|
void syncSnapshotRspPrint2(char* s, const SyncSnapshotRsp* pMsg) {
|
||||||
char* serialized = syncSnapshotRsp2Str(pMsg);
|
char* serialized = syncSnapshotRsp2Str(pMsg);
|
||||||
printf("syncSnapshotRspPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncSnapshotRspPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotRspLog(const SyncSnapshotRsp* pMsg) {
|
void syncSnapshotRspLog(const SyncSnapshotRsp* pMsg) {
|
||||||
char* serialized = syncSnapshotRsp2Str(pMsg);
|
char* serialized = syncSnapshotRsp2Str(pMsg);
|
||||||
sTrace("syncSnapshotRspLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncSnapshotRspLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncSnapshotRspLog2(char* s, const SyncSnapshotRsp* pMsg) {
|
void syncSnapshotRspLog2(char* s, const SyncSnapshotRsp* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncSnapshotRsp2Str(pMsg);
|
char* serialized = syncSnapshotRsp2Str(pMsg);
|
||||||
sTrace("syncSnapshotRspLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncSnapshotRspLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2925,28 +2925,28 @@ char* syncLeaderTransfer2Str(const SyncLeaderTransfer* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncLeaderTransferPrint(const SyncLeaderTransfer* pMsg) {
|
void syncLeaderTransferPrint(const SyncLeaderTransfer* pMsg) {
|
||||||
char* serialized = syncLeaderTransfer2Str(pMsg);
|
char* serialized = syncLeaderTransfer2Str(pMsg);
|
||||||
printf("syncLeaderTransferPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncLeaderTransferPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncLeaderTransferPrint2(char* s, const SyncLeaderTransfer* pMsg) {
|
void syncLeaderTransferPrint2(char* s, const SyncLeaderTransfer* pMsg) {
|
||||||
char* serialized = syncLeaderTransfer2Str(pMsg);
|
char* serialized = syncLeaderTransfer2Str(pMsg);
|
||||||
printf("syncLeaderTransferPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncLeaderTransferPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncLeaderTransferLog(const SyncLeaderTransfer* pMsg) {
|
void syncLeaderTransferLog(const SyncLeaderTransfer* pMsg) {
|
||||||
char* serialized = syncLeaderTransfer2Str(pMsg);
|
char* serialized = syncLeaderTransfer2Str(pMsg);
|
||||||
sTrace("syncLeaderTransferLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncLeaderTransferLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncLeaderTransferLog2(char* s, const SyncLeaderTransfer* pMsg) {
|
void syncLeaderTransferLog2(char* s, const SyncLeaderTransfer* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncLeaderTransfer2Str(pMsg);
|
char* serialized = syncLeaderTransfer2Str(pMsg);
|
||||||
sTrace("syncLeaderTransferLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncLeaderTransferLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3054,28 +3054,28 @@ char* syncReconfigFinish2Str(const SyncReconfigFinish* pMsg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncReconfigFinishPrint(const SyncReconfigFinish* pMsg) {
|
void syncReconfigFinishPrint(const SyncReconfigFinish* pMsg) {
|
||||||
char* serialized = syncReconfigFinish2Str(pMsg);
|
char* serialized = syncReconfigFinish2Str(pMsg);
|
||||||
printf("syncReconfigFinishPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncReconfigFinishPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncReconfigFinishPrint2(char* s, const SyncReconfigFinish* pMsg) {
|
void syncReconfigFinishPrint2(char* s, const SyncReconfigFinish* pMsg) {
|
||||||
char* serialized = syncReconfigFinish2Str(pMsg);
|
char* serialized = syncReconfigFinish2Str(pMsg);
|
||||||
printf("syncReconfigFinishPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncReconfigFinishPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncReconfigFinishLog(const SyncReconfigFinish* pMsg) {
|
void syncReconfigFinishLog(const SyncReconfigFinish* pMsg) {
|
||||||
char* serialized = syncReconfigFinish2Str(pMsg);
|
char* serialized = syncReconfigFinish2Str(pMsg);
|
||||||
sTrace("syncReconfigFinishLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncReconfigFinishLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncReconfigFinishLog2(char* s, const SyncReconfigFinish* pMsg) {
|
void syncReconfigFinishLog2(char* s, const SyncReconfigFinish* pMsg) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = syncReconfigFinish2Str(pMsg);
|
char* serialized = syncReconfigFinish2Str(pMsg);
|
||||||
sTrace("syncReconfigFinishLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncReconfigFinishLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,85 +447,85 @@ int32_t raftCfgFromStr(const char *s, SRaftCfg *pRaftCfg) {
|
||||||
// for debug ----------------------
|
// for debug ----------------------
|
||||||
void syncCfgPrint(SSyncCfg *pCfg) {
|
void syncCfgPrint(SSyncCfg *pCfg) {
|
||||||
char *serialized = syncCfg2Str(pCfg);
|
char *serialized = syncCfg2Str(pCfg);
|
||||||
printf("syncCfgPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("syncCfgPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncCfgPrint2(char *s, SSyncCfg *pCfg) {
|
void syncCfgPrint2(char *s, SSyncCfg *pCfg) {
|
||||||
char *serialized = syncCfg2Str(pCfg);
|
char *serialized = syncCfg2Str(pCfg);
|
||||||
printf("syncCfgPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("syncCfgPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncCfgLog(SSyncCfg *pCfg) {
|
void syncCfgLog(SSyncCfg *pCfg) {
|
||||||
char *serialized = syncCfg2Str(pCfg);
|
char *serialized = syncCfg2Str(pCfg);
|
||||||
sTrace("syncCfgLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("syncCfgLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncCfgLog2(char *s, SSyncCfg *pCfg) {
|
void syncCfgLog2(char *s, SSyncCfg *pCfg) {
|
||||||
char *serialized = syncCfg2Str(pCfg);
|
char *serialized = syncCfg2Str(pCfg);
|
||||||
sTrace("syncCfgLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncCfgLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncCfgLog3(char *s, SSyncCfg *pCfg) {
|
void syncCfgLog3(char *s, SSyncCfg *pCfg) {
|
||||||
char *serialized = syncCfg2SimpleStr(pCfg);
|
char *serialized = syncCfg2SimpleStr(pCfg);
|
||||||
sTrace("syncCfgLog3 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("syncCfgLog3 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgPrint(SRaftCfg *pCfg) {
|
void raftCfgPrint(SRaftCfg *pCfg) {
|
||||||
char *serialized = raftCfg2Str(pCfg);
|
char *serialized = raftCfg2Str(pCfg);
|
||||||
printf("raftCfgPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("raftCfgPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgPrint2(char *s, SRaftCfg *pCfg) {
|
void raftCfgPrint2(char *s, SRaftCfg *pCfg) {
|
||||||
char *serialized = raftCfg2Str(pCfg);
|
char *serialized = raftCfg2Str(pCfg);
|
||||||
printf("raftCfgPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("raftCfgPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgLog(SRaftCfg *pCfg) {
|
void raftCfgLog(SRaftCfg *pCfg) {
|
||||||
char *serialized = raftCfg2Str(pCfg);
|
char *serialized = raftCfg2Str(pCfg);
|
||||||
sTrace("raftCfgLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("raftCfgLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgLog2(char *s, SRaftCfg *pCfg) {
|
void raftCfgLog2(char *s, SRaftCfg *pCfg) {
|
||||||
char *serialized = raftCfg2Str(pCfg);
|
char *serialized = raftCfg2Str(pCfg);
|
||||||
sTrace("raftCfgLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("raftCfgLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------
|
// ---------
|
||||||
void raftCfgIndexPrint(SRaftCfgIndex *pCfg) {
|
void raftCfgIndexPrint(SRaftCfgIndex *pCfg) {
|
||||||
char *serialized = raftCfgIndex2Str(pCfg);
|
char *serialized = raftCfgIndex2Str(pCfg);
|
||||||
printf("raftCfgIndexPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("raftCfgIndexPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgIndexPrint2(char *s, SRaftCfgIndex *pCfg) {
|
void raftCfgIndexPrint2(char *s, SRaftCfgIndex *pCfg) {
|
||||||
char *serialized = raftCfgIndex2Str(pCfg);
|
char *serialized = raftCfgIndex2Str(pCfg);
|
||||||
printf("raftCfgIndexPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("raftCfgIndexPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgIndexLog(SRaftCfgIndex *pCfg) {
|
void raftCfgIndexLog(SRaftCfgIndex *pCfg) {
|
||||||
char *serialized = raftCfgIndex2Str(pCfg);
|
char *serialized = raftCfgIndex2Str(pCfg);
|
||||||
sTrace("raftCfgIndexLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("raftCfgIndexLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCfgIndexLog2(char *s, SRaftCfgIndex *pCfg) {
|
void raftCfgIndexLog2(char *s, SRaftCfgIndex *pCfg) {
|
||||||
char *serialized = raftCfgIndex2Str(pCfg);
|
char *serialized = raftCfgIndex2Str(pCfg);
|
||||||
sTrace("raftCfgIndexLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("raftCfgIndexLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,28 +418,28 @@ char* raftCache2Str(SRaftEntryHashCache* pCache) {
|
||||||
|
|
||||||
void raftCachePrint(SRaftEntryHashCache* pCache) {
|
void raftCachePrint(SRaftEntryHashCache* pCache) {
|
||||||
char* serialized = raftCache2Str(pCache);
|
char* serialized = raftCache2Str(pCache);
|
||||||
printf("raftCachePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("raftCachePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCachePrint2(char* s, SRaftEntryHashCache* pCache) {
|
void raftCachePrint2(char* s, SRaftEntryHashCache* pCache) {
|
||||||
char* serialized = raftCache2Str(pCache);
|
char* serialized = raftCache2Str(pCache);
|
||||||
printf("raftCachePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("raftCachePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCacheLog(SRaftEntryHashCache* pCache) {
|
void raftCacheLog(SRaftEntryHashCache* pCache) {
|
||||||
char* serialized = raftCache2Str(pCache);
|
char* serialized = raftCache2Str(pCache);
|
||||||
sTrace("raftCacheLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("raftCacheLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftCacheLog2(char* s, SRaftEntryHashCache* pCache) {
|
void raftCacheLog2(char* s, SRaftEntryHashCache* pCache) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = raftCache2Str(pCache);
|
char* serialized = raftCache2Str(pCache);
|
||||||
sTraceLong("raftCacheLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("raftCacheLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -677,28 +677,28 @@ char* raftEntryCache2Str(SRaftEntryCache* pObj) {
|
||||||
|
|
||||||
void raftEntryCachePrint(SRaftEntryCache* pObj) {
|
void raftEntryCachePrint(SRaftEntryCache* pObj) {
|
||||||
char* serialized = raftEntryCache2Str(pObj);
|
char* serialized = raftEntryCache2Str(pObj);
|
||||||
printf("raftEntryCachePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("raftEntryCachePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftEntryCachePrint2(char* s, SRaftEntryCache* pObj) {
|
void raftEntryCachePrint2(char* s, SRaftEntryCache* pObj) {
|
||||||
char* serialized = raftEntryCache2Str(pObj);
|
char* serialized = raftEntryCache2Str(pObj);
|
||||||
printf("raftEntryCachePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("raftEntryCachePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftEntryCacheLog(SRaftEntryCache* pObj) {
|
void raftEntryCacheLog(SRaftEntryCache* pObj) {
|
||||||
char* serialized = raftEntryCache2Str(pObj);
|
char* serialized = raftEntryCache2Str(pObj);
|
||||||
sTrace("raftEntryCacheLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("raftEntryCacheLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftEntryCacheLog2(char* s, SRaftEntryCache* pObj) {
|
void raftEntryCacheLog2(char* s, SRaftEntryCache* pObj) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = raftEntryCache2Str(pObj);
|
char* serialized = raftEntryCache2Str(pObj);
|
||||||
sTraceLong("raftEntryCacheLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("raftEntryCacheLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -440,7 +440,7 @@ SSyncRaftEntry* logStoreGetEntryWithoutLock(SSyncLogStore* pLogStore, SyncIndex
|
||||||
}
|
}
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
sError("failed to read ver since %s. index:%lld", tstrerror(terrno), index);
|
sError("failed to read ver since %s. index:%" PRId64 "", tstrerror(terrno), index);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -675,14 +675,14 @@ SyncIndex logStoreWalCommitVer(SSyncLogStore* pLogStore) {
|
||||||
// for debug -----------------
|
// for debug -----------------
|
||||||
void logStorePrint(SSyncLogStore* pLogStore) {
|
void logStorePrint(SSyncLogStore* pLogStore) {
|
||||||
char* serialized = logStore2Str(pLogStore);
|
char* serialized = logStore2Str(pLogStore);
|
||||||
printf("logStorePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("logStorePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logStorePrint2(char* s, SSyncLogStore* pLogStore) {
|
void logStorePrint2(char* s, SSyncLogStore* pLogStore) {
|
||||||
char* serialized = logStore2Str(pLogStore);
|
char* serialized = logStore2Str(pLogStore);
|
||||||
printf("logStorePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("logStorePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
@ -690,7 +690,7 @@ void logStorePrint2(char* s, SSyncLogStore* pLogStore) {
|
||||||
void logStoreLog(SSyncLogStore* pLogStore) {
|
void logStoreLog(SSyncLogStore* pLogStore) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = logStore2Str(pLogStore);
|
char* serialized = logStore2Str(pLogStore);
|
||||||
sTraceLong("logStoreLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTraceLong("logStoreLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -698,7 +698,7 @@ void logStoreLog(SSyncLogStore* pLogStore) {
|
||||||
void logStoreLog2(char* s, SSyncLogStore* pLogStore) {
|
void logStoreLog2(char* s, SSyncLogStore* pLogStore) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = logStore2Str(pLogStore);
|
char* serialized = logStore2Str(pLogStore);
|
||||||
sTraceLong("logStoreLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTraceLong("logStoreLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -706,28 +706,28 @@ void logStoreLog2(char* s, SSyncLogStore* pLogStore) {
|
||||||
// for debug -----------------
|
// for debug -----------------
|
||||||
void logStoreSimplePrint(SSyncLogStore* pLogStore) {
|
void logStoreSimplePrint(SSyncLogStore* pLogStore) {
|
||||||
char* serialized = logStoreSimple2Str(pLogStore);
|
char* serialized = logStoreSimple2Str(pLogStore);
|
||||||
printf("logStoreSimplePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("logStoreSimplePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logStoreSimplePrint2(char* s, SSyncLogStore* pLogStore) {
|
void logStoreSimplePrint2(char* s, SSyncLogStore* pLogStore) {
|
||||||
char* serialized = logStoreSimple2Str(pLogStore);
|
char* serialized = logStoreSimple2Str(pLogStore);
|
||||||
printf("logStoreSimplePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("logStoreSimplePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logStoreSimpleLog(SSyncLogStore* pLogStore) {
|
void logStoreSimpleLog(SSyncLogStore* pLogStore) {
|
||||||
char* serialized = logStoreSimple2Str(pLogStore);
|
char* serialized = logStoreSimple2Str(pLogStore);
|
||||||
sTrace("logStoreSimpleLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("logStoreSimpleLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logStoreSimpleLog2(char* s, SSyncLogStore* pLogStore) {
|
void logStoreSimpleLog2(char* s, SSyncLogStore* pLogStore) {
|
||||||
if (gRaftDetailLog) {
|
if (gRaftDetailLog) {
|
||||||
char* serialized = logStoreSimple2Str(pLogStore);
|
char* serialized = logStoreSimple2Str(pLogStore);
|
||||||
sTrace("logStoreSimpleLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("logStoreSimpleLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,25 +226,25 @@ char *raftStore2Str(SRaftStore *pRaftStore) {
|
||||||
// for debug -------------------
|
// for debug -------------------
|
||||||
void raftStorePrint(SRaftStore *pObj) {
|
void raftStorePrint(SRaftStore *pObj) {
|
||||||
char *serialized = raftStore2Str(pObj);
|
char *serialized = raftStore2Str(pObj);
|
||||||
printf("raftStorePrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("raftStorePrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftStorePrint2(char *s, SRaftStore *pObj) {
|
void raftStorePrint2(char *s, SRaftStore *pObj) {
|
||||||
char *serialized = raftStore2Str(pObj);
|
char *serialized = raftStore2Str(pObj);
|
||||||
printf("raftStorePrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("raftStorePrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
void raftStoreLog(SRaftStore *pObj) {
|
void raftStoreLog(SRaftStore *pObj) {
|
||||||
char *serialized = raftStore2Str(pObj);
|
char *serialized = raftStore2Str(pObj);
|
||||||
sTrace("raftStoreLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("raftStoreLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raftStoreLog2(char *s, SRaftStore *pObj) {
|
void raftStoreLog2(char *s, SRaftStore *pObj) {
|
||||||
char *serialized = raftStore2Str(pObj);
|
char *serialized = raftStore2Str(pObj);
|
||||||
sTrace("raftStoreLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("raftStoreLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,7 @@ int32_t syncNodeOnRequestVoteReplySnapshotCb(SSyncNode* ths, SyncRequestVoteRepl
|
||||||
if (ths->state == TAOS_SYNC_STATE_CANDIDATE) {
|
if (ths->state == TAOS_SYNC_STATE_CANDIDATE) {
|
||||||
if (ths->pVotesRespond->term != pMsg->term) {
|
if (ths->pVotesRespond->term != pMsg->term) {
|
||||||
char logBuf[128];
|
char logBuf[128];
|
||||||
snprintf(logBuf, sizeof(logBuf), "vote respond error vote-respond-mgr term:%lu, msg term:lu",
|
snprintf(logBuf, sizeof(logBuf), "vote respond error vote-respond-mgr term:%" PRIu64 ", msg term:%" PRIu64 "",
|
||||||
ths->pVotesRespond->term, pMsg->term);
|
ths->pVotesRespond->term, pMsg->term);
|
||||||
syncNodeErrorLog(ths, logBuf);
|
syncNodeErrorLog(ths, logBuf);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -155,4 +155,4 @@ int32_t syncNodeOnRequestVoteReplySnapshotCb(SSyncNode* ths, SyncRequestVoteRepl
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,7 +177,7 @@ void syncRespCleanByTTL(SSyncRespMgr *pObj, int64_t ttl, bool rsp) {
|
||||||
for (int32_t i = 0; i < arraySize; ++i) {
|
for (int32_t i = 0; i < arraySize; ++i) {
|
||||||
uint64_t *pSeqNum = taosArrayGet(delIndexArray, i);
|
uint64_t *pSeqNum = taosArrayGet(delIndexArray, i);
|
||||||
taosHashRemove(pObj->pRespHash, pSeqNum, sizeof(uint64_t));
|
taosHashRemove(pObj->pRespHash, pSeqNum, sizeof(uint64_t));
|
||||||
sDebug("vgId:%d, resp mgr clean by ttl, seq:%d", pSyncNode->vgId, *pSeqNum);
|
sDebug("vgId:%d, resp mgr clean by ttl, seq:%" PRId64 "", pSyncNode->vgId, *pSeqNum);
|
||||||
}
|
}
|
||||||
taosArrayDestroy(delIndexArray);
|
taosArrayDestroy(delIndexArray);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ int32_t syncNodeOnTimeoutCb(SSyncNode* ths, SyncTimeout* pMsg) {
|
||||||
} else if (pMsg->timeoutType == SYNC_TIMEOUT_ELECTION) {
|
} else if (pMsg->timeoutType == SYNC_TIMEOUT_ELECTION) {
|
||||||
if (atomic_load_64(&ths->electTimerLogicClockUser) <= pMsg->logicClock) {
|
if (atomic_load_64(&ths->electTimerLogicClockUser) <= pMsg->logicClock) {
|
||||||
++(ths->electTimerCounter);
|
++(ths->electTimerCounter);
|
||||||
sTrace("vgId:%d, sync timer, type:election count:%d, electTimerLogicClockUser:%ld", ths->vgId,
|
sTrace("vgId:%d, sync timer, type:election count:%" PRId64 ", electTimerLogicClockUser:%" PRId64 "", ths->vgId,
|
||||||
ths->electTimerCounter, ths->electTimerLogicClockUser);
|
ths->electTimerCounter, ths->electTimerLogicClockUser);
|
||||||
syncNodeElect(ths);
|
syncNodeElect(ths);
|
||||||
}
|
}
|
||||||
|
@ -99,8 +99,8 @@ int32_t syncNodeOnTimeoutCb(SSyncNode* ths, SyncTimeout* pMsg) {
|
||||||
} else if (pMsg->timeoutType == SYNC_TIMEOUT_HEARTBEAT) {
|
} else if (pMsg->timeoutType == SYNC_TIMEOUT_HEARTBEAT) {
|
||||||
if (atomic_load_64(&ths->heartbeatTimerLogicClockUser) <= pMsg->logicClock) {
|
if (atomic_load_64(&ths->heartbeatTimerLogicClockUser) <= pMsg->logicClock) {
|
||||||
++(ths->heartbeatTimerCounter);
|
++(ths->heartbeatTimerCounter);
|
||||||
sTrace("vgId:%d, sync timer, type:replicate count:%d, heartbeatTimerLogicClockUser:%ld", ths->vgId,
|
sTrace("vgId:%d, sync timer, type:replicate count:%" PRId64 ", heartbeatTimerLogicClockUser:%" PRId64 "",
|
||||||
ths->heartbeatTimerCounter, ths->heartbeatTimerLogicClockUser);
|
ths->vgId, ths->heartbeatTimerCounter, ths->heartbeatTimerLogicClockUser);
|
||||||
syncNodeReplicate(ths, true);
|
syncNodeReplicate(ths, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -108,4 +108,4 @@ int32_t syncNodeOnTimeoutCb(SSyncNode* ths, SyncTimeout* pMsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,27 +138,27 @@ char *voteGranted2Str(SVotesGranted *pVotesGranted) {
|
||||||
// for debug -------------------
|
// for debug -------------------
|
||||||
void voteGrantedPrint(SVotesGranted *pObj) {
|
void voteGrantedPrint(SVotesGranted *pObj) {
|
||||||
char *serialized = voteGranted2Str(pObj);
|
char *serialized = voteGranted2Str(pObj);
|
||||||
printf("voteGrantedPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("voteGrantedPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void voteGrantedPrint2(char *s, SVotesGranted *pObj) {
|
void voteGrantedPrint2(char *s, SVotesGranted *pObj) {
|
||||||
char *serialized = voteGranted2Str(pObj);
|
char *serialized = voteGranted2Str(pObj);
|
||||||
printf("voteGrantedPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("voteGrantedPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void voteGrantedLog(SVotesGranted *pObj) {
|
void voteGrantedLog(SVotesGranted *pObj) {
|
||||||
char *serialized = voteGranted2Str(pObj);
|
char *serialized = voteGranted2Str(pObj);
|
||||||
sTrace("voteGrantedLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("voteGrantedLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void voteGrantedLog2(char *s, SVotesGranted *pObj) {
|
void voteGrantedLog2(char *s, SVotesGranted *pObj) {
|
||||||
char *serialized = voteGranted2Str(pObj);
|
char *serialized = voteGranted2Str(pObj);
|
||||||
sTrace("voteGrantedLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("voteGrantedLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,26 +267,26 @@ char *votesRespond2Str(SVotesRespond *pVotesRespond) {
|
||||||
// for debug -------------------
|
// for debug -------------------
|
||||||
void votesRespondPrint(SVotesRespond *pObj) {
|
void votesRespondPrint(SVotesRespond *pObj) {
|
||||||
char *serialized = votesRespond2Str(pObj);
|
char *serialized = votesRespond2Str(pObj);
|
||||||
printf("votesRespondPrint | len:%" PRIu64 " | %s \n", strlen(serialized), serialized);
|
printf("votesRespondPrint | len:%lu | %s \n", strlen(serialized), serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void votesRespondPrint2(char *s, SVotesRespond *pObj) {
|
void votesRespondPrint2(char *s, SVotesRespond *pObj) {
|
||||||
char *serialized = votesRespond2Str(pObj);
|
char *serialized = votesRespond2Str(pObj);
|
||||||
printf("votesRespondPrint2 | len:%" PRIu64 " | %s | %s \n", strlen(serialized), s, serialized);
|
printf("votesRespondPrint2 | len:%lu | %s | %s \n", strlen(serialized), s, serialized);
|
||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void votesRespondLog(SVotesRespond *pObj) {
|
void votesRespondLog(SVotesRespond *pObj) {
|
||||||
char *serialized = votesRespond2Str(pObj);
|
char *serialized = votesRespond2Str(pObj);
|
||||||
sTrace("votesRespondLog | len:%" PRIu64 " | %s", strlen(serialized), serialized);
|
sTrace("votesRespondLog | len:%lu | %s", strlen(serialized), serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
void votesRespondLog2(char *s, SVotesRespond *pObj) {
|
void votesRespondLog2(char *s, SVotesRespond *pObj) {
|
||||||
char *serialized = votesRespond2Str(pObj);
|
char *serialized = votesRespond2Str(pObj);
|
||||||
sTrace("votesRespondLog2 | len:%" PRIu64 " | %s | %s", strlen(serialized), s, serialized);
|
sTrace("votesRespondLog2 | len:%lu | %s | %s", strlen(serialized), s, serialized);
|
||||||
taosMemoryFree(serialized);
|
taosMemoryFree(serialized);
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ int32_t tdbPostCommit(TDB *pDb, TXN *pTxn) {
|
||||||
for (pPager = pDb->pgrList; pPager; pPager = pPager->pNext) {
|
for (pPager = pDb->pgrList; pPager; pPager = pPager->pNext) {
|
||||||
ret = tdbPagerPostCommit(pPager, pTxn);
|
ret = tdbPagerPostCommit(pPager, pTxn);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
tdbError("failed to commit pager since %s. dbName:%s, txnId:%d", tstrerror(terrno), pDb->dbName, pTxn->txnId);
|
tdbError("failed to commit pager since %s. dbName:%s, txnId:%" PRId64, tstrerror(terrno), pDb->dbName, pTxn->txnId);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -301,8 +301,8 @@ static SPage *tdbPCacheFetchImpl(SPCache *pCache, const SPgid *pPgid, TXN *pTxn)
|
||||||
pPage->pPager = pPageH->pPager;
|
pPage->pPager = pPageH->pPager;
|
||||||
|
|
||||||
memcpy(pPage->pData, pPageH->pData, pPage->pageSize);
|
memcpy(pPage->pData, pPageH->pData, pPage->pageSize);
|
||||||
// tdbDebug("pcache/pPageH: %p %d %p %p %d", pPageH, pPageH->pPageHdr - pPageH->pData, pPageH->xCellSize, pPage,
|
// tdbDebug("pcache/pPageH: %p %ld %p %p %u", pPageH, pPageH->pPageHdr - pPageH->pData, pPageH->xCellSize, pPage,
|
||||||
// TDB_PAGE_PGNO(pPageH));
|
// TDB_PAGE_PGNO(pPageH));
|
||||||
tdbPageInit(pPage, pPageH->pPageHdr - pPageH->pData, pPageH->xCellSize);
|
tdbPageInit(pPage, pPageH->pPageHdr - pPageH->pData, pPageH->xCellSize);
|
||||||
pPage->kLen = pPageH->kLen;
|
pPage->kLen = pPageH->kLen;
|
||||||
pPage->vLen = pPageH->vLen;
|
pPage->vLen = pPageH->vLen;
|
||||||
|
|
|
@ -553,8 +553,8 @@ static int tdbPagerWritePageToJournal(SPager *pPager, SPage *pPage) {
|
||||||
|
|
||||||
ret = tdbOsWrite(pPager->jfd, pPage->pData, pPage->pageSize);
|
ret = tdbOsWrite(pPager->jfd, pPage->pData, pPage->pageSize);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
tdbError("failed to write page data due to %s. file:%s, pageSize:%d", strerror(errno), pPager->jFileName,
|
tdbError("failed to write page data due to %s. file:%s, pageSize:%ld", strerror(errno), pPager->jFileName,
|
||||||
pPage->pageSize);
|
(long)pPage->pageSize);
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ int tdbTbOpen(const char *tbname, int keyLen, int valLen, tdb_cmpr_fn_t keyCmprF
|
||||||
if (strcmp(TDB_MAINDB_NAME, tbname)) {
|
if (strcmp(TDB_MAINDB_NAME, tbname)) {
|
||||||
pPager = tdbEnvGetPager(pEnv, fFullName);
|
pPager = tdbEnvGetPager(pEnv, fFullName);
|
||||||
if (!pPager) {
|
if (!pPager) {
|
||||||
|
tdbOsFree(pTb);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +73,7 @@ int tdbTbOpen(const char *tbname, int keyLen, int valLen, tdb_cmpr_fn_t keyCmprF
|
||||||
if (pPager == NULL) {
|
if (pPager == NULL) {
|
||||||
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pPager);
|
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pPager);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
tdbOsFree(pTb);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,6 +96,7 @@ int tdbTbOpen(const char *tbname, int keyLen, int valLen, tdb_cmpr_fn_t keyCmprF
|
||||||
snprintf(fFullName, TDB_FILENAME_LEN, "%s/%s", pEnv->dbName, tbname);
|
snprintf(fFullName, TDB_FILENAME_LEN, "%s/%s", pEnv->dbName, tbname);
|
||||||
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pPager);
|
ret = tdbPagerOpen(pEnv->pCache, fFullName, &pPager);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
tdbOsFree(pTb);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,11 +101,11 @@ void* rpcMallocCont(int64_t contLen) {
|
||||||
int64_t size = contLen + TRANS_MSG_OVERHEAD;
|
int64_t size = contLen + TRANS_MSG_OVERHEAD;
|
||||||
char* start = taosMemoryCalloc(1, size);
|
char* start = taosMemoryCalloc(1, size);
|
||||||
if (start == NULL) {
|
if (start == NULL) {
|
||||||
tError("failed to malloc msg, size:%d", size);
|
tError("failed to malloc msg, size:%" PRId64, size);
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
tTrace("malloc mem:%p size:%d", start, size);
|
tTrace("malloc mem:%p size:%" PRId64, start, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
return start + sizeof(STransMsgHead);
|
return start + sizeof(STransMsgHead);
|
||||||
|
|
|
@ -134,7 +134,7 @@ int main(int argc, char *argv[]) {
|
||||||
dDebugFlag = rpcDebugFlag;
|
dDebugFlag = rpcDebugFlag;
|
||||||
uDebugFlag = rpcDebugFlag;
|
uDebugFlag = rpcDebugFlag;
|
||||||
} else {
|
} else {
|
||||||
printf("\nusage:% [options] \n", argv[0]);
|
printf("\nusage:%s [options] \n", argv[0]);
|
||||||
printf(" [-p port]: server port number, default is:%d\n", rpcInit.localPort);
|
printf(" [-p port]: server port number, default is:%d\n", rpcInit.localPort);
|
||||||
printf(" [-t threads]: number of rpc threads, default is:%d\n", rpcInit.numOfThreads);
|
printf(" [-t threads]: number of rpc threads, default is:%d\n", rpcInit.numOfThreads);
|
||||||
printf(" [-s sessions]: number of sessions, default is:%d\n", rpcInit.sessions);
|
printf(" [-s sessions]: number of sessions, default is:%d\n", rpcInit.sessions);
|
||||||
|
|
|
@ -69,8 +69,8 @@ static FORCE_INLINE int64_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx) {
|
||||||
int64_t walCkHeadSz = sizeof(SWalCkHead);
|
int64_t walCkHeadSz = sizeof(SWalCkHead);
|
||||||
int64_t end = fileSize;
|
int64_t end = fileSize;
|
||||||
int64_t offset = 0;
|
int64_t offset = 0;
|
||||||
int32_t capacity = 0;
|
int64_t capacity = 0;
|
||||||
int32_t readSize = 0;
|
int64_t readSize = 0;
|
||||||
char* buf = NULL;
|
char* buf = NULL;
|
||||||
char* found = NULL;
|
char* found = NULL;
|
||||||
bool firstTrial = pFileInfo->fileSize < fileSize;
|
bool firstTrial = pFileInfo->fileSize < fileSize;
|
||||||
|
@ -200,8 +200,8 @@ static FORCE_INLINE int64_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx) {
|
||||||
|
|
||||||
// truncate file
|
// truncate file
|
||||||
if (lastEntryEndOffset != fileSize) {
|
if (lastEntryEndOffset != fileSize) {
|
||||||
wWarn("vgId:%d, repair meta truncate file %s to %ld, orig size %ld", pWal->cfg.vgId, fnameStr, lastEntryEndOffset,
|
wWarn("vgId:%d, repair meta truncate file %s to %" PRId64 ", orig size %" PRId64, pWal->cfg.vgId, fnameStr,
|
||||||
fileSize);
|
lastEntryEndOffset, fileSize);
|
||||||
if (taosFtruncateFile(pFile, lastEntryEndOffset) < 0) {
|
if (taosFtruncateFile(pFile, lastEntryEndOffset) < 0) {
|
||||||
wError("failed to truncate file due to %s. file:%s", strerror(errno), fnameStr);
|
wError("failed to truncate file due to %s. file:%s", strerror(errno), fnameStr);
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
@ -464,7 +464,7 @@ int walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) {
|
||||||
// determine the last valid entry end, i.e. offset
|
// determine the last valid entry end, i.e. offset
|
||||||
while ((offset -= sizeof(SWalIdxEntry)) >= 0) {
|
while ((offset -= sizeof(SWalIdxEntry)) >= 0) {
|
||||||
if (taosLSeekFile(pIdxFile, offset, SEEK_SET) < 0) {
|
if (taosLSeekFile(pIdxFile, offset, SEEK_SET) < 0) {
|
||||||
wError("vgId:%d, failed to seek file due to %s. offset:" PRId64 ", file:%s", pWal->cfg.vgId, strerror(errno),
|
wError("vgId:%d, failed to seek file due to %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, strerror(errno),
|
||||||
offset, fnameStr);
|
offset, fnameStr);
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
goto _err;
|
goto _err;
|
||||||
|
@ -511,7 +511,7 @@ int walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) {
|
||||||
|
|
||||||
// rebuild idx file
|
// rebuild idx file
|
||||||
if (taosLSeekFile(pIdxFile, 0, SEEK_END) < 0) {
|
if (taosLSeekFile(pIdxFile, 0, SEEK_END) < 0) {
|
||||||
wError("vgId:%d, failed to seek file due to %s. offset:" PRId64 ", file:%s", pWal->cfg.vgId, strerror(errno),
|
wError("vgId:%d, failed to seek file due to %s. offset:%" PRId64 ", file:%s", pWal->cfg.vgId, strerror(errno),
|
||||||
offset, fnameStr);
|
offset, fnameStr);
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
goto _err;
|
goto _err;
|
||||||
|
@ -528,7 +528,7 @@ int walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) {
|
||||||
idxEntry.offset, fLogNameStr);
|
idxEntry.offset, fLogNameStr);
|
||||||
goto _err;
|
goto _err;
|
||||||
}
|
}
|
||||||
wWarn("vgId:%d wal idx append new entry %ld %ld", pWal->cfg.vgId, idxEntry.ver, idxEntry.offset);
|
wWarn("vgId:%d wal idx append new entry %" PRId64 " %" PRId64, pWal->cfg.vgId, idxEntry.ver, idxEntry.offset);
|
||||||
if (taosWriteFile(pIdxFile, &idxEntry, sizeof(SWalIdxEntry)) < 0) {
|
if (taosWriteFile(pIdxFile, &idxEntry, sizeof(SWalIdxEntry)) < 0) {
|
||||||
wError("vgId:%d, failed to append file since %s. file:%s", pWal->cfg.vgId, terrstr(), fnameStr);
|
wError("vgId:%d, failed to append file since %s. file:%s", pWal->cfg.vgId, terrstr(), fnameStr);
|
||||||
goto _err;
|
goto _err;
|
||||||
|
|
|
@ -126,7 +126,7 @@ static int64_t walReadSeekFilePos(SWalReader *pReader, int64_t fileFirstVer, int
|
||||||
wError("vgId:%d, failed to read idx file, since %s", pReader->pWal->cfg.vgId, terrstr());
|
wError("vgId:%d, failed to read idx file, since %s", pReader->pWal->cfg.vgId, terrstr());
|
||||||
} else {
|
} else {
|
||||||
terrno = TSDB_CODE_WAL_FILE_CORRUPTED;
|
terrno = TSDB_CODE_WAL_FILE_CORRUPTED;
|
||||||
wError("vgId:%d, read idx file incompletely, read bytes %" PRId64 ", bytes should be %" PRIu64,
|
wError("vgId:%d, read idx file incompletely, read bytes %" PRId64 ", bytes should be %ld",
|
||||||
pReader->pWal->cfg.vgId, ret, sizeof(SWalIdxEntry));
|
pReader->pWal->cfg.vgId, ret, sizeof(SWalIdxEntry));
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -182,7 +182,7 @@ int32_t walReadSeekVerImpl(SWalReader *pReader, int64_t ver) {
|
||||||
tmpInfo.firstVer = ver;
|
tmpInfo.firstVer = ver;
|
||||||
SWalFileInfo *pRet = taosArraySearch(pWal->fileInfoSet, &tmpInfo, compareWalFileInfo, TD_LE);
|
SWalFileInfo *pRet = taosArraySearch(pWal->fileInfoSet, &tmpInfo, compareWalFileInfo, TD_LE);
|
||||||
if (pRet == NULL) {
|
if (pRet == NULL) {
|
||||||
wError("failed to find WAL log file with ver:%lld", ver);
|
wError("failed to find WAL log file with ver:%" PRId64, ver);
|
||||||
terrno = TSDB_CODE_WAL_INVALID_VER;
|
terrno = TSDB_CODE_WAL_INVALID_VER;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,7 +419,7 @@ static int32_t walWriteIndex(SWal *pWal, int64_t ver, int64_t offset) {
|
||||||
|
|
||||||
int64_t size = taosWriteFile(pWal->pIdxFile, &entry, sizeof(SWalIdxEntry));
|
int64_t size = taosWriteFile(pWal->pIdxFile, &entry, sizeof(SWalIdxEntry));
|
||||||
if (size != sizeof(SWalIdxEntry)) {
|
if (size != sizeof(SWalIdxEntry)) {
|
||||||
wError("vgId:%d, failed to write idx entry due to %s. ver:%lld", pWal->cfg.vgId, strerror(errno), ver);
|
wError("vgId:%d, failed to write idx entry due to %s. ver:%" PRId64, pWal->cfg.vgId, strerror(errno), ver);
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -449,7 +449,7 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy
|
||||||
|
|
||||||
pWal->writeHead.cksumHead = walCalcHeadCksum(&pWal->writeHead);
|
pWal->writeHead.cksumHead = walCalcHeadCksum(&pWal->writeHead);
|
||||||
pWal->writeHead.cksumBody = walCalcBodyCksum(body, bodyLen);
|
pWal->writeHead.cksumBody = walCalcBodyCksum(body, bodyLen);
|
||||||
wDebug("vgId:%d, wal write log %ld, msgType: %s", pWal->cfg.vgId, index, TMSG_INFO(msgType));
|
wDebug("vgId:%d, wal write log %" PRId64 ", msgType: %s", pWal->cfg.vgId, index, TMSG_INFO(msgType));
|
||||||
|
|
||||||
code = walWriteIndex(pWal, index, offset);
|
code = walWriteIndex(pWal, index, offset);
|
||||||
if (code < 0) {
|
if (code < 0) {
|
||||||
|
@ -484,16 +484,16 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy
|
||||||
END:
|
END:
|
||||||
// recover in a reverse order
|
// recover in a reverse order
|
||||||
if (taosFtruncateFile(pWal->pLogFile, offset) < 0) {
|
if (taosFtruncateFile(pWal->pLogFile, offset) < 0) {
|
||||||
wFatal("vgId:%d, failed to ftruncate logfile to offset:%lld during recovery due to %s", pWal->cfg.vgId, offset,
|
wFatal("vgId:%d, failed to ftruncate logfile to offset:%" PRId64 " during recovery due to %s", pWal->cfg.vgId,
|
||||||
strerror(errno));
|
offset, strerror(errno));
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
ASSERT(0 && "failed to recover from error");
|
ASSERT(0 && "failed to recover from error");
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t idxOffset = (index - pFileInfo->firstVer) * sizeof(SWalIdxEntry);
|
int64_t idxOffset = (index - pFileInfo->firstVer) * sizeof(SWalIdxEntry);
|
||||||
if (taosFtruncateFile(pWal->pIdxFile, idxOffset) < 0) {
|
if (taosFtruncateFile(pWal->pIdxFile, idxOffset) < 0) {
|
||||||
wFatal("vgId:%d, failed to ftruncate idxfile to offset:%lld during recovery due to %s", pWal->cfg.vgId, idxOffset,
|
wFatal("vgId:%d, failed to ftruncate idxfile to offset:%" PRId64 "during recovery due to %s", pWal->cfg.vgId,
|
||||||
strerror(errno));
|
idxOffset, strerror(errno));
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
ASSERT(0 && "failed to recover from error");
|
ASSERT(0 && "failed to recover from error");
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,7 +227,7 @@ static FORCE_INLINE void taosCacheReleaseNode(SCacheObj *pCacheObj, SCacheNode *
|
||||||
|
|
||||||
static FORCE_INLINE STrashElem *doRemoveElemInTrashcan(SCacheObj *pCacheObj, STrashElem *pElem) {
|
static FORCE_INLINE STrashElem *doRemoveElemInTrashcan(SCacheObj *pCacheObj, STrashElem *pElem) {
|
||||||
if (pElem->pData->signature != pElem->pData) {
|
if (pElem->pData->signature != pElem->pData) {
|
||||||
uWarn("key:sig:0x%" PRIx64 " %p data has been released, ignore", pElem->pData->signature, pElem->pData);
|
uWarn("key:sig:0x%" PRIx64 " %p data has been released, ignore", (int64_t)pElem->pData->signature, pElem->pData);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -944,6 +944,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) {
|
||||||
if (taosReadFile(pFile, buf, fileSize) <= 0) {
|
if (taosReadFile(pFile, buf, fileSize) <= 0) {
|
||||||
taosCloseFile(&pFile);
|
taosCloseFile(&pFile);
|
||||||
uError("load json file error: %s", filepath);
|
uError("load json file error: %s", filepath);
|
||||||
|
taosMemoryFreeClear(buf);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
taosCloseFile(&pFile);
|
taosCloseFile(&pFile);
|
||||||
|
@ -953,6 +954,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) {
|
||||||
if (jsonParseError != NULL) {
|
if (jsonParseError != NULL) {
|
||||||
uError("load json file parse error: %s", jsonParseError);
|
uError("load json file parse error: %s", jsonParseError);
|
||||||
}
|
}
|
||||||
|
taosMemoryFreeClear(buf);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
taosMemoryFreeClear(buf);
|
taosMemoryFreeClear(buf);
|
||||||
|
|
|
@ -445,5 +445,7 @@
|
||||||
./test.sh -f tsim/tag/set.sim
|
./test.sh -f tsim/tag/set.sim
|
||||||
./test.sh -f tsim/tag/smallint.sim
|
./test.sh -f tsim/tag/smallint.sim
|
||||||
./test.sh -f tsim/tag/tinyint.sim
|
./test.sh -f tsim/tag/tinyint.sim
|
||||||
|
./test.sh -f tsim/tag/drop_tag.sim
|
||||||
|
|
||||||
|
|
||||||
#======================b1-end===============
|
#======================b1-end===============
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
|
||||||
|
$dbPrefix = ta_bib_db
|
||||||
|
$tbPrefix = ta_bib_tb
|
||||||
|
$mtPrefix = ta_bib_mt
|
||||||
|
$tbNum = 10
|
||||||
|
$rowNum = 20
|
||||||
|
$totalNum = 200
|
||||||
|
|
||||||
|
print =============== step1
|
||||||
|
$i = 0
|
||||||
|
$db = $dbPrefix . $i
|
||||||
|
$mt = $mtPrefix . $i
|
||||||
|
|
||||||
|
sql drop database if exists $db
|
||||||
|
|
||||||
|
sql create database $db vgroups 1
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
print ======== test bigint
|
||||||
|
sql create table if not exists st( ts timestamp, order_id bigint) tags (account_id bigint)
|
||||||
|
|
||||||
|
sql create table t1 using st tags(111)
|
||||||
|
sql create table t2 using st tags(222)
|
||||||
|
|
||||||
|
sql insert into t1(ts, order_id) values(1648791213001, 1)
|
||||||
|
sql insert into t2(ts, order_id) values(1648791213002, 2)
|
||||||
|
sql select account_id,count(*) from st where account_id = 111 group by account_id
|
||||||
|
|
||||||
|
sql drop table t1
|
||||||
|
|
||||||
|
sql create table t1 using st tags(111)
|
||||||
|
|
||||||
|
sql insert into t1(ts, order_id) values(1648791213001, 1)
|
||||||
|
sql insert into t2(ts, order_id) values(1648791213002, 2)
|
||||||
|
|
||||||
|
sql select account_id,count(*) from st where account_id = 111 group by account_id
|
||||||
|
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ======== test varchar
|
||||||
|
|
||||||
|
sql drop stable st
|
||||||
|
|
||||||
|
sql create table if not exists st( ts timestamp, order_id bigint) tags (account_id binary(16))
|
||||||
|
|
||||||
|
sql create table t1 using st tags("aac")
|
||||||
|
sql create table t2 using st tags("abc")
|
||||||
|
|
||||||
|
sql insert into t1(ts, order_id) values(1648791213001, 1)
|
||||||
|
sql insert into t2(ts, order_id) values(1648791213002, 2)
|
||||||
|
sql select account_id,count(*) from st where account_id = "aac" group by account_id
|
||||||
|
|
||||||
|
sql drop table t1
|
||||||
|
|
||||||
|
sql create table t1 using st tags("aac")
|
||||||
|
|
||||||
|
sql insert into t1(ts, order_id) values(1648791213001, 1)
|
||||||
|
sql insert into t2(ts, order_id) values(1648791213002, 2)
|
||||||
|
|
||||||
|
sql select account_id,count(*) from st where account_id = "aac" group by account_id
|
||||||
|
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ====== test empty table
|
||||||
|
sql drop table t1
|
||||||
|
|
||||||
|
sql select account_id,count(*) from st where account_id = "aac" group by account_id
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
sql drop database $db
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
|
||||||
|
import taos
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import socket
|
||||||
|
import os
|
||||||
|
import platform
|
||||||
|
if platform.system().lower() == 'windows':
|
||||||
|
import wexpect as taosExpect
|
||||||
|
else:
|
||||||
|
import pexpect as taosExpect
|
||||||
|
|
||||||
|
from util.log import *
|
||||||
|
from util.sql import *
|
||||||
|
from util.cases import *
|
||||||
|
from util.dnodes import *
|
||||||
|
|
||||||
|
class TDTestCase:
|
||||||
|
#updatecfgDict = {'clientCfg': {'serverPort': 7080, 'firstEp': 'trd02:7080', 'secondEp':'trd02:7080'},\
|
||||||
|
# 'serverPort': 7080, 'firstEp': 'trd02:7080'}
|
||||||
|
# hostname = socket.gethostname()
|
||||||
|
# if (platform.system().lower() == 'windows' and not tdDnodes.dnodes[0].remoteIP == ""):
|
||||||
|
# try:
|
||||||
|
# config = eval(tdDnodes.dnodes[0].remoteIP)
|
||||||
|
# hostname = config["host"]
|
||||||
|
# except Exception:
|
||||||
|
# hostname = tdDnodes.dnodes[0].remoteIP
|
||||||
|
# serverPort = '7080'
|
||||||
|
# rpcDebugFlagVal = '143'
|
||||||
|
# clientCfgDict = {'serverPort': '', 'firstEp': '', 'secondEp':'', 'rpcDebugFlag':'135', 'fqdn':''}
|
||||||
|
# clientCfgDict["serverPort"] = serverPort
|
||||||
|
# clientCfgDict["firstEp"] = hostname + ':' + serverPort
|
||||||
|
# clientCfgDict["secondEp"] = hostname + ':' + serverPort
|
||||||
|
# clientCfgDict["rpcDebugFlag"] = rpcDebugFlagVal
|
||||||
|
# clientCfgDict["fqdn"] = hostname
|
||||||
|
|
||||||
|
# updatecfgDict = {'clientCfg': {}, 'serverPort': '', 'firstEp': '', 'secondEp':'', 'rpcDebugFlag':'135', 'fqdn':''}
|
||||||
|
# updatecfgDict["clientCfg"] = clientCfgDict
|
||||||
|
# updatecfgDict["serverPort"] = serverPort
|
||||||
|
# updatecfgDict["firstEp"] = hostname + ':' + serverPort
|
||||||
|
# updatecfgDict["secondEp"] = hostname + ':' + serverPort
|
||||||
|
# updatecfgDict["fqdn"] = hostname
|
||||||
|
|
||||||
|
# print ("===================: ", updatecfgDict)
|
||||||
|
|
||||||
|
def init(self, conn, logSql):
|
||||||
|
tdLog.debug(f"start to excute {__file__}")
|
||||||
|
tdSql.init(conn.cursor())
|
||||||
|
|
||||||
|
def getBuildPath(self):
|
||||||
|
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
if ("community" in selfPath):
|
||||||
|
projPath = selfPath[:selfPath.find("community")]
|
||||||
|
else:
|
||||||
|
projPath = selfPath[:selfPath.find("tests")]
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(projPath):
|
||||||
|
if ("taosd" in files or "taosd.exe" in files):
|
||||||
|
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||||
|
if ("packaging" not in rootRealPath):
|
||||||
|
buildPath = root[:len(root) - len("/build/bin")]
|
||||||
|
break
|
||||||
|
return buildPath
|
||||||
|
|
||||||
|
def get_process_pid(self,processname):
|
||||||
|
#origin artical link:https://blog.csdn.net/weixin_45623536/article/details/122099062
|
||||||
|
process_info_list = []
|
||||||
|
process = os.popen('ps -A | grep %s'% processname)
|
||||||
|
process_info = process.read()
|
||||||
|
for i in process_info.split(' '):
|
||||||
|
if i != "":
|
||||||
|
process_info_list.append(i)
|
||||||
|
print(process_info_list)
|
||||||
|
if len(process_info_list) != 0 :
|
||||||
|
pid = int(process_info_list[0])
|
||||||
|
else :
|
||||||
|
pid = 0
|
||||||
|
return pid
|
||||||
|
|
||||||
|
def checkAndstopPro(self,processName,startAction):
|
||||||
|
i = 1
|
||||||
|
count = 10
|
||||||
|
for i in range(count):
|
||||||
|
taosdPid=self.get_process_pid(processName)
|
||||||
|
if taosdPid != 0 and taosdPid != "" :
|
||||||
|
tdLog.info("stop taosd %s ,kill pid :%s "%(startAction,taosdPid))
|
||||||
|
os.system("kill -9 %d"%taosdPid)
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
tdLog.info( "wait start taosd ,times: %d "%i)
|
||||||
|
sleep
|
||||||
|
i+= 1
|
||||||
|
else :
|
||||||
|
tdLog.exit("taosd %s is not running "%startAction)
|
||||||
|
|
||||||
|
def taosdCommandStop(self,startAction,taosdCmdRun):
|
||||||
|
processName="taosd"
|
||||||
|
taosdCmd = taosdCmdRun + startAction
|
||||||
|
tdLog.printNoPrefix("%s"%taosdCmd)
|
||||||
|
os.system(f"nohup {taosdCmd} & ")
|
||||||
|
self.checkAndstopPro(processName,startAction)
|
||||||
|
|
||||||
|
def taosdCommandExe(self,startAction,taosdCmdRun):
|
||||||
|
taosdCmd = taosdCmdRun + startAction
|
||||||
|
tdLog.printNoPrefix("%s"%taosdCmd)
|
||||||
|
os.system(f"{taosdCmd}")
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
tdSql.prepare()
|
||||||
|
# time.sleep(2)
|
||||||
|
tdSql.query("create user testpy pass 'testpy'")
|
||||||
|
|
||||||
|
#hostname = socket.gethostname()
|
||||||
|
#tdLog.info ("hostname: %s" % hostname)
|
||||||
|
|
||||||
|
buildPath = self.getBuildPath()
|
||||||
|
if (buildPath == ""):
|
||||||
|
tdLog.exit("taosd not found!")
|
||||||
|
else:
|
||||||
|
tdLog.info("taosd found in %s" % buildPath)
|
||||||
|
cfgPath = buildPath + "/../sim/psim/cfg"
|
||||||
|
taosdCfgPath = buildPath + "/../sim/dnode1/cfg"
|
||||||
|
|
||||||
|
|
||||||
|
taosdCmdRun= buildPath + '/build/bin/taosd'
|
||||||
|
tdLog.info("cfgPath: %s" % cfgPath)
|
||||||
|
# keyDict['h'] = self.hostname
|
||||||
|
# keyDict['c'] = cfgPath
|
||||||
|
# keyDict['P'] = self.serverPort
|
||||||
|
tdDnodes.stop(1)
|
||||||
|
|
||||||
|
startAction = " --help"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction = " -h"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction=" -a jsonFile:./taosdCaseTmp.json"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
os.system("echo \'{\"queryPolicy\":\"3\"}\' > taosdCaseTmp.json")
|
||||||
|
self.taosdCommandStop(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction = " -a jsonFile:./taosdCaseTmp.json -C "
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
os.system("rm -rf taosdCaseTmp.json")
|
||||||
|
|
||||||
|
startAction = " -c " + taosdCfgPath
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandStop(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction = " -s"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction = " -e TAOS_QUERY_POLICY=2 "
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandStop(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
|
||||||
|
startAction=" -E taosdCaseTmp/.env"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
os.system(" mkdir -p taosdCaseTmp/.env ")
|
||||||
|
os.system("echo \'TAOS_QUERY_POLICY=3\' > taosdCaseTmp/.env ")
|
||||||
|
self.taosdCommandStop(startAction,taosdCmdRun)
|
||||||
|
os.system(" rm -rf taosdCaseTmp/.env ")
|
||||||
|
|
||||||
|
startAction = " -V"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
startAction = " -k"
|
||||||
|
tdLog.printNoPrefix("================================ parameter: %s"%startAction)
|
||||||
|
self.taosdCommandExe(startAction,taosdCmdRun)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
tdSql.close()
|
||||||
|
tdLog.success(f"{__file__} successfully executed")
|
||||||
|
|
||||||
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
tdCases.addWindows(__file__, TDTestCase())
|
|
@ -61,7 +61,7 @@ class TDTestCase:
|
||||||
# only for 1 mnode
|
# only for 1 mnode
|
||||||
mnode_name = k
|
mnode_name = k
|
||||||
|
|
||||||
if v[2] =='leader':
|
if v[2] in ['leader', 'leader*']:
|
||||||
is_leader=True
|
is_leader=True
|
||||||
|
|
||||||
if count==1 and is_leader:
|
if count==1 and is_leader:
|
||||||
|
@ -109,12 +109,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader', 'leader*', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -115,12 +115,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader','leader*','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -116,12 +116,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader','leader*','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -115,12 +115,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader','leader*','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -116,12 +116,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader','leader*','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -119,12 +119,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','follower']:
|
if role in ['leader','leader*','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0]=="leader":
|
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue