[td-4351]<fix>: suppress error msg if super table is missing.
This commit is contained in:
parent
eecd5c9440
commit
d21beef464
|
@ -315,7 +315,6 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
case TSDB_SQL_DROP_DB: {
|
||||
const char* msg2 = "invalid name";
|
||||
const char* msg3 = "param name too long";
|
||||
const char* msg4 = "table is not super table";
|
||||
|
||||
SStrToken* pzName = taosArrayGet(pInfo->pMiscInfo->a, 0);
|
||||
if ((pInfo->type != TSDB_SQL_DROP_DNODE) && (tscValidateName(pzName) != TSDB_CODE_SUCCESS)) {
|
||||
|
@ -338,14 +337,14 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
}
|
||||
|
||||
if (pInfo->pMiscInfo->tableType == TSDB_SUPER_TABLE) {
|
||||
code = tscGetTableMeta(pSql, pTableMetaInfo);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
return code;
|
||||
}
|
||||
|
||||
if (!UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo)) {
|
||||
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg4);
|
||||
}
|
||||
//// code = tscGetTableMeta(pSql, pTableMetaInfo);
|
||||
//// if (code != TSDB_CODE_SUCCESS) {
|
||||
//// return code;
|
||||
//// }
|
||||
//
|
||||
// if (!UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo)) {
|
||||
// return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg4);
|
||||
// }
|
||||
}
|
||||
|
||||
} else if (pInfo->type == TSDB_SQL_DROP_DNODE) {
|
||||
|
@ -7219,7 +7218,7 @@ int32_t loadAllTableMeta(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
|
||||
if (pTableMeta->id.uid > 0) {
|
||||
if (pTableMeta->tableType == TSDB_CHILD_TABLE) {
|
||||
code = tscCreateTableMetaFromCChildMeta(pTableMeta, name, buf);
|
||||
code = tscCreateTableMetaFromSTableMeta(pTableMeta, name, buf);
|
||||
|
||||
// create the child table meta from super table failed, try load it from mnode
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
|
|
|
@ -1177,6 +1177,7 @@ int32_t tscBuildDropTableMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
|
|||
STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, 0);
|
||||
tNameExtractFullName(&pTableMetaInfo->name, pDropTableMsg->name);
|
||||
|
||||
pDropTableMsg->supertable = (pInfo->pMiscInfo->tableType == TSDB_SUPER_TABLE)? 1:0;
|
||||
pDropTableMsg->igNotExists = pInfo->pMiscInfo->existsCheck ? 1 : 0;
|
||||
pCmd->msgType = TSDB_MSG_TYPE_CM_DROP_TABLE;
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
|
|
@ -294,6 +294,8 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
char name[TSDB_TABLE_FNAME_LEN];
|
||||
// if user specify DROP STABLE, this flag will be set. And an error will be returned if it is not a super table
|
||||
int8_t supertable;
|
||||
int8_t igNotExists;
|
||||
} SCMDropTableMsg;
|
||||
|
||||
|
|
|
@ -966,6 +966,11 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
|
|||
pMsg->rpcMsg.ahandle, pDrop->name, pSTable->uid, pSTable->numOfTables, taosHashGetSize(pSTable->vgHash));
|
||||
return mnodeProcessDropSuperTableMsg(pMsg);
|
||||
} else {
|
||||
// user specify the "DROP STABLE" sql statement, but it is actually a normal table, return error msg.
|
||||
if (pDrop->supertable) {
|
||||
return TSDB_CODE_MND_INVALID_TABLE_TYPE;
|
||||
}
|
||||
|
||||
SCTableObj *pCTable = (SCTableObj *)pMsg->pTable;
|
||||
mInfo("msg:%p, app:%p table:%s, start to drop ctable, vgId:%d tid:%d uid:%" PRIu64, pMsg, pMsg->rpcMsg.ahandle,
|
||||
pDrop->name, pCTable->vgId, pCTable->tid, pCTable->uid);
|
||||
|
|
Loading…
Reference in New Issue