You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by ru...@apache.org on 2026/08/13 21:24:41 UTC
(iceberg) branch main updated: Parquet: Fix notNaN for columns missing from files (#17633)
This is an automated email from the ASF dual-hosted git repository.
RussellSpitzer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new 7e56d30d30 Parquet: Fix notNaN for columns missing from files (#17633)
7e56d30d30 is described below
commit 7e56d30d30d203b5e07274dacc3f3f5a9ce277f5
Author: yangshangqing <50...@users.noreply.github.com>
AuthorDate: Thu Aug 13 17:24:35 2026 -0400
Parquet: Fix notNaN for columns missing from files (#17633)
---
.../iceberg/parquet/ParquetDictionaryRowGroupFilter.java | 6 +++---
.../iceberg/parquet/TestDictionaryRowGroupFilter.java | 13 +++++++++----
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetDictionaryRowGroupFilter.java b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetDictionaryRowGroupFilter.java
index 6906cc9cb8..5e7e36740a 100644
--- a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetDictionaryRowGroupFilter.java
+++ b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetDictionaryRowGroupFilter.java
@@ -175,12 +175,12 @@ public class ParquetDictionaryRowGroupFilter {
public <T> Boolean notNaN(BoundReference<T> ref) {
int id = ref.fieldId();
- if (mayContainNulls.get(id)) {
+ Boolean hasNonDictPage = isFallback.get(id);
+ if (hasNonDictPage == null || hasNonDictPage) {
return ROWS_MIGHT_MATCH;
}
- Boolean hasNonDictPage = isFallback.get(id);
- if (hasNonDictPage == null || hasNonDictPage) {
+ if (mayContainNulls.get(id)) {
return ROWS_MIGHT_MATCH;
}
diff --git a/parquet/src/test/java/org/apache/iceberg/parquet/TestDictionaryRowGroupFilter.java b/parquet/src/test/java/org/apache/iceberg/parquet/TestDictionaryRowGroupFilter.java
index 22f8068c0f..fda6bcd826 100644
--- a/parquet/src/test/java/org/apache/iceberg/parquet/TestDictionaryRowGroupFilter.java
+++ b/parquet/src/test/java/org/apache/iceberg/parquet/TestDictionaryRowGroupFilter.java
@@ -484,10 +484,15 @@ public class TestDictionaryRowGroupFilter {
public void testColumnNotInFile() {
Expression[] exprs =
new Expression[] {
- lessThan("not_in_file", 1.0f), lessThanOrEqual("not_in_file", 1.0f),
- equal("not_in_file", 1.0f), greaterThan("not_in_file", 1.0f),
- greaterThanOrEqual("not_in_file", 1.0f), notNull("not_in_file"),
- isNull("not_in_file"), notEqual("not_in_file", 1.0f)
+ lessThan("not_in_file", 1.0f),
+ lessThanOrEqual("not_in_file", 1.0f),
+ equal("not_in_file", 1.0f),
+ greaterThan("not_in_file", 1.0f),
+ greaterThanOrEqual("not_in_file", 1.0f),
+ notNull("not_in_file"),
+ isNull("not_in_file"),
+ notEqual("not_in_file", 1.0f),
+ notNaN("not_in_file")
};
for (Expression expr : exprs) {