From 2ddf03fd74c7d6899d815d8de16119d4488eabec Mon Sep 17 00:00:00 2001 From: kailixu Date: Tue, 23 Jul 2024 00:43:33 +0800 Subject: [PATCH] enh: return error code --- include/util/tutil.h | 9 +++++++++ source/dnode/mnode/impl/inc/mndShow.h | 8 +++----- source/dnode/mnode/impl/src/mndCluster.c | 12 ++++++------ source/dnode/mnode/impl/src/mndUser.c | 9 +++++---- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/include/util/tutil.h b/include/util/tutil.h index 5af79dfc49..0e79480bfe 100644 --- a/include/util/tutil.h +++ b/include/util/tutil.h @@ -176,6 +176,15 @@ static FORCE_INLINE int32_t taosGetTbHashVal(const char *tbname, int32_t tblen, } \ } while (0) +#define TAOS_CHECK_EXIT(CMD) \ + do { \ + code = (CMD); \ + if (code < TSDB_CODE_SUCCESS) { \ + lino = __LINE__; \ + goto _exit; \ + } \ + } while (0) + #define TAOS_UNUSED(expr) (void)(expr) #ifdef __cplusplus diff --git a/source/dnode/mnode/impl/inc/mndShow.h b/source/dnode/mnode/impl/inc/mndShow.h index c47b5d1e7b..25268c52bb 100644 --- a/source/dnode/mnode/impl/inc/mndShow.h +++ b/source/dnode/mnode/impl/inc/mndShow.h @@ -23,14 +23,12 @@ extern "C" { #endif -#define COL_DATA_SET_VAL_GOTO(pData, isNull, pObj, LINO) \ +#define COL_DATA_SET_VAL_GOTO(pData, isNull, pObj, LABEL) \ do { \ if ((code = colDataSetVal(pColInfo, numOfRows, (pData), (isNull))) != 0) { \ if (pObj) sdbRelease(pSdb, (pObj)); \ - if (LINO) { \ - *((int32_t *)(LINO)) = __LINE__; \ - } \ - goto _OVER; \ + lino = __LINE__; \ + goto LABEL; \ } \ } while (0) diff --git a/source/dnode/mnode/impl/src/mndCluster.c b/source/dnode/mnode/impl/src/mndCluster.c index 366e4543fe..6a6285e68e 100644 --- a/source/dnode/mnode/impl/src/mndCluster.c +++ b/source/dnode/mnode/impl/src/mndCluster.c @@ -302,31 +302,31 @@ static int32_t mndRetrieveClusters(SRpcMsg *pMsg, SShowObj *pShow, SSDataBlock * cols = 0; SColumnInfoData *pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - COL_DATA_SET_VAL_GOTO((const char *)&pCluster->id, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO((const char *)&pCluster->id, false, pCluster, _OVER); char buf[tListLen(pCluster->name) + VARSTR_HEADER_SIZE] = {0}; STR_WITH_MAXSIZE_TO_VARSTR(buf, pCluster->name, pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - COL_DATA_SET_VAL_GOTO(buf, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO(buf, false, pCluster, _OVER); int32_t upTime = mndGetClusterUpTimeImp(pCluster); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - COL_DATA_SET_VAL_GOTO((const char *)&upTime, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO((const char *)&upTime, false, pCluster, _OVER); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - COL_DATA_SET_VAL_GOTO((const char *)&pCluster->createdTime, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO((const char *)&pCluster->createdTime, false, pCluster, _OVER); char ver[12] = {0}; STR_WITH_MAXSIZE_TO_VARSTR(ver, tsVersionName, pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - COL_DATA_SET_VAL_GOTO((const char *)ver, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO((const char *)ver, false, pCluster, _OVER); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); if (tsExpireTime <= 0) { colDataSetNULL(pColInfo, numOfRows); } else { - COL_DATA_SET_VAL_GOTO((const char *)&tsExpireTime, false, pCluster, &lino); + COL_DATA_SET_VAL_GOTO((const char *)&tsExpireTime, false, pCluster, _OVER); } sdbRelease(pSdb, pCluster); diff --git a/source/dnode/mnode/impl/src/mndUser.c b/source/dnode/mnode/impl/src/mndUser.c index 8e7ad30332..a7ba8a846e 100644 --- a/source/dnode/mnode/impl/src/mndUser.c +++ b/source/dnode/mnode/impl/src/mndUser.c @@ -1718,10 +1718,11 @@ static int32_t mndUserActionUpdate(SSdb *pSdb, SUserObj *pOld, SUserObj *pNew) { } int32_t mndAcquireUser(SMnode *pMnode, const char *userName, SUserObj **ppUser) { - int32_t code = 0; - SSdb *pSdb = pMnode->pSdb; - SUserObj *pUser = sdbAcquire(pSdb, SDB_USER, userName); - if (pUser == NULL) { + int32_t code = 0; + SSdb *pSdb = pMnode->pSdb; + + *ppUser = sdbAcquire(pSdb, SDB_USER, userName); + if (*ppUser == NULL) { if (code == TSDB_CODE_SDB_OBJ_NOT_THERE) { code = TSDB_CODE_MND_USER_NOT_EXIST; } else {