You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/06/27 03:08:31 UTC
[doris] branch branch-1.2-lts updated: [fix](catalog) do not call makeSureInitialized when create table from hms meta event (#21104)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new be9840b81d [fix](catalog) do not call makeSureInitialized when create table from hms meta event (#21104)
be9840b81d is described below
commit be9840b81de99eecb0efcff292bbc4e24f283636
Author: Mingyu Chen <mo...@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 | 5 +++--
.../org/apache/doris/catalog/external/HMSExternalDatabase.java | 3 +--
.../apache/doris/catalog/external/IcebergExternalDatabase.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 +-
7 files changed, 16 insertions(+), 15 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 2ab0a66ee0..4a701d71cb 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
@@ -267,8 +267,9 @@ public class ExternalDatabase<T extends ExternalTable> implements DatabaseIf<T>,
throw new NotImplementedException();
}
- public void createTable(String tableName, long tableId) {
- throw new NotImplementedException();
+ // 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 84cf3c4af7..b0e1c3cca2 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
@@ -184,9 +184,8 @@ public class HMSExternalDatabase extends ExternalDatabase<HMSExternalTable> impl
}
@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 = new HMSExternalTable(tableId, tableName, name,
(HMSExternalCatalog) extCatalog);
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 db1d1e13ce..4b3286e160 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
@@ -170,9 +170,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/datasource/CatalogMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
index d89faf4c27..44df8ad28b 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
@@ -682,7 +682,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) {
@@ -711,11 +712,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());
@@ -730,7 +731,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 902ceacfa7..ffa3e5f745 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 1dbfd08ccf..fa250bae08 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"));
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 66671c184f..b3d6090d24 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
@@ -956,7 +956,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-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org