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

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new f2f34f1539 [iceberg] support partition predicate for clone-iceberg 
(#5912)
f2f34f1539 is described below

commit f2f34f15397dce0c31f631f3ad2ee011a8284a52
Author: LsomeYeah <[email protected]>
AuthorDate: Thu Jul 17 14:13:32 2025 +0800

    [iceberg] support partition predicate for clone-iceberg (#5912)
---
 .../java/org/apache/paimon/iceberg/IcebergHiveCloneExtractor.java  | 4 +++-
 .../java/org/apache/paimon/flink/CloneActionForIcebergITCase.java  | 7 +++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/paimon-iceberg/src/main/java/org/apache/paimon/iceberg/IcebergHiveCloneExtractor.java
 
b/paimon-iceberg/src/main/java/org/apache/paimon/iceberg/IcebergHiveCloneExtractor.java
index d7cffa4212..cea2948f14 100644
--- 
a/paimon-iceberg/src/main/java/org/apache/paimon/iceberg/IcebergHiveCloneExtractor.java
+++ 
b/paimon-iceberg/src/main/java/org/apache/paimon/iceberg/IcebergHiveCloneExtractor.java
@@ -143,7 +143,9 @@ public class IcebergHiveCloneExtractor extends 
HiveTableCloneExtractor {
                 BinaryRow partitionRow =
                         FileMetaUtils.writePartitionValue(
                                 partitionRowType, partitionValues, 
valueSetters);
-                results.add(toHivePartitionFiles(entry.getValue(), 
partitionRow));
+                if (predicate == null || predicate.test(partitionRow)) {
+                    results.add(toHivePartitionFiles(entry.getValue(), 
partitionRow));
+                }
             }
             return results;
         }
diff --git 
a/paimon-iceberg/src/test/java/org/apache/paimon/flink/CloneActionForIcebergITCase.java
 
b/paimon-iceberg/src/test/java/org/apache/paimon/flink/CloneActionForIcebergITCase.java
index e0b9e7a244..88e072aaff 100644
--- 
a/paimon-iceberg/src/test/java/org/apache/paimon/flink/CloneActionForIcebergITCase.java
+++ 
b/paimon-iceberg/src/test/java/org/apache/paimon/flink/CloneActionForIcebergITCase.java
@@ -171,7 +171,8 @@ public class CloneActionForIcebergITCase extends 
ActionITCaseBase {
                 tableName,
                 String.join(",", insertValues));
 
-        List<Row> r1 = sql(tEnv, "SELECT * FROM my_iceberg.`%s`.`%s`", dbName, 
tableName);
+        List<Row> r1 =
+                sql(tEnv, "SELECT * FROM my_iceberg.`%s`.`%s` WHERE price > 
0", dbName, tableName);
 
         sql(tEnv, "CREATE CATALOG PAIMON WITH ('type'='paimon', 'warehouse' = 
'%s')", warehouse);
         tEnv.useCatalog("PAIMON");
@@ -193,7 +194,9 @@ public class CloneActionForIcebergITCase extends 
ActionITCaseBase {
                         "--target_table",
                         "test_table",
                         "--target_catalog_conf",
-                        "warehouse=" + warehouse)
+                        "warehouse=" + warehouse,
+                        "--where",
+                        "price > 0")
                 .run();
 
         List<Row> r2 = sql(tEnv, "SELECT * FROM test.test_table");

Reply via email to