From 16065e2a2d3f72d08fe2c9868b136027fb0b224b Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 19 Apr 2024 16:36:11 +0800 Subject: [PATCH] fix:move err msg to tmq interface --- include/util/taoserror.h | 1 + source/client/src/clientTmq.c | 7 ++++++- source/util/src/terror.c | 9 ++------- utils/test/c/tmq_taosx_ci.c | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/util/taoserror.h b/include/util/taoserror.h index fe6f3f53e9..48aeb4a073 100644 --- a/include/util/taoserror.h +++ b/include/util/taoserror.h @@ -35,6 +35,7 @@ const char* terrstr(); #define ERR_MSG_LEN 256 +char* taosGetErrMsgReturn(); char* taosGetErrMsg(); int32_t* taosGetErrno(); #define terrno (*taosGetErrno()) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index df5f8e2e00..5015399ab9 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -2182,7 +2182,12 @@ const char* tmq_err2str(int32_t err) { } else if (err == -1) { return "fail"; } else { - return tstrerror(err); + if(*(taosGetErrMsg()) == 0){ + return tstrerror(err); + } else{ + snprintf(taosGetErrMsgReturn(), ERR_MSG_LEN, "%s,detail:%s", tstrerror(err), taosGetErrMsg()); + return (const char*)taosGetErrMsgReturn(); + } } } diff --git a/source/util/src/terror.c b/source/util/src/terror.c index c373d29236..94f660bc29 100644 --- a/source/util/src/terror.c +++ b/source/util/src/terror.c @@ -32,6 +32,7 @@ static threadlocal char tsErrMsgReturn[ERR_MSG_LEN] = {0}; int32_t* taosGetErrno() { return &tsErrno; } char* taosGetErrMsg() { return tsErrMsgDetail; } +char* taosGetErrMsgReturn() { return tsErrMsgReturn; } #ifdef TAOS_ERROR_C #define TAOS_DEFINE_ERROR(name, msg) {.val = (name), .str = (msg)}, @@ -796,13 +797,7 @@ const char* tstrerror(int32_t err) { } else if (err < val) { e = mid; } else if (err == val) { - if(strlen(tsErrMsgDetail) == 0){ - return errors[mid].str; - } else{ - memset(tsErrMsgReturn, 0, ERR_MSG_LEN); - snprintf(tsErrMsgReturn, ERR_MSG_LEN, "%s,detail:%s", errors[mid].str, tsErrMsgDetail); - return (const char*)tsErrMsgReturn; - } + return errors[mid].str; } else { break; } diff --git a/utils/test/c/tmq_taosx_ci.c b/utils/test/c/tmq_taosx_ci.c index d4300adaf5..8e9a67eb41 100644 --- a/utils/test/c/tmq_taosx_ci.c +++ b/utils/test/c/tmq_taosx_ci.c @@ -1006,7 +1006,7 @@ void testDetailError(){ raw.raw_type = 2; int32_t code = tmq_write_raw((TAOS *)1, raw); ASSERT(code); - const char *err = taos_errstr(NULL); + const char *err = tmq_err2str(code); char* tmp = strstr(err, "Invalid parameters,detail:taos:0x1 or data"); ASSERT(tmp != NULL); }