Merge pull request #26685 from taosdata/opti/TD-31017
fix:[TD-31017]process return value in clientRawBlockWrite.c
This commit is contained in:
commit
acafca8841
|
@ -335,7 +335,7 @@ SSchema createSchema(int8_t type, int32_t bytes, col_id_t colId, const char* nam
|
||||||
|
|
||||||
void destroyQueryExecRes(SExecResult* pRes);
|
void destroyQueryExecRes(SExecResult* pRes);
|
||||||
int32_t dataConverToStr(char* str, int type, void* buf, int32_t bufSize, int32_t* len);
|
int32_t dataConverToStr(char* str, int type, void* buf, int32_t bufSize, int32_t* len);
|
||||||
char* parseTagDatatoJson(void* p);
|
void parseTagDatatoJson(void* p, char** jsonStr);
|
||||||
int32_t cloneTableMeta(STableMeta* pSrc, STableMeta** pDst);
|
int32_t cloneTableMeta(STableMeta* pSrc, STableMeta** pDst);
|
||||||
void getColumnTypeFromMeta(STableMeta* pMeta, char* pName, ETableColumnType* pType);
|
void getColumnTypeFromMeta(STableMeta* pMeta, char* pName, ETableColumnType* pType);
|
||||||
int32_t cloneDbVgInfo(SDBVgInfo* pSrc, SDBVgInfo** pDst);
|
int32_t cloneDbVgInfo(SDBVgInfo* pSrc, SDBVgInfo** pDst);
|
||||||
|
|
|
@ -53,7 +53,7 @@ int32_t taosGetErrSize();
|
||||||
#define terrln (*taosGetErrln())
|
#define terrln (*taosGetErrln())
|
||||||
|
|
||||||
#define SET_ERROR_MSG(MSG, ...) \
|
#define SET_ERROR_MSG(MSG, ...) \
|
||||||
snprintf(terrMsg, ERR_MSG_LEN, MSG, ##__VA_ARGS__)
|
(void)snprintf(terrMsg, ERR_MSG_LEN, MSG, ##__VA_ARGS__)
|
||||||
|
|
||||||
#define TSDB_CODE_SUCCESS 0
|
#define TSDB_CODE_SUCCESS 0
|
||||||
#define TSDB_CODE_FAILED -1 // unknown or needn't tell detail error
|
#define TSDB_CODE_FAILED -1 // unknown or needn't tell detail error
|
||||||
|
|
|
@ -2007,7 +2007,8 @@ static int32_t doConvertJson(SReqResultInfo* pResultInfo, int32_t numOfCols, int
|
||||||
sprintf(varDataVal(dst), "%s", TSDB_DATA_NULL_STR_L);
|
sprintf(varDataVal(dst), "%s", TSDB_DATA_NULL_STR_L);
|
||||||
varDataSetLen(dst, strlen(varDataVal(dst)));
|
varDataSetLen(dst, strlen(varDataVal(dst)));
|
||||||
} else if (tTagIsJson(data)) {
|
} else if (tTagIsJson(data)) {
|
||||||
char* jsonString = parseTagDatatoJson(data);
|
char* jsonString = NULL;
|
||||||
|
parseTagDatatoJson(data, &jsonString);
|
||||||
STR_TO_VARSTR(dst, jsonString);
|
STR_TO_VARSTR(dst, jsonString);
|
||||||
taosMemoryFree(jsonString);
|
taosMemoryFree(jsonString);
|
||||||
} else if (jsonInnerType == TSDB_DATA_TYPE_NCHAR) { // value -> "value"
|
} else if (jsonInnerType == TSDB_DATA_TYPE_NCHAR) { // value -> "value"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -23,11 +23,11 @@ TARGET_LINK_LIBRARIES(
|
||||||
PUBLIC os util common transport parser catalog scheduler function gtest taos_static qcom geometry
|
PUBLIC os util common transport parser catalog scheduler function gtest taos_static qcom geometry
|
||||||
)
|
)
|
||||||
|
|
||||||
ADD_EXECUTABLE(clientMonitorTest clientMonitorTests.cpp)
|
#ADD_EXECUTABLE(clientMonitorTest clientMonitorTests.cpp)
|
||||||
TARGET_LINK_LIBRARIES(
|
#TARGET_LINK_LIBRARIES(
|
||||||
clientMonitorTest
|
# clientMonitorTest
|
||||||
PUBLIC os util common transport monitor parser catalog scheduler function gtest taos_static qcom executor
|
# PUBLIC os util common transport monitor parser catalog scheduler function gtest taos_static qcom executor
|
||||||
)
|
#)
|
||||||
|
|
||||||
TARGET_INCLUDE_DIRECTORIES(
|
TARGET_INCLUDE_DIRECTORIES(
|
||||||
clientTest
|
clientTest
|
||||||
|
@ -47,11 +47,11 @@ TARGET_INCLUDE_DIRECTORIES(
|
||||||
PRIVATE "${TD_SOURCE_DIR}/source/client/inc"
|
PRIVATE "${TD_SOURCE_DIR}/source/client/inc"
|
||||||
)
|
)
|
||||||
|
|
||||||
TARGET_INCLUDE_DIRECTORIES(
|
#TARGET_INCLUDE_DIRECTORIES(
|
||||||
clientMonitorTest
|
# clientMonitorTest
|
||||||
PUBLIC "${TD_SOURCE_DIR}/include/client/"
|
# PUBLIC "${TD_SOURCE_DIR}/include/client/"
|
||||||
PRIVATE "${TD_SOURCE_DIR}/source/client/inc"
|
# PRIVATE "${TD_SOURCE_DIR}/source/client/inc"
|
||||||
)
|
#)
|
||||||
|
|
||||||
add_test(
|
add_test(
|
||||||
NAME smlTest
|
NAME smlTest
|
||||||
|
|
|
@ -10828,7 +10828,9 @@ int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) {
|
||||||
if (tDecodeI32(pDecoder, &size) < 0) return -1;
|
if (tDecodeI32(pDecoder, &size) < 0) return -1;
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
|
pRsp->batchMetaReq = taosArrayInit(size, POINTER_BYTES);
|
||||||
|
if (!pRsp->batchMetaReq) return -1;
|
||||||
pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
|
pRsp->batchMetaLen = taosArrayInit(size, sizeof(int32_t));
|
||||||
|
if (!pRsp->batchMetaLen) return -1;
|
||||||
for (int32_t i = 0; i < size; i++) {
|
for (int32_t i = 0; i < size; i++) {
|
||||||
void *pCreate = NULL;
|
void *pCreate = NULL;
|
||||||
uint64_t len = 0;
|
uint64_t len = 0;
|
||||||
|
|
|
@ -446,7 +446,8 @@ int32_t ctgGetTbTag(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTableName,
|
||||||
CTG_ERR_JRET(TSDB_CODE_OUT_OF_MEMORY);
|
CTG_ERR_JRET(TSDB_CODE_OUT_OF_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
char* pJson = parseTagDatatoJson(pTag);
|
char* pJson = NULL;
|
||||||
|
parseTagDatatoJson(pTag, &pJson);
|
||||||
STagVal tagVal;
|
STagVal tagVal;
|
||||||
tagVal.cid = 0;
|
tagVal.cid = 0;
|
||||||
tagVal.type = TSDB_DATA_TYPE_JSON;
|
tagVal.type = TSDB_DATA_TYPE_JSON;
|
||||||
|
|
|
@ -2079,7 +2079,8 @@ int32_t ctgHandleGetTbTagRsp(SCtgTaskReq* tReq, int32_t reqType, const SDataBuf*
|
||||||
CTG_ERR_JRET(TSDB_CODE_OUT_OF_MEMORY);
|
CTG_ERR_JRET(TSDB_CODE_OUT_OF_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
char* pJson = parseTagDatatoJson(pTag);
|
char* pJson = NULL;
|
||||||
|
parseTagDatatoJson(pTag, &pJson);
|
||||||
STagVal tagVal;
|
STagVal tagVal;
|
||||||
tagVal.cid = 0;
|
tagVal.cid = 0;
|
||||||
tagVal.type = TSDB_DATA_TYPE_JSON;
|
tagVal.type = TSDB_DATA_TYPE_JSON;
|
||||||
|
|
|
@ -503,11 +503,10 @@ int32_t appendTagValues(char* buf, int32_t* len, STableCfg* pCfg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tTagIsJson(pTag)) {
|
if (tTagIsJson(pTag)) {
|
||||||
char* pJson = parseTagDatatoJson(pTag);
|
char* pJson = NULL;
|
||||||
if (pJson) {
|
parseTagDatatoJson(pTag, &pJson);
|
||||||
*len += sprintf(buf + VARSTR_HEADER_SIZE + *len, "%s", pJson);
|
*len += sprintf(buf + VARSTR_HEADER_SIZE + *len, "%s", pJson);
|
||||||
taosMemoryFree(pJson);
|
taosMemoryFree(pJson);
|
||||||
}
|
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -966,7 +966,8 @@ static int32_t sysTableUserTagsFillOneTableTags(const SSysTableScanInfo* pInfo,
|
||||||
char* tagVarChar = NULL;
|
char* tagVarChar = NULL;
|
||||||
if (tagData != NULL) {
|
if (tagData != NULL) {
|
||||||
if (tagType == TSDB_DATA_TYPE_JSON) {
|
if (tagType == TSDB_DATA_TYPE_JSON) {
|
||||||
char* tagJson = parseTagDatatoJson(tagData);
|
char* tagJson = NULL;
|
||||||
|
parseTagDatatoJson(tagData, &tagJson);
|
||||||
tagVarChar = taosMemoryMalloc(strlen(tagJson) + VARSTR_HEADER_SIZE);
|
tagVarChar = taosMemoryMalloc(strlen(tagJson) + VARSTR_HEADER_SIZE);
|
||||||
memcpy(varDataVal(tagVarChar), tagJson, strlen(tagJson));
|
memcpy(varDataVal(tagVarChar), tagJson, strlen(tagJson));
|
||||||
varDataSetLen(tagVarChar, strlen(tagJson));
|
varDataSetLen(tagVarChar, strlen(tagJson));
|
||||||
|
|
|
@ -417,7 +417,7 @@ int32_t dataConverToStr(char* str, int type, void* buf, int32_t bufSize, int32_t
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* parseTagDatatoJson(void* p) {
|
void parseTagDatatoJson(void* p, char** jsonStr) {
|
||||||
char* string = NULL;
|
char* string = NULL;
|
||||||
SArray* pTagVals = NULL;
|
SArray* pTagVals = NULL;
|
||||||
cJSON* json = NULL;
|
cJSON* json = NULL;
|
||||||
|
@ -436,6 +436,9 @@ char* parseTagDatatoJson(void* p) {
|
||||||
}
|
}
|
||||||
for (int j = 0; j < nCols; ++j) {
|
for (int j = 0; j < nCols; ++j) {
|
||||||
STagVal* pTagVal = (STagVal*)taosArrayGet(pTagVals, j);
|
STagVal* pTagVal = (STagVal*)taosArrayGet(pTagVals, j);
|
||||||
|
if (pTagVal == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// json key encode by binary
|
// json key encode by binary
|
||||||
tstrncpy(tagJsonKey, pTagVal->pKey, sizeof(tagJsonKey));
|
tstrncpy(tagJsonKey, pTagVal->pKey, sizeof(tagJsonKey));
|
||||||
// json value
|
// json value
|
||||||
|
@ -445,11 +448,16 @@ char* parseTagDatatoJson(void* p) {
|
||||||
if (value == NULL) {
|
if (value == NULL) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
cJSON_AddItemToObject(json, tagJsonKey, value);
|
if(!cJSON_AddItemToObject(json, tagJsonKey, value)){
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
} else if (type == TSDB_DATA_TYPE_NCHAR) {
|
} else if (type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
cJSON* value = NULL;
|
cJSON* value = NULL;
|
||||||
if (pTagVal->nData > 0) {
|
if (pTagVal->nData > 0) {
|
||||||
char* tagJsonValue = taosMemoryCalloc(pTagVal->nData, 1);
|
char* tagJsonValue = taosMemoryCalloc(pTagVal->nData, 1);
|
||||||
|
if (tagJsonValue == NULL) {
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
int32_t length = taosUcs4ToMbs((TdUcs4*)pTagVal->pData, pTagVal->nData, tagJsonValue);
|
int32_t length = taosUcs4ToMbs((TdUcs4*)pTagVal->pData, pTagVal->nData, tagJsonValue);
|
||||||
if (length < 0) {
|
if (length < 0) {
|
||||||
qError("charset:%s to %s. val:%s convert json value failed.", DEFAULT_UNICODE_ENCODEC, tsCharset,
|
qError("charset:%s to %s. val:%s convert json value failed.", DEFAULT_UNICODE_ENCODEC, tsCharset,
|
||||||
|
@ -464,25 +472,34 @@ char* parseTagDatatoJson(void* p) {
|
||||||
}
|
}
|
||||||
} else if (pTagVal->nData == 0) {
|
} else if (pTagVal->nData == 0) {
|
||||||
value = cJSON_CreateString("");
|
value = cJSON_CreateString("");
|
||||||
|
if (value == NULL) {
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
cJSON_AddItemToObject(json, tagJsonKey, value);
|
if(!cJSON_AddItemToObject(json, tagJsonKey, value)){
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
} else if (type == TSDB_DATA_TYPE_DOUBLE) {
|
} else if (type == TSDB_DATA_TYPE_DOUBLE) {
|
||||||
double jsonVd = *(double*)(&pTagVal->i64);
|
double jsonVd = *(double*)(&pTagVal->i64);
|
||||||
cJSON* value = cJSON_CreateNumber(jsonVd);
|
cJSON* value = cJSON_CreateNumber(jsonVd);
|
||||||
if (value == NULL) {
|
if (value == NULL) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
cJSON_AddItemToObject(json, tagJsonKey, value);
|
if(!cJSON_AddItemToObject(json, tagJsonKey, value)){
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
} else if (type == TSDB_DATA_TYPE_BOOL) {
|
} else if (type == TSDB_DATA_TYPE_BOOL) {
|
||||||
char jsonVd = *(char*)(&pTagVal->i64);
|
char jsonVd = *(char*)(&pTagVal->i64);
|
||||||
cJSON* value = cJSON_CreateBool(jsonVd);
|
cJSON* value = cJSON_CreateBool(jsonVd);
|
||||||
if (value == NULL) {
|
if (value == NULL) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
cJSON_AddItemToObject(json, tagJsonKey, value);
|
if(!cJSON_AddItemToObject(json, tagJsonKey, value)){
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
@ -494,7 +511,7 @@ end:
|
||||||
if (string == NULL) {
|
if (string == NULL) {
|
||||||
string = taosStrdup(TSDB_DATA_NULL_STR_L);
|
string = taosStrdup(TSDB_DATA_NULL_STR_L);
|
||||||
}
|
}
|
||||||
return string;
|
*jsonStr = string;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t cloneTableMeta(STableMeta* pSrc, STableMeta** pDst) {
|
int32_t cloneTableMeta(STableMeta* pSrc, STableMeta** pDst) {
|
||||||
|
|
|
@ -171,7 +171,7 @@ int32_t init_env() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// pass NULL return last error code describe
|
// pass NULL return last error code describe
|
||||||
const char* err = taos_errstr(NULL);
|
const char* err = tmq_err2str(error_code);
|
||||||
printf("write_raw_block return code =0x%x err=%s\n", error_code, err);
|
printf("write_raw_block return code =0x%x err=%s\n", error_code, err);
|
||||||
if(strcmp(err, "success") == 0) {
|
if(strcmp(err, "success") == 0) {
|
||||||
printf("expect failed , but error string is success! err=%s\n", err);
|
printf("expect failed , but error string is success! err=%s\n", err);
|
||||||
|
@ -185,7 +185,7 @@ int32_t init_env() {
|
||||||
goto END;
|
goto END;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = taos_errstr(NULL);
|
err = tmq_err2str(error_code);
|
||||||
printf("write_raw_block no exist table return code =0x%x err=%s\n", error_code, err);
|
printf("write_raw_block no exist table return code =0x%x err=%s\n", error_code, err);
|
||||||
if(strcmp(err, "success") == 0) {
|
if(strcmp(err, "success") == 0) {
|
||||||
printf("expect failed write no exist table, but error string is success! err=%s\n", err);
|
printf("expect failed write no exist table, but error string is success! err=%s\n", err);
|
||||||
|
|
Loading…
Reference in New Issue