enh: support drop table with uid

This commit is contained in:
kailixu 2024-09-19 19:03:06 +08:00
parent 6f0fafdc92
commit 87339ac8fb
2 changed files with 7 additions and 12 deletions

View File

@ -55,7 +55,7 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
SMetaReader mer1 = {0}; SMetaReader mer1 = {0};
SMetaReader mer2 = {0}; SMetaReader mer2 = {0};
char tableFName[TSDB_TABLE_FNAME_LEN]; char tableFName[TSDB_TABLE_FNAME_LEN];
bool optTbUid = false; bool reqTbUid = false;
SRpcMsg rpcMsg = {0}; SRpcMsg rpcMsg = {0};
int32_t code = 0; int32_t code = 0;
int32_t rspLen = 0; int32_t rspLen = 0;
@ -69,12 +69,12 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
goto _exit4; goto _exit4;
} }
if (infoReq.option == REQ_OPT_TBUID) optTbUid = true; if (infoReq.option == REQ_OPT_TBUID) reqTbUid = true;
metaRsp.dbId = pVnode->config.dbId; metaRsp.dbId = pVnode->config.dbId;
(void)strcpy(metaRsp.tbName, infoReq.tbName); (void)strcpy(metaRsp.tbName, infoReq.tbName);
(void)memcpy(metaRsp.dbFName, infoReq.dbFName, sizeof(metaRsp.dbFName)); (void)memcpy(metaRsp.dbFName, infoReq.dbFName, sizeof(metaRsp.dbFName));
if (!optTbUid) { if (!reqTbUid) {
TAOS_UNUSED(sprintf(tableFName, "%s.%s", infoReq.dbFName, infoReq.tbName)); TAOS_UNUSED(sprintf(tableFName, "%s.%s", infoReq.dbFName, infoReq.tbName));
code = vnodeValidateTableHash(pVnode, tableFName); code = vnodeValidateTableHash(pVnode, tableFName);
if (code) { if (code) {
@ -84,22 +84,16 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
// query meta // query meta
metaReaderDoInit(&mer1, pVnode->pMeta, META_READER_LOCK); metaReaderDoInit(&mer1, pVnode->pMeta, META_READER_LOCK);
if (optTbUid) { if (reqTbUid) {
uint64_t tbUid = taosStr2UInt64(infoReq.tbName, NULL, 10); uint64_t tbUid = taosStr2UInt64(infoReq.tbName, NULL, 10);
if (errno == ERANGE || tbUid == 0) { if (errno == ERANGE || tbUid == 0) {
code = TSDB_CODE_TDB_TABLE_NOT_EXIST; code = TSDB_CODE_TDB_TABLE_NOT_EXIST;
goto _exit3; goto _exit3;
} }
char tbName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0}; char tbName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
if (metaGetTableNameByUid(pVnode, tbUid, tbName) < 0) { TAOS_CHECK_GOTO(metaGetTableNameByUid(pVnode, tbUid, tbName), NULL, _exit3);
code = terrno;
goto _exit3;
}
tstrncpy(metaRsp.tbName, tbName + VARSTR_HEADER_SIZE, TSDB_TABLE_NAME_LEN); tstrncpy(metaRsp.tbName, tbName + VARSTR_HEADER_SIZE, TSDB_TABLE_NAME_LEN);
if (metaGetTableEntryByName(&mer1, tbName + VARSTR_HEADER_SIZE) < 0) { TAOS_CHECK_GOTO(metaGetTableEntryByName(&mer1, tbName + VARSTR_HEADER_SIZE), NULL, _exit3);
code = terrno;
goto _exit3;
}
} else if (metaGetTableEntryByName(&mer1, infoReq.tbName) < 0) { } else if (metaGetTableEntryByName(&mer1, infoReq.tbName) < 0) {
code = terrno; code = terrno;
goto _exit3; goto _exit3;

View File

@ -981,6 +981,7 @@ bool updateTireValue(int type, bool autoFill) {
return true; return true;
} }
taosThreadMutexUnlock(&tiresMutex); taosThreadMutexUnlock(&tiresMutex);
return false; return false;
} }