From a71fdf72528b6c4a8591ee57649edae6ee86b052 Mon Sep 17 00:00:00 2001 From: Haolin Wang Date: Tue, 7 Jan 2025 10:51:56 +0800 Subject: [PATCH] fix: correct error message for DROP TABLE under system databases --- source/libs/parser/src/parTranslater.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 224a0cd8ab..09d9ed2d61 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -15543,11 +15543,9 @@ int32_t serializeVgroupsDropTableBatch(SHashObj* pVgroupHashmap, SArray** pOut) static int32_t rewriteDropTableWithOpt(STranslateContext* pCxt, SQuery* pQuery) { int32_t code = TSDB_CODE_SUCCESS; SDropTableStmt* pStmt = (SDropTableStmt*)pQuery->pRoot; - if (!pStmt->withOpt) return code; - pCxt->withOpt = true; - SNode* pNode = NULL; char pTableName[TSDB_TABLE_NAME_LEN] = {0}; + FOREACH(pNode, pStmt->pTables) { SDropTableClause* pClause = (SDropTableClause*)pNode; if (IS_SYS_DBNAME(pClause->dbName)) { @@ -15555,6 +15553,13 @@ static int32_t rewriteDropTableWithOpt(STranslateContext* pCxt, SQuery* pQuery) "Cannot drop table of system database: `%s`.`%s`", pClause->dbName, pClause->tableName); } + } + + if (!pStmt->withOpt) return code; + + pCxt->withOpt = true; + FOREACH(pNode, pStmt->pTables) { + SDropTableClause* pClause = (SDropTableClause*)pNode; for (int32_t i = 0; i < TSDB_TABLE_NAME_LEN; i++) { if (pClause->tableName[i] == '\0') { break;