Merge pull request #28312 from taosdata/feat/anal5
fix: manual testing errors
This commit is contained in:
commit
c92601d5d4
|
@ -138,3 +138,24 @@ tags
|
||||||
*CMakeCache*
|
*CMakeCache*
|
||||||
*CMakeFiles*
|
*CMakeFiles*
|
||||||
.history/
|
.history/
|
||||||
|
*.txt
|
||||||
|
*.tcl
|
||||||
|
*.pc
|
||||||
|
contrib/geos
|
||||||
|
contrib/libuv
|
||||||
|
contrib/pcre2
|
||||||
|
contrib/zlib
|
||||||
|
deps_tmp_CMakeLists.txt.in
|
||||||
|
*.a
|
||||||
|
*.ctest
|
||||||
|
pcre2-config
|
||||||
|
pcre2_test.sh
|
||||||
|
pcre2_grep_test.sh
|
||||||
|
pcre2_chartables.c
|
||||||
|
geos-config
|
||||||
|
config.h
|
||||||
|
pcre2.h
|
||||||
|
zconf.h
|
||||||
|
version.h
|
||||||
|
geos_c.h
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# stub
|
# stub
|
||||||
ExternalProject_Add(stub
|
ExternalProject_Add(stub
|
||||||
GIT_REPOSITORY https://github.com/coolxv/cpp-stub.git
|
GIT_REPOSITORY https://github.com/coolxv/cpp-stub.git
|
||||||
GIT_TAG 5e903b8e
|
GIT_TAG 3137465194014d66a8402941e80d2bccc6346f51
|
||||||
GIT_SUBMODULES "src"
|
GIT_SUBMODULES "src"
|
||||||
SOURCE_DIR "${TD_CONTRIB_DIR}/cpp-stub"
|
SOURCE_DIR "${TD_CONTRIB_DIR}/cpp-stub"
|
||||||
BINARY_DIR "${TD_CONTRIB_DIR}/cpp-stub/src"
|
BINARY_DIR "${TD_CONTRIB_DIR}/cpp-stub/src"
|
||||||
|
|
|
@ -320,7 +320,7 @@ typedef struct SAlterDnodeStmt {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
ENodeType type;
|
ENodeType type;
|
||||||
char url[TSDB_ANAL_ANODE_URL_LEN];
|
char url[TSDB_ANAL_ANODE_URL_LEN + 3];
|
||||||
} SCreateAnodeStmt;
|
} SCreateAnodeStmt;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -482,9 +482,10 @@ int32_t taosGetErrSize();
|
||||||
#define TSDB_CODE_MND_ANODE_TOO_LONG_URL TAOS_DEF_ERROR_CODE(0, 0x0432)
|
#define TSDB_CODE_MND_ANODE_TOO_LONG_URL TAOS_DEF_ERROR_CODE(0, 0x0432)
|
||||||
#define TSDB_CODE_MND_ANODE_INVALID_PROTOCOL TAOS_DEF_ERROR_CODE(0, 0x0433)
|
#define TSDB_CODE_MND_ANODE_INVALID_PROTOCOL TAOS_DEF_ERROR_CODE(0, 0x0433)
|
||||||
#define TSDB_CODE_MND_ANODE_INVALID_VERSION TAOS_DEF_ERROR_CODE(0, 0x0434)
|
#define TSDB_CODE_MND_ANODE_INVALID_VERSION TAOS_DEF_ERROR_CODE(0, 0x0434)
|
||||||
#define TSDB_CODE_MND_ANODE_TOO_MANY_ALGO TAOS_DEF_ERROR_CODE(0, 0x0435)
|
#define TSDB_CODE_MND_ANODE_INVALID_ALGO_TYPE TAOS_DEF_ERROR_CODE(0, 0x0435)
|
||||||
#define TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME TAOS_DEF_ERROR_CODE(0, 0x0436)
|
#define TSDB_CODE_MND_ANODE_TOO_MANY_ALGO TAOS_DEF_ERROR_CODE(0, 0x0436)
|
||||||
#define TSDB_CODE_MND_ANODE_TOO_MANY_ALGO_TYPE TAOS_DEF_ERROR_CODE(0, 0x0437)
|
#define TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME TAOS_DEF_ERROR_CODE(0, 0x0437)
|
||||||
|
#define TSDB_CODE_MND_ANODE_TOO_MANY_ALGO_TYPE TAOS_DEF_ERROR_CODE(0, 0x0438)
|
||||||
|
|
||||||
// analysis
|
// analysis
|
||||||
#define TSDB_CODE_ANAL_URL_RSP_IS_NULL TAOS_DEF_ERROR_CODE(0, 0x0440)
|
#define TSDB_CODE_ANAL_URL_RSP_IS_NULL TAOS_DEF_ERROR_CODE(0, 0x0440)
|
||||||
|
|
|
@ -71,6 +71,7 @@ int32_t tjsonGetObjectValueString(const SJson* pJson, char** pStringValue);
|
||||||
void tjsonGetObjectValueBigInt(const SJson* pJson, int64_t* pVal);
|
void tjsonGetObjectValueBigInt(const SJson* pJson, int64_t* pVal);
|
||||||
void tjsonGetObjectValueDouble(const SJson* pJson, double* pVal);
|
void tjsonGetObjectValueDouble(const SJson* pJson, double* pVal);
|
||||||
int32_t tjsonGetStringValue(const SJson* pJson, const char* pName, char* pVal);
|
int32_t tjsonGetStringValue(const SJson* pJson, const char* pName, char* pVal);
|
||||||
|
int32_t tjsonGetStringValue2(const SJson* pJson, const char* pName, char* pVal, int32_t maxLen);
|
||||||
int32_t tjsonDupStringValue(const SJson* pJson, const char* pName, char** pVal);
|
int32_t tjsonDupStringValue(const SJson* pJson, const char* pName, char** pVal);
|
||||||
int32_t tjsonGetBigIntValue(const SJson* pJson, const char* pName, int64_t* pVal);
|
int32_t tjsonGetBigIntValue(const SJson* pJson, const char* pName, int64_t* pVal);
|
||||||
int32_t tjsonGetIntValue(const SJson* pJson, const char* pName, int32_t* pVal);
|
int32_t tjsonGetIntValue(const SJson* pJson, const char* pName, int32_t* pVal);
|
||||||
|
|
|
@ -43,7 +43,7 @@ static void mndCancelGetNextAnode(SMnode *pMnode, void *pIter);
|
||||||
static int32_t mndRetrieveAnodesFull(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, int32_t rows);
|
static int32_t mndRetrieveAnodesFull(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, int32_t rows);
|
||||||
static void mndCancelGetNextAnodeFull(SMnode *pMnode, void *pIter);
|
static void mndCancelGetNextAnodeFull(SMnode *pMnode, void *pIter);
|
||||||
static int32_t mndGetAnodeAlgoList(const char *url, SAnodeObj *pObj);
|
static int32_t mndGetAnodeAlgoList(const char *url, SAnodeObj *pObj);
|
||||||
static int32_t mndGetAnodeStatus(SAnodeObj *pObj, char *status);
|
static int32_t mndGetAnodeStatus(SAnodeObj *pObj, char *status, int32_t statusLen);
|
||||||
|
|
||||||
int32_t mndInitAnode(SMnode *pMnode) {
|
int32_t mndInitAnode(SMnode *pMnode) {
|
||||||
SSdbTable table = {
|
SSdbTable table = {
|
||||||
|
@ -603,7 +603,7 @@ static int32_t mndRetrieveAnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB
|
||||||
if (code != 0) goto _end;
|
if (code != 0) goto _end;
|
||||||
|
|
||||||
status[0] = 0;
|
status[0] = 0;
|
||||||
if (mndGetAnodeStatus(pObj, status) == 0) {
|
if (mndGetAnodeStatus(pObj, status, 64) == 0) {
|
||||||
STR_TO_VARSTR(buf, status);
|
STR_TO_VARSTR(buf, status);
|
||||||
} else {
|
} else {
|
||||||
STR_TO_VARSTR(buf, "offline");
|
STR_TO_VARSTR(buf, "offline");
|
||||||
|
@ -698,7 +698,7 @@ static int32_t mndDecodeAlgoList(SJson *pJson, SAnodeObj *pObj) {
|
||||||
code = tjsonGetDoubleValue(pJson, "protocol", &tmp);
|
code = tjsonGetDoubleValue(pJson, "protocol", &tmp);
|
||||||
if (code < 0) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (code < 0) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
protocol = (int32_t)(tmp * 1000);
|
protocol = (int32_t)(tmp * 1000);
|
||||||
if (protocol != 100) return TSDB_CODE_MND_ANODE_INVALID_PROTOCOL;
|
if (protocol != 100 && protocol != 1000) return TSDB_CODE_MND_ANODE_INVALID_PROTOCOL;
|
||||||
|
|
||||||
code = tjsonGetDoubleValue(pJson, "version", &tmp);
|
code = tjsonGetDoubleValue(pJson, "version", &tmp);
|
||||||
pObj->version = (int32_t)(tmp * 1000);
|
pObj->version = (int32_t)(tmp * 1000);
|
||||||
|
@ -722,10 +722,10 @@ static int32_t mndDecodeAlgoList(SJson *pJson, SAnodeObj *pObj) {
|
||||||
SJson *detail = tjsonGetArrayItem(details, d);
|
SJson *detail = tjsonGetArrayItem(details, d);
|
||||||
if (detail == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (detail == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
|
|
||||||
code = tjsonGetStringValue(detail, "type", buf);
|
code = tjsonGetStringValue2(detail, "type", buf, sizeof(buf));
|
||||||
if (code < 0) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (code < 0) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
EAnalAlgoType type = taosAnalAlgoInt(buf);
|
EAnalAlgoType type = taosAnalAlgoInt(buf);
|
||||||
if (type < 0 || type >= ANAL_ALGO_TYPE_END) continue;
|
if (type < 0 || type >= ANAL_ALGO_TYPE_END) return TSDB_CODE_MND_ANODE_INVALID_ALGO_TYPE;
|
||||||
|
|
||||||
SJson *algos = tjsonGetObjectItem(detail, "algo");
|
SJson *algos = tjsonGetObjectItem(detail, "algo");
|
||||||
if (algos == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (algos == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
|
@ -734,13 +734,12 @@ static int32_t mndDecodeAlgoList(SJson *pJson, SAnodeObj *pObj) {
|
||||||
SJson *algo = tjsonGetArrayItem(algos, a);
|
SJson *algo = tjsonGetArrayItem(algos, a);
|
||||||
if (algo == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (algo == NULL) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
|
|
||||||
code = tjsonGetStringValue(algo, "name", buf);
|
code = tjsonGetStringValue2(algo, "name", buf, sizeof(buf));
|
||||||
if (code < 0) return TSDB_CODE_INVALID_JSON_FORMAT;
|
if (code < 0) return TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME;
|
||||||
|
|
||||||
SAnodeAlgo algoObj = {0};
|
SAnodeAlgo algoObj = {0};
|
||||||
algoObj.nameLen = strlen(buf) + 1;
|
algoObj.nameLen = strlen(buf) + 1;
|
||||||
if (algoObj.nameLen > TSDB_ANAL_ALGO_NAME_LEN) return TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME;
|
if (algoObj.nameLen <= 1) return TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
if (algoObj.nameLen <= 1) return TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
algoObj.name = taosMemoryCalloc(algoObj.nameLen, 1);
|
algoObj.name = taosMemoryCalloc(algoObj.nameLen, 1);
|
||||||
tstrncpy(algoObj.name, buf, algoObj.nameLen);
|
tstrncpy(algoObj.name, buf, algoObj.nameLen);
|
||||||
|
|
||||||
|
@ -764,7 +763,7 @@ static int32_t mndGetAnodeAlgoList(const char *url, SAnodeObj *pObj) {
|
||||||
TAOS_RETURN(code);
|
TAOS_RETURN(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mndGetAnodeStatus(SAnodeObj *pObj, char *status) {
|
static int32_t mndGetAnodeStatus(SAnodeObj *pObj, char *status, int32_t statusLen) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t protocol = 0;
|
int32_t protocol = 0;
|
||||||
double tmp = 0;
|
double tmp = 0;
|
||||||
|
@ -780,12 +779,12 @@ static int32_t mndGetAnodeStatus(SAnodeObj *pObj, char *status) {
|
||||||
goto _OVER;
|
goto _OVER;
|
||||||
}
|
}
|
||||||
protocol = (int32_t)(tmp * 1000);
|
protocol = (int32_t)(tmp * 1000);
|
||||||
if (protocol != 100) {
|
if (protocol != 100 && protocol != 1000) {
|
||||||
code = TSDB_CODE_MND_ANODE_INVALID_PROTOCOL;
|
code = TSDB_CODE_MND_ANODE_INVALID_PROTOCOL;
|
||||||
goto _OVER;
|
goto _OVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = tjsonGetStringValue(pJson, "status", status);
|
code = tjsonGetStringValue2(pJson, "status", status, statusLen);
|
||||||
if (code < 0) {
|
if (code < 0) {
|
||||||
code = TSDB_CODE_INVALID_JSON_FORMAT;
|
code = TSDB_CODE_INVALID_JSON_FORMAT;
|
||||||
goto _OVER;
|
goto _OVER;
|
||||||
|
|
|
@ -9581,6 +9581,10 @@ static int32_t translateDropUser(STranslateContext* pCxt, SDropUserStmt* pStmt)
|
||||||
static int32_t translateCreateAnode(STranslateContext* pCxt, SCreateAnodeStmt* pStmt) {
|
static int32_t translateCreateAnode(STranslateContext* pCxt, SCreateAnodeStmt* pStmt) {
|
||||||
SMCreateAnodeReq createReq = {0};
|
SMCreateAnodeReq createReq = {0};
|
||||||
createReq.urlLen = strlen(pStmt->url) + 1;
|
createReq.urlLen = strlen(pStmt->url) + 1;
|
||||||
|
if (createReq.urlLen > TSDB_ANAL_ANODE_URL_LEN) {
|
||||||
|
return TSDB_CODE_MND_ANODE_TOO_LONG_URL;
|
||||||
|
}
|
||||||
|
|
||||||
createReq.url = taosMemoryCalloc(createReq.urlLen, 1);
|
createReq.url = taosMemoryCalloc(createReq.urlLen, 1);
|
||||||
if (createReq.url == NULL) {
|
if (createReq.url == NULL) {
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
|
|
@ -349,6 +349,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_ALREADY_EXIST, "Anode already exists"
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_NOT_EXIST, "Anode not there")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_NOT_EXIST, "Anode not there")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_LONG_URL, "Anode too long url")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_LONG_URL, "Anode too long url")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_INVALID_PROTOCOL, "Anode invalid protocol")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_INVALID_PROTOCOL, "Anode invalid protocol")
|
||||||
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_INVALID_ALGO_TYPE, "Anode invalid algorithm type")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_INVALID_VERSION, "Anode invalid version")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_INVALID_VERSION, "Anode invalid version")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_MANY_ALGO, "Anode too many algorithm")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_MANY_ALGO, "Anode too many algorithm")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME, "Anode too long algorithm name")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MND_ANODE_TOO_LONG_ALGO_NAME, "Anode too long algorithm name")
|
||||||
|
|
|
@ -207,6 +207,19 @@ int32_t tjsonGetStringValue(const SJson* pJson, const char* pName, char* pVal) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t tjsonGetStringValue2(const SJson* pJson, const char* pName, char* pVal, int32_t maxLen) {
|
||||||
|
char* p = cJSON_GetStringValue(tjsonGetObjectItem((cJSON*)pJson, pName));
|
||||||
|
if (NULL == p) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
int32_t len = strlen(p);
|
||||||
|
if (len >= maxLen-1) {
|
||||||
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
strcpy(pVal, p);
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t tjsonDupStringValue(const SJson* pJson, const char* pName, char** pVal) {
|
int32_t tjsonDupStringValue(const SJson* pJson, const char* pName, char** pVal) {
|
||||||
char* p = cJSON_GetStringValue(tjsonGetObjectItem((cJSON*)pJson, pName));
|
char* p = cJSON_GetStringValue(tjsonGetObjectItem((cJSON*)pJson, pName));
|
||||||
if (NULL == p) {
|
if (NULL == p) {
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
|
|
||||||
,,n,unit-test,bash test.sh
|
,,n,unit-test,bash test.sh
|
||||||
|
|
||||||
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/auto_create_table_json.py
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# army-test
|
# army-test
|
||||||
#
|
#
|
||||||
|
@ -1543,6 +1541,7 @@
|
||||||
,,n,develop-test,python3 ./test.py -f 2-query/ts-range.py
|
,,n,develop-test,python3 ./test.py -f 2-query/ts-range.py
|
||||||
,,n,develop-test,python3 ./test.py -f 2-query/tag_scan.py
|
,,n,develop-test,python3 ./test.py -f 2-query/tag_scan.py
|
||||||
,,n,develop-test,python3 ./test.py -f 2-query/show_create_db.py
|
,,n,develop-test,python3 ./test.py -f 2-query/show_create_db.py
|
||||||
|
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/auto_create_table_json.py
|
||||||
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/custom_col_tag.py
|
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/custom_col_tag.py
|
||||||
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/default_json.py
|
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/default_json.py
|
||||||
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/demo.py
|
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/demo.py
|
||||||
|
|
Loading…
Reference in New Issue