avoid sma and tag index name conflict

This commit is contained in:
yihaoDeng 2023-02-06 20:40:48 +08:00
parent 55a93c9649
commit b3167ae6a3
4 changed files with 16 additions and 10 deletions

View File

@ -28,7 +28,7 @@ typedef struct SSIdx {
void *pIdx; void *pIdx;
} SSIdx; } SSIdx;
int32_t mndCheckIdxExist(SMnode *pMnode, char *name, int type, SSIdx *idx); int32_t mndAcquireGlobalIdx(SMnode *pMnode, char *name, int type, SSIdx *idx);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -417,7 +417,7 @@ static int32_t mndProcessCreateIdxReq(SRpcMsg *pReq) {
goto _OVER; goto _OVER;
} }
SSIdx idx = {0}; SSIdx idx = {0};
if (mndCheckIdxExist(pMnode, createReq.idxName, SDB_IDX, &idx) == 0) { if (mndAcquireGlobalIdx(pMnode, createReq.idxName, SDB_IDX, &idx) == 0) {
pIdx = idx.pIdx; pIdx = idx.pIdx;
} }
if (pIdx != NULL) { if (pIdx != NULL) {
@ -884,7 +884,7 @@ int32_t mndProcessDropTagIdxReq(SRpcMsg *pReq) {
} }
mInfo("idx:%s, start to drop", req.name); mInfo("idx:%s, start to drop", req.name);
SSIdx idx = {0}; SSIdx idx = {0};
if (mndCheckIdxExist(pMnode, req.name, SDB_IDX, &idx) == 0) { if (mndAcquireGlobalIdx(pMnode, req.name, SDB_IDX, &idx) == 0) {
pIdx = idx.pIdx; pIdx = idx.pIdx;
} }

View File

@ -26,10 +26,12 @@ static void *mndGetIdx(SMnode *pMnode, char *name, int type) {
return pIdx; return pIdx;
} }
int mndCheckIdxExist(SMnode *pMnode, char *name, int type, SSIdx *idx) { int mndAcquireGlobalIdx(SMnode *pMnode, char *name, int type, SSIdx *idx) {
SSmaObj *pSma = mndGetIdx(pMnode, name, SDB_SMA); SSmaObj *pSma = mndGetIdx(pMnode, name, SDB_SMA);
SIdxObj *pIdx = mndGetIdx(pMnode, name, SDB_IDX); SIdxObj *pIdx = mndGetIdx(pMnode, name, SDB_IDX);
terrno = 0;
if (pSma == NULL && pIdx == NULL) return 0; if (pSma == NULL && pIdx == NULL) return 0;
if (pSma != NULL) { if (pSma != NULL) {
@ -40,11 +42,11 @@ int mndCheckIdxExist(SMnode *pMnode, char *name, int type, SSIdx *idx) {
mndReleaseSma(pMnode, pSma); mndReleaseSma(pMnode, pSma);
} }
} else { } else {
if (type == SDB_SMA) { if (type == SDB_IDX) {
mndReleaseIdx(pMnode, pIdx);
} else {
idx->type = SDB_IDX; idx->type = SDB_IDX;
idx->pIdx = pIdx; idx->pIdx = pIdx;
} else {
mndReleaseIdx(pMnode, pIdx);
} }
} }
return 0; return 0;

View File

@ -737,7 +737,7 @@ static int32_t mndProcessCreateSmaReq(SRpcMsg *pReq) {
goto _OVER; goto _OVER;
} }
SSIdx idx = {0}; SSIdx idx = {0};
if (mndCheckIdxExist(pMnode, createReq.name, SDB_SMA, &idx) == 0) { if (mndAcquireGlobalIdx(pMnode, createReq.name, SDB_SMA, &idx) == 0) {
pSma = idx.pIdx; pSma = idx.pIdx;
} }
@ -987,7 +987,7 @@ static int32_t mndProcessDropSmaReq(SRpcMsg *pReq) {
mInfo("sma:%s, start to drop", dropReq.name); mInfo("sma:%s, start to drop", dropReq.name);
SSIdx idx = {0}; SSIdx idx = {0};
if (mndCheckIdxExist(pMnode, dropReq.name, SDB_SMA, &idx) == 0) { if (mndAcquireGlobalIdx(pMnode, dropReq.name, SDB_SMA, &idx) == 0) {
pSma = idx.pIdx; pSma = idx.pIdx;
} }
if (pSma == NULL) { if (pSma == NULL) {
@ -1028,7 +1028,11 @@ static int32_t mndGetSma(SMnode *pMnode, SUserIndexReq *indexReq, SUserIndexRsp
int32_t code = -1; int32_t code = -1;
SSmaObj *pSma = NULL; SSmaObj *pSma = NULL;
pSma = mndAcquireSma(pMnode, indexReq->indexFName); SSIdx idx = {0};
if (0 == mndAcquireGlobalIdx(pMnode, indexReq->indexFName, SDB_SMA, &idx)) {
pSma = idx.pIdx;
}
if (pSma == NULL) { if (pSma == NULL) {
*exist = false; *exist = false;
return 0; return 0;