This is an automated email from the ASF dual-hosted git repository.
yuqi4733 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new e022c38d1d [#7322] fix (trino-connector) : Fix an exception thrown
when the metalake contains unsupported catalog provider (#7563)
e022c38d1d is described below
commit e022c38d1d71d40dadab443e907bf871afe9ebde
Author: Yuhui <[email protected]>
AuthorDate: Thu Jul 3 21:28:33 2025 +0800
[#7322] fix (trino-connector) : Fix an exception thrown when the metalake
contains unsupported catalog provider (#7563)
### What changes were proposed in this pull request?
Fix an exception thrown when the metalake contains unsupported catalog
provider
### Why are the changes needed?
Fix: #7322
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
ITs
---
.../trino/connector/catalog/CatalogConnectorFactory.java | 8 ++++++++
.../trino/connector/catalog/CatalogConnectorManager.java | 5 ++++-
.../connector/catalog/DefaultCatalogConnectorFactory.java | 10 ++++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorFactory.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorFactory.java
index e297c22656..a8796b0b99 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorFactory.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorFactory.java
@@ -18,6 +18,7 @@
*/
package org.apache.gravitino.trino.connector.catalog;
+import java.util.Set;
import org.apache.gravitino.trino.connector.metadata.GravitinoCatalog;
/**
@@ -31,4 +32,11 @@ public interface CatalogConnectorFactory {
* @return CatalogConnectorContext builder
*/
CatalogConnectorContext.Builder
createCatalogConnectorContextBuilder(GravitinoCatalog catalog);
+
+ /**
+ * Get supported catalog providers
+ *
+ * @return catalog providers
+ */
+ Set<String> getSupportedCatalogProviders();
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
index 3a30342454..9ecf5920ac 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/CatalogConnectorManager.java
@@ -233,7 +233,10 @@ public class CatalogConnectorManager {
// Reload catalogs that have been updated in Gravitino
server.
reloadCatalog(gravitinoCatalog);
} else {
- if (catalog.type() == Catalog.Type.RELATIONAL) {
+ if (catalog.type() == Catalog.Type.RELATIONAL
+ && catalogConnectorFactory
+ .getSupportedCatalogProviders()
+ .contains(gravitinoCatalog.getProvider())) {
loadCatalog(gravitinoCatalog);
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
index 2eb62ea515..768da6785d 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/DefaultCatalogConnectorFactory.java
@@ -20,6 +20,7 @@ package org.apache.gravitino.trino.connector.catalog;
import io.trino.spi.TrinoException;
import java.util.HashMap;
+import java.util.Set;
import org.apache.gravitino.trino.connector.GravitinoConfig;
import org.apache.gravitino.trino.connector.GravitinoErrorCode;
import org.apache.gravitino.trino.connector.catalog.hive.HiveConnectorAdapter;
@@ -79,6 +80,15 @@ public class DefaultCatalogConnectorFactory implements
CatalogConnectorFactory {
LOG.info("Start the DefaultCatalogConnectorFactory");
}
+ /**
+ * Get supported catalog providers
+ *
+ * @return catalog providers
+ */
+ public Set<String> getSupportedCatalogProviders() {
+ return catalogBuilders.keySet();
+ }
+
/**
* Creates a new catalog connector context builder for the specified
Gravitino catalog.
*