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");