From 45fcdaabc79abe6cd775b06a1951b2edc62f64cb Mon Sep 17 00:00:00 2001 From: yuxuan-luo <119841515+yuxuan-luo@users.noreply.github.com> Date: Wed, 15 Mar 2023 09:56:24 +0800 Subject: [PATCH] [Bug](catalog) Fix fetching information_schema table timed out(#17692) (#17694) Co-authored-by: hugoluo --- .../org/apache/doris/datasource/CatalogIf.java | 2 ++ .../apache/doris/datasource/ExternalCatalog.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+) 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 8647a00a8b..1f2777c87f 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 @@ -49,6 +49,8 @@ public interface CatalogIf { List getDbNames(); + // Will be used when querying the information_schema table + // Unable to get db for uninitialized catalog to avoid query timeout default List getDbNamesOrEmpty() { try { return getDbNames(); 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 6f4ff316aa..4291c7b883 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 @@ -240,6 +240,20 @@ public abstract class ExternalCatalog implements CatalogIf, Wr return listDatabaseNames(null); } + @Override + public List getDbNamesOrEmpty() { + if (initialized) { + try { + return getDbNames(); + } catch (Exception e) { + LOG.warn("failed to get db names in catalog {}", getName(), e); + return Lists.newArrayList(); + } + } else { + return Lists.newArrayList(); + } + } + @Override public String getResource() { return catalogProperty.getResource();