This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 5db5f6c70d08664fb21ca0fd7c0e172fedf42b13 Author: Mingyu Chen <morning...@163.com> AuthorDate: Sat Jun 24 21:50:36 2023 +0800 [fix](catalog) do not call makeSureInitialized when create table from hms meta event (#21104) In this PR, I remove the `makeSureInitialized()` call in `createTable()` method, because it is wrong and useless. And also rename the methed's name to make it more clear. --- .../java/org/apache/doris/catalog/external/ExternalDatabase.java | 9 +++++---- .../org/apache/doris/catalog/external/HMSExternalDatabase.java | 3 +-- .../apache/doris/catalog/external/IcebergExternalDatabase.java | 3 +-- .../apache/doris/catalog/external/PaimonExternalDatabase.java | 3 +-- .../src/main/java/org/apache/doris/datasource/CatalogMgr.java | 9 +++++---- .../org/apache/doris/datasource/hive/event/AlterTableEvent.java | 6 +++--- .../org/apache/doris/datasource/hive/event/CreateTableEvent.java | 3 ++- fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java index dd8e7fa1e3..e1b582a540 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java @@ -332,12 +332,13 @@ public abstract class ExternalDatabase<T extends ExternalTable> throw new NotImplementedException("dropTable() is not implemented"); } - public void createTable(String tableName, long tableId) { - throw new NotImplementedException("createTable() is not implemented"); - } - @Override public CatalogIf getCatalog() { return extCatalog; } + + // Only used for sync hive metastore event + public void replayCreateTableFromEvent(String tableName, long tableId) { + throw new NotImplementedException("createTable() is not implemented"); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java index d53c934052..093ebe8b40 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java @@ -74,9 +74,8 @@ public class HMSExternalDatabase extends ExternalDatabase<HMSExternalTable> { } @Override - public void createTable(String tableName, long tableId) { + public void replayCreateTableFromEvent(String tableName, long tableId) { LOG.debug("create table [{}]", tableName); - makeSureInitialized(); tableNameToId.put(tableName, tableId); HMSExternalTable table = getExternalTable(tableName, tableId, extCatalog); idToTbl.put(tableId, table); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java index 3e8a7beef9..8653c3e2dd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java @@ -60,9 +60,8 @@ public class IcebergExternalDatabase extends ExternalDatabase<IcebergExternalTab } @Override - public void createTable(String tableName, long tableId) { + public void replayCreateTableFromEvent(String tableName, long tableId) { LOG.debug("create table [{}]", tableName); - makeSureInitialized(); tableNameToId.put(tableName, tableId); IcebergExternalTable table = new IcebergExternalTable(tableId, tableName, name, (IcebergExternalCatalog) extCatalog); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java index 4f6014241a..34cc7b96c0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java @@ -60,9 +60,8 @@ public class PaimonExternalDatabase extends ExternalDatabase<PaimonExternalTable } @Override - public void createTable(String tableName, long tableId) { + public void replayCreateTableFromEvent(String tableName, long tableId) { LOG.debug("create table [{}]", tableName); - makeSureInitialized(); tableNameToId.put(tableName, tableId); PaimonExternalTable table = new PaimonExternalTable(tableId, tableName, name, (PaimonExternalCatalog) extCatalog); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java index 67b9bb6c8d..96a7c1eae3 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java @@ -734,7 +734,8 @@ public class CatalogMgr implements Writable, GsonPostProcessable { return ((ExternalCatalog) catalog).tableExistInLocal(dbName, tableName); } - public void createExternalTable(String dbName, String tableName, String catalogName, boolean ignoreIfExists) + public void createExternalTableFromEvent(String dbName, String tableName, String catalogName, + boolean ignoreIfExists) throws DdlException { CatalogIf catalog = nameToCatalog.get(catalogName); if (catalog == null) { @@ -763,11 +764,11 @@ public class CatalogMgr implements Writable, GsonPostProcessable { log.setDbId(db.getId()); log.setTableName(tableName); log.setTableId(Env.getCurrentEnv().getNextId()); - replayCreateExternalTable(log); + replayCreateExternalTableFromEvent(log); Env.getCurrentEnv().getEditLog().logCreateExternalTable(log); } - public void replayCreateExternalTable(ExternalObjectLog log) { + public void replayCreateExternalTableFromEvent(ExternalObjectLog log) { LOG.debug("ReplayCreateExternalTable,catalogId:[{}],dbId:[{}],tableId:[{}],tableName:[{}]", log.getCatalogId(), log.getDbId(), log.getTableId(), log.getTableName()); ExternalCatalog catalog = (ExternalCatalog) idToCatalog.get(log.getCatalogId()); @@ -782,7 +783,7 @@ public class CatalogMgr implements Writable, GsonPostProcessable { } db.writeLock(); try { - db.createTable(log.getTableName(), log.getTableId()); + db.replayCreateTableFromEvent(log.getTableName(), log.getTableId()); } finally { db.writeUnlock(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/AlterTableEvent.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/AlterTableEvent.java index a0a86bf6c3..cbb1ee8478 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/AlterTableEvent.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/AlterTableEvent.java @@ -73,9 +73,9 @@ public class AlterTableEvent extends MetastoreTableEvent { return; } Env.getCurrentEnv().getCatalogMgr() - .dropExternalTable(tableBefore.getDbName(), tableBefore.getTableName(), catalogName, true); + .dropExternalTable(tableBefore.getDbName(), tableBefore.getTableName(), catalogName, true); Env.getCurrentEnv().getCatalogMgr() - .createExternalTable(tableAfter.getDbName(), tableAfter.getTableName(), catalogName, true); + .createExternalTableFromEvent(tableAfter.getDbName(), tableAfter.getTableName(), catalogName, true); } private void processRename() throws DdlException { @@ -93,7 +93,7 @@ public class AlterTableEvent extends MetastoreTableEvent { Env.getCurrentEnv().getCatalogMgr() .dropExternalTable(tableBefore.getDbName(), tableBefore.getTableName(), catalogName, true); Env.getCurrentEnv().getCatalogMgr() - .createExternalTable(tableAfter.getDbName(), tableAfter.getTableName(), catalogName, true); + .createExternalTableFromEvent(tableAfter.getDbName(), tableAfter.getTableName(), catalogName, true); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/CreateTableEvent.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/CreateTableEvent.java index a97d131dce..9ac8fd4e68 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/CreateTableEvent.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/event/CreateTableEvent.java @@ -59,7 +59,8 @@ public class CreateTableEvent extends MetastoreTableEvent { protected void process() throws MetastoreNotificationException { try { infoLog("catalogName:[{}],dbName:[{}],tableName:[{}]", catalogName, dbName, tblName); - Env.getCurrentEnv().getCatalogMgr().createExternalTable(dbName, hmsTbl.getTableName(), catalogName, true); + Env.getCurrentEnv().getCatalogMgr() + .createExternalTableFromEvent(dbName, hmsTbl.getTableName(), catalogName, true); } catch (DdlException e) { throw new MetastoreNotificationException( debugString("Failed to process event"), e); diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java index 04c1b58d6e..4244664d43 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java @@ -960,7 +960,7 @@ public class EditLog { } case OperationType.OP_CREATE_EXTERNAL_TABLE: { final ExternalObjectLog log = (ExternalObjectLog) journal.getData(); - env.getCatalogMgr().replayCreateExternalTable(log); + env.getCatalogMgr().replayCreateExternalTableFromEvent(log); break; } case OperationType.OP_DROP_EXTERNAL_DB: { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org