fix: fix drop error
This commit is contained in:
parent
db7dec0347
commit
51755e9783
|
@ -265,8 +265,6 @@ int32_t* taosGetErrno();
|
||||||
// #define TSDB_CODE_MND_INVALID_COLUMN_LENGTH TAOS_DEF_ERROR_CODE(0, 0x0377) // 2.x
|
// #define TSDB_CODE_MND_INVALID_COLUMN_LENGTH TAOS_DEF_ERROR_CODE(0, 0x0377) // 2.x
|
||||||
#define TSDB_CODE_MND_INVALID_FUNC_COMMENT TAOS_DEF_ERROR_CODE(0, 0x0378)
|
#define TSDB_CODE_MND_INVALID_FUNC_COMMENT TAOS_DEF_ERROR_CODE(0, 0x0378)
|
||||||
#define TSDB_CODE_MND_INVALID_FUNC_RETRIEVE TAOS_DEF_ERROR_CODE(0, 0x0379)
|
#define TSDB_CODE_MND_INVALID_FUNC_RETRIEVE TAOS_DEF_ERROR_CODE(0, 0x0379)
|
||||||
#define TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST TAOS_DEF_ERROR_CODE(0, 0x037A)
|
|
||||||
#define TSDB_CODE_MND_TAG_INDEX_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x037B)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -370,6 +368,11 @@ int32_t* taosGetErrno();
|
||||||
#define TSDB_CODE_MND_SMA_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x0481)
|
#define TSDB_CODE_MND_SMA_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x0481)
|
||||||
#define TSDB_CODE_MND_INVALID_SMA_OPTION TAOS_DEF_ERROR_CODE(0, 0x0482)
|
#define TSDB_CODE_MND_INVALID_SMA_OPTION TAOS_DEF_ERROR_CODE(0, 0x0482)
|
||||||
|
|
||||||
|
// mnode-tag-indxe
|
||||||
|
|
||||||
|
#define TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST TAOS_DEF_ERROR_CODE(0, 0x0483)
|
||||||
|
#define TSDB_CODE_MND_TAG_INDEX_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x0484)
|
||||||
|
|
||||||
// dnode
|
// dnode
|
||||||
// #define TSDB_CODE_DND_MSG_NOT_PROCESSED TAOS_DEF_ERROR_CODE(0, 0x0400) // 2.x
|
// #define TSDB_CODE_DND_MSG_NOT_PROCESSED TAOS_DEF_ERROR_CODE(0, 0x0400) // 2.x
|
||||||
// #define TSDB_CODE_DND_OUT_OF_MEMORY TAOS_DEF_ERROR_CODE(0, 0x0401) // 2.x
|
// #define TSDB_CODE_DND_OUT_OF_MEMORY TAOS_DEF_ERROR_CODE(0, 0x0401) // 2.x
|
||||||
|
|
|
@ -420,6 +420,8 @@ static int32_t mndProcessCreateIdxReq(SRpcMsg *pReq) {
|
||||||
SSIdx idx = {0};
|
SSIdx idx = {0};
|
||||||
if (mndAcquireGlobalIdx(pMnode, createReq.idxName, SDB_IDX, &idx) == 0) {
|
if (mndAcquireGlobalIdx(pMnode, createReq.idxName, SDB_IDX, &idx) == 0) {
|
||||||
pIdx = idx.pIdx;
|
pIdx = idx.pIdx;
|
||||||
|
} else {
|
||||||
|
goto _OVER;
|
||||||
}
|
}
|
||||||
if (pIdx != NULL) {
|
if (pIdx != NULL) {
|
||||||
terrno = TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST;
|
terrno = TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST;
|
||||||
|
@ -748,6 +750,8 @@ int32_t mndProcessDropTagIdxReq(SRpcMsg *pReq) {
|
||||||
SSIdx idx = {0};
|
SSIdx idx = {0};
|
||||||
if (mndAcquireGlobalIdx(pMnode, req.name, SDB_IDX, &idx) == 0) {
|
if (mndAcquireGlobalIdx(pMnode, req.name, SDB_IDX, &idx) == 0) {
|
||||||
pIdx = idx.pIdx;
|
pIdx = idx.pIdx;
|
||||||
|
} else {
|
||||||
|
goto _OVER;
|
||||||
}
|
}
|
||||||
if (pIdx == NULL) {
|
if (pIdx == NULL) {
|
||||||
if (req.igNotExists) {
|
if (req.igNotExists) {
|
||||||
|
|
|
@ -40,6 +40,8 @@ int mndAcquireGlobalIdx(SMnode *pMnode, char *name, int type, SSIdx *idx) {
|
||||||
idx->pIdx = pSma;
|
idx->pIdx = pSma;
|
||||||
} else { // type == SDB_IDX
|
} else { // type == SDB_IDX
|
||||||
mndReleaseSma(pMnode, pSma);
|
mndReleaseSma(pMnode, pSma);
|
||||||
|
terrno = TSDB_CODE_MND_SMA_ALREADY_EXIST;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (type == SDB_IDX) {
|
if (type == SDB_IDX) {
|
||||||
|
@ -47,6 +49,8 @@ int mndAcquireGlobalIdx(SMnode *pMnode, char *name, int type, SSIdx *idx) {
|
||||||
idx->pIdx = pIdx;
|
idx->pIdx = pIdx;
|
||||||
} else {
|
} else {
|
||||||
mndReleaseIdx(pMnode, pIdx);
|
mndReleaseIdx(pMnode, pIdx);
|
||||||
|
terrno = TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -57,7 +57,7 @@ static int32_t mndRetrieveIdx(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBloc
|
||||||
|
|
||||||
static int32_t mndProcessDropIdxReq(SRpcMsg *pReq) {
|
static int32_t mndProcessDropIdxReq(SRpcMsg *pReq) {
|
||||||
int ret = mndProcessDropSmaReq(pReq);
|
int ret = mndProcessDropSmaReq(pReq);
|
||||||
if (terrno == TSDB_CODE_MND_SMA_NOT_EXIST) {
|
if (terrno == TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST) {
|
||||||
terrno = 0;
|
terrno = 0;
|
||||||
ret = mndProcessDropTagIdxReq(pReq);
|
ret = mndProcessDropTagIdxReq(pReq);
|
||||||
}
|
}
|
||||||
|
@ -735,6 +735,8 @@ static int32_t mndProcessCreateSmaReq(SRpcMsg *pReq) {
|
||||||
SSIdx idx = {0};
|
SSIdx idx = {0};
|
||||||
if (mndAcquireGlobalIdx(pMnode, createReq.name, SDB_SMA, &idx) == 0) {
|
if (mndAcquireGlobalIdx(pMnode, createReq.name, SDB_SMA, &idx) == 0) {
|
||||||
pSma = idx.pIdx;
|
pSma = idx.pIdx;
|
||||||
|
} else {
|
||||||
|
goto _OVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSma != NULL) {
|
if (pSma != NULL) {
|
||||||
|
@ -985,6 +987,8 @@ static int32_t mndProcessDropSmaReq(SRpcMsg *pReq) {
|
||||||
SSIdx idx = {0};
|
SSIdx idx = {0};
|
||||||
if (mndAcquireGlobalIdx(pMnode, dropReq.name, SDB_SMA, &idx) == 0) {
|
if (mndAcquireGlobalIdx(pMnode, dropReq.name, SDB_SMA, &idx) == 0) {
|
||||||
pSma = idx.pIdx;
|
pSma = idx.pIdx;
|
||||||
|
} else {
|
||||||
|
goto _OVER;
|
||||||
}
|
}
|
||||||
if (pSma == NULL) {
|
if (pSma == NULL) {
|
||||||
if (dropReq.igNotExists) {
|
if (dropReq.igNotExists) {
|
||||||
|
@ -1027,6 +1031,9 @@ static int32_t mndGetSma(SMnode *pMnode, SUserIndexReq *indexReq, SUserIndexRsp
|
||||||
SSIdx idx = {0};
|
SSIdx idx = {0};
|
||||||
if (0 == mndAcquireGlobalIdx(pMnode, indexReq->indexFName, SDB_SMA, &idx)) {
|
if (0 == mndAcquireGlobalIdx(pMnode, indexReq->indexFName, SDB_SMA, &idx)) {
|
||||||
pSma = idx.pIdx;
|
pSma = idx.pIdx;
|
||||||
|
} else {
|
||||||
|
*exist = false;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSma == NULL) {
|
if (pSma == NULL) {
|
||||||
|
|
|
@ -1295,8 +1295,12 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int32_t valid = 0;
|
int32_t valid = 0;
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
static const int8_t TRY_ERROR_LIMIT = 1;
|
static const int8_t TRY_ERROR_LIMIT = 1;
|
||||||
|
|
||||||
|
/// src: [[suid, cid1, type1]....[suid, cid2, type2]....[suid, cid3, type3]...]
|
||||||
|
/// target: [suid, cid2, type2]
|
||||||
do {
|
do {
|
||||||
void *entryKey = NULL, *entryVal = NULL;
|
void *entryKey = NULL, *entryVal = NULL;
|
||||||
int32_t nEntryKey, nEntryVal;
|
int32_t nEntryKey, nEntryVal;
|
||||||
|
@ -1313,6 +1317,7 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
if (p == NULL) break;
|
if (p == NULL) break;
|
||||||
|
|
||||||
if (p->type != pCursor->type || p->suid != pCursor->suid || p->cid != pCursor->cid) {
|
if (p->type != pCursor->type || p->suid != pCursor->suid || p->cid != pCursor->cid) {
|
||||||
|
if (found == true) break;
|
||||||
count++;
|
count++;
|
||||||
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
||||||
if (valid < 0) {
|
if (valid < 0) {
|
||||||
|
@ -1332,6 +1337,7 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
tuid = *(tb_uid_t *)(p->data + tDataTypes[pCursor->type].bytes);
|
tuid = *(tb_uid_t *)(p->data + tDataTypes[pCursor->type].bytes);
|
||||||
}
|
}
|
||||||
taosArrayPush(pUids, &tuid);
|
taosArrayPush(pUids, &tuid);
|
||||||
|
found = true;
|
||||||
} else {
|
} else {
|
||||||
if (param->equal == true) {
|
if (param->equal == true) {
|
||||||
if (count > TRY_ERROR_LIMIT) break;
|
if (count > TRY_ERROR_LIMIT) break;
|
||||||
|
|
|
@ -199,8 +199,8 @@ int32_t sysFilte__TableName(void* arg, SNode* pNode, SArray* result) {
|
||||||
|
|
||||||
SOperatorNode* pOper = (SOperatorNode*)pNode;
|
SOperatorNode* pOper = (SOperatorNode*)pNode;
|
||||||
SValueNode* pVal = (SValueNode*)pOper->pRight;
|
SValueNode* pVal = (SValueNode*)pOper->pRight;
|
||||||
bool reverse = false;
|
|
||||||
bool equal = false;
|
bool reverse = false, equal = false;
|
||||||
__optSysFilter func = optSysGetFilterFunc(pOper->opType, &reverse, &equal);
|
__optSysFilter func = optSysGetFilterFunc(pOper->opType, &reverse, &equal);
|
||||||
if (func == NULL) return -1;
|
if (func == NULL) return -1;
|
||||||
|
|
||||||
|
@ -220,8 +220,7 @@ int32_t sysFilte__CreateTime(void* arg, SNode* pNode, SArray* result) {
|
||||||
SOperatorNode* pOper = (SOperatorNode*)pNode;
|
SOperatorNode* pOper = (SOperatorNode*)pNode;
|
||||||
SValueNode* pVal = (SValueNode*)pOper->pRight;
|
SValueNode* pVal = (SValueNode*)pOper->pRight;
|
||||||
|
|
||||||
bool reverse = false;
|
bool reverse = false, equal = false;
|
||||||
bool equal = false;
|
|
||||||
__optSysFilter func = optSysGetFilterFunc(pOper->opType, &reverse, &equal);
|
__optSysFilter func = optSysGetFilterFunc(pOper->opType, &reverse, &equal);
|
||||||
if (func == NULL) return -1;
|
if (func == NULL) return -1;
|
||||||
|
|
||||||
|
|
|
@ -476,7 +476,7 @@ static int32_t sifDoIndex(SIFParam *left, SIFParam *right, int8_t operType, SIFP
|
||||||
ret = indexJsonSearch(arg->ivtIdx, mtm, output->result);
|
ret = indexJsonSearch(arg->ivtIdx, mtm, output->result);
|
||||||
indexMultiTermQueryDestroy(mtm);
|
indexMultiTermQueryDestroy(mtm);
|
||||||
} else {
|
} else {
|
||||||
bool reverse, equal;
|
bool reverse = false, equal = false;
|
||||||
FilterFunc filterFunc = sifGetFilterFunc(qtype, &reverse, &equal);
|
FilterFunc filterFunc = sifGetFilterFunc(qtype, &reverse, &equal);
|
||||||
|
|
||||||
SMetaFltParam param = {.suid = arg->suid,
|
SMetaFltParam param = {.suid = arg->suid,
|
||||||
|
|
|
@ -7,7 +7,7 @@ print ======== step0
|
||||||
$dbPrefix = ta_3_db
|
$dbPrefix = ta_3_db
|
||||||
$tbPrefix = ta_3_tb
|
$tbPrefix = ta_3_tb
|
||||||
$mtPrefix = ta_3_mt
|
$mtPrefix = ta_3_mt
|
||||||
$tbNum = 101
|
$tbNum = 100
|
||||||
$rowNum = 20
|
$rowNum = 20
|
||||||
$totalNum = 200
|
$totalNum = 200
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ print ======== step0
|
||||||
$dbPrefix = ta_3_db
|
$dbPrefix = ta_3_db
|
||||||
$tbPrefix = ta_3_tb
|
$tbPrefix = ta_3_tb
|
||||||
$mtPrefix = ta_3_mt
|
$mtPrefix = ta_3_mt
|
||||||
$tbNum = 101
|
$tbNum = 1
|
||||||
$rowNum = 20
|
$rowNum = 20
|
||||||
$totalNum = 200
|
$totalNum = 200
|
||||||
|
|
||||||
|
@ -48,10 +48,21 @@ while $i < $tbNum
|
||||||
endw
|
endw
|
||||||
|
|
||||||
|
|
||||||
sql create index ti2 on $mtPrefix (t2)
|
print --> create sma and tag index, global name conflict
|
||||||
|
sql create sma index t2i on $mtPrefix function(max(c1)) interval(6m,10s) sliding(6m);
|
||||||
|
sql_error create index t2i on $mtPrefix (t2)
|
||||||
|
sql drop index t2i
|
||||||
|
|
||||||
|
|
||||||
|
#print --> create tagindex and sma index, global name conflict
|
||||||
|
sql create index t2i on $mtPrefix (t2)
|
||||||
|
sql_error create sma index t2i on $mtPrefix function(max(c1)) interval(6m,10s) sliding(6m);
|
||||||
|
|
||||||
|
sql drop index t2i
|
||||||
|
|
||||||
|
|
||||||
print ==== test name conflict
|
print ==== test name conflict
|
||||||
#
|
|
||||||
sql_error create index ti3 on $mtPrefix(t2)
|
sql_error create index ti3 on $mtPrefix(t2)
|
||||||
|
|
||||||
sql_error create index ti2 on $mtPrefix(t2)
|
sql_error create index ti2 on $mtPrefix(t2)
|
||||||
|
@ -60,22 +71,4 @@ sql_error create index ti2 on $mtPrefix(t3)
|
||||||
sql_error create index ti2 on $mtPrefix(txx)
|
sql_error create index ti2 on $mtPrefix(txx)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print === show index
|
|
||||||
|
|
||||||
sql select * from information_schema.ins_indexes
|
|
||||||
if $rows != 1 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
Loading…
Reference in New Issue