You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluss.apache.org by yu...@apache.org on 2026/09/14 07:53:30 UTC

(fluss) branch main updated: [lake/iceberg] Ignore Fluss properties in compatibility checks (#4220)

This is an automated email from the ASF dual-hosted git repository.

luoyuxia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/main by this push:
     new 9c6c8dcd7 [lake/iceberg] Ignore Fluss properties in compatibility checks (#4220)
9c6c8dcd7 is described below

commit 9c6c8dcd7be148dd6daa258eca51c46adea5957f
Author: litiliu <38...@users.noreply.github.com>
AuthorDate: Mon Sep 14 15:53:25 2026 +0800

    [lake/iceberg] Ignore Fluss properties in compatibility checks (#4220)
---
 .../main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java  | 3 +++
 .../java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java   | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
index 8650dc48c..7fe847868 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
@@ -525,6 +525,9 @@ public class IcebergLakeCatalog implements LakeCatalog {
     boolean isIcebergPropertiesCompatible(
             Map<String, String> existingProperties, Map<String, String> expectedProperties) {
         for (Map.Entry<String, String> entry : expectedProperties.entrySet()) {
+            if (entry.getKey().startsWith(FLUSS_CONF_PREFIX)) {
+                continue;
+            }
             String actual = existingProperties.get(entry.getKey());
             if (actual == null || !actual.equals(entry.getValue())) {
                 return false;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
index 868a6bfd4..daf82218f 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
@@ -1775,6 +1775,11 @@ class IcebergLakeCatalogTest {
         existing.put("engine.internal", "whatever");
         assertThat(flussIcebergCatalog.isIcebergPropertiesCompatible(existing, expected)).isTrue();
 
+        // Fluss properties are metadata owned by Fluss and may differ between descriptors.
+        expected.put("fluss.table.replication.factor", "1");
+        existing.put("fluss.table.replication.factor", "2");
+        assertThat(flussIcebergCatalog.isIcebergPropertiesCompatible(existing, expected)).isTrue();
+
         // Existing missing an expected key -> incompatible.
         existing = new HashMap<>();
         existing.put("k1", "v1");