[fix](MTMV) Exceptions occur when dropping meterialized view with if exists (#15568)

This commit is contained in:
chenlinzhong
2023-01-17 15:29:39 +08:00
committed by GitHub
parent 01ae9fb380
commit 82e2102e18

View File

@ -138,15 +138,26 @@ public class Alter {
throw new DdlException("Drop materialized view without table name is unsupported : " + stmt.toSql());
}
TableName tableName = !stmt.isForMTMV() ? stmt.getTableName() : stmt.getMTMVName();
// check db
String dbName = tableName.getDb();
Database db = Env.getCurrentInternalCatalog().getDbOrDdlException(dbName);
String name = tableName.getTbl();
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(name,
!stmt.isForMTMV() ? TableType.OLAP : TableType.MATERIALIZED_VIEW);
Database db;
OlapTable olapTable;
if (stmt.isIfExists()) {
try {
String dbName = tableName.getDb();
db = Env.getCurrentInternalCatalog().getDbOrDdlException(dbName);
String name = tableName.getTbl();
olapTable = (OlapTable) db.getTableOrMetaException(name,
!stmt.isForMTMV() ? TableType.OLAP : TableType.MATERIALIZED_VIEW);
} catch (Exception e) {
LOG.info("db or table not exists, msg={}", e.getMessage());
return;
}
} else {
String dbName = tableName.getDb();
db = Env.getCurrentInternalCatalog().getDbOrDdlException(dbName);
String name = tableName.getTbl();
olapTable = (OlapTable) db.getTableOrMetaException(name,
!stmt.isForMTMV() ? TableType.OLAP : TableType.MATERIALIZED_VIEW);
}
// drop materialized view
if (!stmt.isForMTMV()) {
((MaterializedViewHandler) materializedViewHandler).processDropMaterializedView(stmt, db, olapTable);