提交 b3167ae6 编写于 作者: dengyihao's avatar dengyihao

avoid sma and tag index name conflict

上级 55a93c96
...@@ -28,7 +28,7 @@ typedef struct SSIdx { ...@@ -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
} }
......
...@@ -417,7 +417,7 @@ static int32_t mndProcessCreateIdxReq(SRpcMsg *pReq) { ...@@ -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) { ...@@ -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;
} }
......
...@@ -26,10 +26,12 @@ static void *mndGetIdx(SMnode *pMnode, char *name, int type) { ...@@ -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) { ...@@ -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;
......
...@@ -737,7 +737,7 @@ static int32_t mndProcessCreateSmaReq(SRpcMsg *pReq) { ...@@ -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) { ...@@ -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 ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册