This is an automated email from the ASF dual-hosted git repository.
roryqi 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 0599ee192e [#9747][followup]feat(IRC): pass jdbc-schema-version config
property to iceberg (#10085)
0599ee192e is described below
commit 0599ee192ee7b991403220f1d8b07b4699cabc63
Author: Bharath Krishna <[email protected]>
AuthorDate: Mon Mar 2 07:43:54 2026 +0530
[#9747][followup]feat(IRC): pass jdbc-schema-version config property to
iceberg (#10085)
### What changes were proposed in this pull request?
IcebergPropertiesUtils.toIcebergCatalogProperties() maps Gravitino
config
keys to their Iceberg counterparts. The jdbc-schema-version property
(Gravitino key: 'jdbc-schema-version', Iceberg key:
'jdbc.schema-version')
was missing from the mapping
### Why are the changes needed?
Gravitino catalog config was silently ignored and never reached the
underlying
JdbcCatalog. Without jdbc.schema-version=V1 the JDBC catalog does not
support
view operations, causing UnsupportedOperationException on viewExists().
Fix: #(issue)
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
unit tests
---
.../catalog/lakehouse/iceberg/IcebergConstants.java | 3 +++
.../catalog/lakehouse/iceberg/IcebergPropertiesUtils.java | 3 +++
.../lakehouse/iceberg/TestIcebergPropertiesUtils.java | 12 ++++++++++++
3 files changed, 18 insertions(+)
diff --git
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
index dbc3d858c8..d40f3dd8dd 100644
---
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergConstants.java
@@ -31,6 +31,9 @@ public class IcebergConstants {
public static final String ICEBERG_JDBC_PASSWORD = "jdbc.password";
public static final String ICEBERG_JDBC_INITIALIZE = "jdbc-initialize";
+ public static final String GRAVITINO_JDBC_SCHEMA_VERSION =
"jdbc-schema-version";
+ public static final String ICEBERG_JDBC_SCHEMA_VERSION =
"jdbc.schema-version";
+
public static final String GRAVITINO_JDBC_DRIVER = "jdbc-driver";
public static final String WAREHOUSE = "warehouse";
public static final String URI = "uri";
diff --git
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergPropertiesUtils.java
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergPropertiesUtils.java
index 48c24e7b8c..854b5f8b6c 100644
---
a/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergPropertiesUtils.java
+++
b/catalogs/catalog-common/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergPropertiesUtils.java
@@ -42,6 +42,9 @@ public class IcebergPropertiesUtils {
map.put(IcebergConstants.GRAVITINO_JDBC_DRIVER,
IcebergConstants.GRAVITINO_JDBC_DRIVER);
map.put(IcebergConstants.GRAVITINO_JDBC_USER,
IcebergConstants.ICEBERG_JDBC_USER);
map.put(IcebergConstants.GRAVITINO_JDBC_PASSWORD,
IcebergConstants.ICEBERG_JDBC_PASSWORD);
+ map.put(
+ IcebergConstants.GRAVITINO_JDBC_SCHEMA_VERSION,
+ IcebergConstants.ICEBERG_JDBC_SCHEMA_VERSION);
map.put(IcebergConstants.URI, IcebergConstants.URI);
map.put(IcebergConstants.WAREHOUSE, IcebergConstants.WAREHOUSE);
map.put(IcebergConstants.CATALOG_BACKEND_NAME,
IcebergConstants.CATALOG_BACKEND_NAME);
diff --git
a/catalogs/catalog-common/src/test/java/org/apache/gravitino/lakehouse/iceberg/TestIcebergPropertiesUtils.java
b/catalogs/catalog-common/src/test/java/org/apache/gravitino/lakehouse/iceberg/TestIcebergPropertiesUtils.java
index b8efe974de..a02a750a95 100644
---
a/catalogs/catalog-common/src/test/java/org/apache/gravitino/lakehouse/iceberg/TestIcebergPropertiesUtils.java
+++
b/catalogs/catalog-common/src/test/java/org/apache/gravitino/lakehouse/iceberg/TestIcebergPropertiesUtils.java
@@ -28,6 +28,18 @@ import org.junit.jupiter.api.Test;
public class TestIcebergPropertiesUtils {
+ @Test
+ void testJdbcSchemaVersionPropertyIsMapped() {
+ Map<String, String> gravitinoProps =
+ ImmutableMap.of(IcebergConstants.GRAVITINO_JDBC_SCHEMA_VERSION, "V1");
+ Map<String, String> icebergProps =
+ IcebergPropertiesUtils.toIcebergCatalogProperties(gravitinoProps);
+ Assertions.assertEquals(
+ "V1",
+ icebergProps.get(IcebergConstants.ICEBERG_JDBC_SCHEMA_VERSION),
+ "jdbc-schema-version must be translated to jdbc.schema-version for
Iceberg");
+ }
+
@Test
void testGetCatalogBackendName() {
Map<String, String> catalogProperties =