This is an automated email from the ASF dual-hosted git repository.
diqiu50 pushed a commit to branch branch-1.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.2 by this push:
new 02e02e8b3d [Cherry-pick to branch-1.2] [#10717] fix(trino-connector):
Enable multi-metalake support for Trino 469+ (#10748) (#10889)
02e02e8b3d is described below
commit 02e02e8b3dabf868b26b52043e45f7485653fdb4
Author: Yuhui <[email protected]>
AuthorDate: Wed Apr 29 11:30:46 2026 +0800
[Cherry-pick to branch-1.2] [#10717] fix(trino-connector): Enable
multi-metalake support for Trino 469+ (#10748) (#10889)
**Cherry-pick Information:**
- Original commit: af39442bd
- Target branch: `branch-1.2`
- Status: ✅ Clean cherry-pick (no conflicts)
Co-authored-by: Sachin Ranjalkar
<[email protected]>
---
docs/trino-connector/configuration.md | 7 +++++++
.../trino/connector/GravitinoConnectorFactory446.java | 2 +-
.../trino/connector/GravitinoConnectorFactory452.java | 5 -----
.../trino/connector/GravitinoConnectorFactory469.java | 10 ----------
.../src/test/java/TestGravitinoConnector469.java | 2 --
.../trino/connector/GravitinoConnectorFactory478.java | 10 ----------
.../gravitino/trino/connector/TestGravitinoConnector478.java | 12 ++++++++++--
.../gravitino/trino/connector/GravitinoConnectorFactory.java | 10 +++++-----
8 files changed, 23 insertions(+), 35 deletions(-)
diff --git a/docs/trino-connector/configuration.md
b/docs/trino-connector/configuration.md
index 4adeb28360..ba7532049f 100644
--- a/docs/trino-connector/configuration.md
+++ b/docs/trino-connector/configuration.md
@@ -16,7 +16,14 @@ license: "This software is licensed under the Apache License
version 2."
| gravitino.trino.skip-version-validation | boolean | false
| The `gravitino.trino.skip-version-validation` defines whether to skip Trino
version validation. Gravitino supports Trino versions between 435 and 478. If
this option is `true`, unsupported Trino versions can still be used, but
compatibility is not guaranteed.
| No | 1.0.0 |
| gravitino.client. | string | (none)
| The configuration key prefix for the Gravitino client config.
| No
| 1.0.0 |
| gravitino.trino.skip-catalog-patterns | string | (none)
| The `gravitino.trino.skip-catalog-patterns` defines a comma-separated list
of catalog name regex patterns that should be excluded from loading. For
example, `test_.*, .*_tmp` excludes all catalogs starting with `test_` or
ending with `_tmp`.
| No | 1.2.0 |
+| gravitino.use-single-metalake | boolean | true
| If `true`, only one metalake is used and catalogs are identified by
`<catalog_name>`. If `false`, multi-metalake mode is enabled and catalogs are
identified by `<metalake_name>.<catalog_name>`. | No | 1.2.0 |
To configure the Gravitino client, use properties prefixed with
`gravitino.client.`. These properties will directly passed to the Gravitino
client.
**Note:** Invalid configuration properties will result in exceptions. Please
see [Gravitino Java client
configurations](../how-to-use-gravitino-client.md#gravitino-java-client-configuration)
for more support client configuration.
+
+Multi-metalake mode (`gravitino.use-single-metalake=false`) is supported on
Trino connector versions 435-445 and 469-478. On versions 446-468, a warning is
logged and the connector initializes, but the mode is not fully supported and
some operations may fail.
+
+## Authentication
+
+The Gravitino Trino connector supports authenticating to the Gravitino server
using Simple, OAuth, and Kerberos authentication. For detailed authentication
configuration, please refer to [Trino Connector
Authentication](./authentication.md).
diff --git
a/trino-connector/trino-connector-446-451/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory446.java
b/trino-connector/trino-connector-446-451/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory446.java
index 56bdbf9067..39e273e0a3 100644
---
a/trino-connector/trino-connector-446-451/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory446.java
+++
b/trino-connector/trino-connector-446-451/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory446.java
@@ -41,7 +41,7 @@ public class GravitinoConnectorFactory446 extends
GravitinoConnectorFactory {
@Override
protected boolean supportCatalogNameWithMetalake() {
- return true;
+ return false;
}
@Override
diff --git
a/trino-connector/trino-connector-452-468/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory452.java
b/trino-connector/trino-connector-452-468/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory452.java
index f8c69d7c6e..01f73440e1 100644
---
a/trino-connector/trino-connector-452-468/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory452.java
+++
b/trino-connector/trino-connector-452-468/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory452.java
@@ -39,11 +39,6 @@ public class GravitinoConnectorFactory452 extends
GravitinoConnectorFactory {
return 468;
}
- @Override
- protected String getTrinoCatalogName(String metalake, String catalog) {
- return "\"" + metalake + "." + catalog + "\"";
- }
-
@Override
protected boolean supportCatalogNameWithMetalake() {
return false;
diff --git
a/trino-connector/trino-connector-469-472/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory469.java
b/trino-connector/trino-connector-469-472/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory469.java
index b365c81412..66b42c9ad0 100644
---
a/trino-connector/trino-connector-469-472/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory469.java
+++
b/trino-connector/trino-connector-469-472/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory469.java
@@ -39,16 +39,6 @@ public class GravitinoConnectorFactory469 extends
GravitinoConnectorFactory {
return 472;
}
- @Override
- protected String getTrinoCatalogName(String metalake, String catalog) {
- return "\"" + metalake + "." + catalog + "\"";
- }
-
- @Override
- protected boolean supportCatalogNameWithMetalake() {
- return false;
- }
-
@Override
protected GravitinoConnector createConnector(CatalogConnectorContext
connectorContext) {
return new GravitinoConnector469(connectorContext);
diff --git
a/trino-connector/trino-connector-469-472/src/test/java/TestGravitinoConnector469.java
b/trino-connector/trino-connector-469-472/src/test/java/TestGravitinoConnector469.java
index c3e49e2bba..f5a7680683 100644
---
a/trino-connector/trino-connector-469-472/src/test/java/TestGravitinoConnector469.java
+++
b/trino-connector/trino-connector-469-472/src/test/java/TestGravitinoConnector469.java
@@ -26,7 +26,6 @@ import org.apache.gravitino.trino.connector.GravitinoPlugin;
import org.apache.gravitino.trino.connector.GravitinoPlugin469;
import org.apache.gravitino.trino.connector.TestGravitinoConnector;
import
org.apache.gravitino.trino.connector.TestGravitinoConnectorWithMetalakeCatalogName;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
public class TestGravitinoConnector469 {
@@ -45,7 +44,6 @@ public class TestGravitinoConnector469 {
}
@Nested
- @Disabled
class MultiMetalake extends TestGravitinoConnectorWithMetalakeCatalogName {
@Override
protected GravitinoPlugin createGravitinoPlugin(GravitinoAdminClient
client) {
diff --git
a/trino-connector/trino-connector-473-478/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory478.java
b/trino-connector/trino-connector-473-478/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory478.java
index 60680e1866..9da0802a89 100644
---
a/trino-connector/trino-connector-473-478/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory478.java
+++
b/trino-connector/trino-connector-473-478/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory478.java
@@ -39,16 +39,6 @@ public class GravitinoConnectorFactory478 extends
GravitinoConnectorFactory {
return 478;
}
- @Override
- protected String getTrinoCatalogName(String metalake, String catalog) {
- return "\"" + metalake + "." + catalog + "\"";
- }
-
- @Override
- protected boolean supportCatalogNameWithMetalake() {
- return false;
- }
-
@Override
protected GravitinoConnector createConnector(CatalogConnectorContext
connectorContext) {
return new GravitinoConnector478(connectorContext);
diff --git
a/trino-connector/trino-connector-473-478/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnector478.java
b/trino-connector/trino-connector-473-478/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnector478.java
index afe2022c8e..837d47e2d6 100644
---
a/trino-connector/trino-connector-473-478/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnector478.java
+++
b/trino-connector/trino-connector-473-478/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoConnector478.java
@@ -23,7 +23,6 @@ import static
io.trino.testing.TestingSession.testSessionBuilder;
import io.trino.Session;
import io.trino.testing.DistributedQueryRunner;
import org.apache.gravitino.client.GravitinoAdminClient;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
public class TestGravitinoConnector478 {
@@ -42,7 +41,6 @@ public class TestGravitinoConnector478 {
}
@Nested
- @Disabled
class MultiMetalake extends TestGravitinoConnectorWithMetalakeCatalogName {
@Override
protected GravitinoPlugin createGravitinoPlugin(GravitinoAdminClient
client) {
@@ -54,5 +52,15 @@ public class TestGravitinoConnector478 {
Session session = testSessionBuilder().setCatalog("gravitino").build();
return DistributedQueryRunner.builder(session).setWorkerCount(0).build();
}
+
+ @Override
+ protected String getTrinoCliCatalogName(String metalake, String catalog) {
+ return metalake + "." + catalog;
+ }
+
+ @Override
+ protected String getTrinoSqlCatalogName(String metalakeName, String
catalogName) {
+ return "\"" + metalakeName + "." + catalogName + "\"";
+ }
}
}
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
index c9fd7e9392..190e02f475 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoConnectorFactory.java
@@ -161,11 +161,11 @@ public class GravitinoConnectorFactory implements
ConnectorFactory {
// check catalog name with metalake are supported in this trino version
if (!config.singleMetalakeMode() && !supportCatalogNameWithMetalake()) {
- String errmsg =
- String.format(
- "The trino-connector-%s-%s does not support catalog name with
metalake.",
- getMinSupportTrinoSpiVersion(), getMaxSupportTrinoSpiVersion());
- throw new
TrinoException(GravitinoErrorCode.GRAVITINO_UNSUPPORTED_TRINO_VERSION, errmsg);
+ LOG.warn(
+ "The trino-connector-{}-{} does not fully support catalog name with
metalake. "
+ + "The DROP CATALOG operation may not work correctly in
multi-metalake mode.",
+ getMinSupportTrinoSpiVersion(),
+ getMaxSupportTrinoSpiVersion());
}
// skip version validation