diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogIf.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogIf.java index e75eab8e21..c8f3033c66 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogIf.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogIf.java @@ -85,7 +85,7 @@ public interface CatalogIf { default void notifyPropertiesUpdated(Map updatedProps) { if (this instanceof ExternalCatalog) { - ((ExternalCatalog) this).setUninitialized(false); + ((ExternalCatalog) this).onRefresh(false); } } 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 79dd31a26f..3604d1c628 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 @@ -150,7 +150,7 @@ public class CatalogMgr implements Writable, GsonPostProcessable { if (catalog != null) { String catalogName = catalog.getName(); if (!catalogName.equals(InternalCatalog.INTERNAL_CATALOG_NAME)) { - ((ExternalCatalog) catalog).setUninitialized(invalidCache); + ((ExternalCatalog) catalog).onRefresh(invalidCache); } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java index 413f6554c8..0e12e942c9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java @@ -287,7 +287,7 @@ public abstract class ExternalCatalog Env.getCurrentEnv().getEditLog().logInitCatalog(initCatalogLog); } - public void setUninitialized(boolean invalidCache) { + public void onRefresh(boolean invalidCache) { this.objectCreated = false; this.initialized = false; this.invalidCacheInInit = invalidCache; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java index 93fdfa2bfd..aa0704e964 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java @@ -67,6 +67,14 @@ public class JdbcExternalCatalog extends ExternalCatalog { } } + @Override + public void onRefresh(boolean invalidCache) { + super.onRefresh(invalidCache); + if (jdbcClient != null) { + jdbcClient.closeClient(); + } + } + @Override public void onClose() { super.onClose();