This is an automated email from the ASF dual-hosted git repository.
yuqi1129 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 99386ab61e [#11751] test(trino-connector): Enable Iceberg MySQL JDBC
integration test (#11752)
99386ab61e is described below
commit 99386ab61ec5960470f34d32277d34b098771ecf
Author: Yuhui <[email protected]>
AuthorDate: Fri Jun 26 10:47:03 2026 +0800
[#11751] test(trino-connector): Enable Iceberg MySQL JDBC integration test
(#11752)
### What changes were proposed in this pull request?
Enable the Trino connector Iceberg MySQL JDBC integration test.
### Why are the changes needed?
The Iceberg MySQL JDBC test was ignored and not covered by the Trino
connector integration test.
Fix: #11751
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
- `./gradlew :trino-connector:trino-connector:test --tests
org.apache.gravitino.trino.connector.catalog.iceberg.TestIcebergCatalogPropertyConverter
-PskipITs -PskipDockerTests=true`
- `./gradlew :trino-connector:trino-connector-473-478:assemble -PskipITs
-PskipDockerTests=true`
-
`./trino-connector/integration-test/trino-test-tools/trino_integration_test.sh
--auto=all --test_set=lakehouse-iceberg --catalog=iceberg_mysql`
---
.../docker-script/init/mysql/init.sql | 17 +++++++++++++++++
.../{ignored => }/catalog_iceberg_mysql_cleanup.sql | 0
.../{ignored => }/catalog_iceberg_mysql_prepare.sql | 4 ++--
.../iceberg/IcebergCatalogPropertyConverter.java | 5 +++++
.../iceberg/TestIcebergCatalogPropertyConverter.java | 2 ++
5 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/integration-test-common/docker-script/init/mysql/init.sql
b/integration-test-common/docker-script/init/mysql/init.sql
index 718ba3b64f..f6486358d1 100644
--- a/integration-test-common/docker-script/init/mysql/init.sql
+++ b/integration-test-common/docker-script/init/mysql/init.sql
@@ -18,6 +18,23 @@
*/
GRANT ALL PRIVILEGES on *.* to 'trino'@'%';
FLUSH PRIVILEGES;
+CREATE DATABASE IF NOT EXISTS iceberg_db;
+CREATE TABLE IF NOT EXISTS iceberg_db.iceberg_tables(
+ catalog_name VARCHAR(255) NOT NULL,
+ table_namespace VARCHAR(255) NOT NULL,
+ table_name VARCHAR(255) NOT NULL,
+ metadata_location VARCHAR(1000),
+ previous_metadata_location VARCHAR(1000),
+ iceberg_type VARCHAR(5),
+ PRIMARY KEY (catalog_name, table_namespace, table_name)
+);
+CREATE TABLE IF NOT EXISTS iceberg_db.iceberg_namespace_properties(
+ catalog_name VARCHAR(255) NOT NULL,
+ namespace VARCHAR(255) NOT NULL,
+ property_key VARCHAR(255) NOT NULL,
+ property_value VARCHAR(1000),
+ PRIMARY KEY (catalog_name, namespace, property_key)
+);
CREATE DATABASE gt_mysql_test_all_type;
CREATE TABLE gt_mysql_test_all_type.demo
(
diff --git
a/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/ignored/catalog_iceberg_mysql_cleanup.sql
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/catalog_iceberg_mysql_cleanup.sql
similarity index 100%
rename from
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/ignored/catalog_iceberg_mysql_cleanup.sql
rename to
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/catalog_iceberg_mysql_cleanup.sql
diff --git
a/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/ignored/catalog_iceberg_mysql_prepare.sql
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/catalog_iceberg_mysql_prepare.sql
similarity index 80%
rename from
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/ignored/catalog_iceberg_mysql_prepare.sql
rename to
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/catalog_iceberg_mysql_prepare.sql
index 607be50818..4c996683a0 100644
---
a/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/ignored/catalog_iceberg_mysql_prepare.sql
+++
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/catalog_iceberg_mysql_prepare.sql
@@ -2,9 +2,9 @@ call gravitino.system.create_catalog(
'gt_iceberg_mysql',
'lakehouse-iceberg',
map(
- array['uri', 'catalog-backend', 'warehouse', 'jdbc-user',
'jdbc-password', 'jdbc-driver'],
+ array['uri', 'catalog-backend', 'warehouse', 'jdbc-user',
'jdbc-password', 'jdbc-driver', 'jdbc-schema-version'],
array['${mysql_uri}/iceberg_db?createDatabaseIfNotExist=true&useSSL=false',
'jdbc',
- '${hdfs_uri}/user/iceberg/warehouse/TrinoQueryIT', 'trino',
'ds123', 'com.mysql.cj.jdbc.Driver']
+ '${hdfs_uri}/user/iceberg/warehouse/TrinoQueryIT', 'trino',
'ds123', 'com.mysql.cj.jdbc.Driver', 'V1']
)
);
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/iceberg/IcebergCatalogPropertyConverter.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/iceberg/IcebergCatalogPropertyConverter.java
index 8cbb46185c..1802c6c64c 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/iceberg/IcebergCatalogPropertyConverter.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/catalog/iceberg/IcebergCatalogPropertyConverter.java
@@ -143,6 +143,11 @@ public class IcebergCatalogPropertyConverter extends
CatalogPropertyConverter {
jdbcProperties.put(
"iceberg.jdbc-catalog.catalog-name",
IcebergPropertiesUtils.getCatalogBackendName(properties));
+ if
(properties.containsKey(IcebergConstants.GRAVITINO_JDBC_SCHEMA_VERSION)) {
+ jdbcProperties.put(
+ "iceberg.jdbc-catalog.schema-version",
+ properties.get(IcebergConstants.GRAVITINO_JDBC_SCHEMA_VERSION));
+ }
return jdbcProperties;
}
diff --git
a/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/iceberg/TestIcebergCatalogPropertyConverter.java
b/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/iceberg/TestIcebergCatalogPropertyConverter.java
index e2c7c55255..b9fda2c4b3 100644
---
a/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/iceberg/TestIcebergCatalogPropertyConverter.java
+++
b/trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/iceberg/TestIcebergCatalogPropertyConverter.java
@@ -141,6 +141,7 @@ public class TestIcebergCatalogPropertyConverter {
.put("jdbc-user", "root")
.put("jdbc-password", "ds123")
.put("jdbc-driver", "com.mysql.cj.jdbc.Driver")
+ .put("jdbc-schema-version", "V1")
.put("unknown-key", "1")
.put("trino.bypass.iceberg.unknown-key", "1")
.put("trino.bypass.iceberg.table-statistics-enabled", "true")
@@ -163,6 +164,7 @@ public class TestIcebergCatalogPropertyConverter {
Assertions.assertEquals(config.get("iceberg.jdbc-catalog.connection-password"),
"ds123");
Assertions.assertEquals(
config.get("iceberg.jdbc-catalog.driver-class"),
"com.mysql.cj.jdbc.Driver");
+ Assertions.assertEquals(config.get("iceberg.jdbc-catalog.schema-version"),
"V1");
Assertions.assertEquals(config.get("iceberg.catalog.type"), "jdbc");
// test trino passing properties