amogh-jahagirdar commented on code in PR #16692:
URL: https://github.com/apache/iceberg/pull/16692#discussion_r3597095738


##########
spark/v4.1/spark/src/test/java/org/apache/iceberg/spark/sql/TestFilterPushDown.java:
##########
@@ -647,6 +648,47 @@ public void testVariantExtractFiltering() {
         });
   }
 
+  @TestTemplate
+  public void testFilterPushdownOnInitialDefaultColumnAbsentFromFile() {

Review Comment:
   https://github.com/cbb330/iceberg-apache/pull/4/changes published a PR to 
@cbb330 branch, I think we have an additional issue in the parquet reader. The 
default reader in BaseParquetReaders reads a missing nested field via 
ConstantReader whose definition level is a fixed number. So in the case there's 
a nested field with a non-null default but the ancestor is missing, _and_ the 
filter _only_ contains a predicate on this specific nested field we end up 
applying the default value unconditionally rather than using null as we should. 
If there's an additional nested filter we end up being OK because we detect the 
discrepancy in the definition level and use null as expected. 
   
   I think we should probably fix this issue separately in a follow on (also 
qualifies for 1.10.3 imo); I think it should be separate because it's a more 
fundamental fix in the parquet reader code and the change is already a good 
focused fix as it is.
   
   cc @stevenzwu @cbb330 @rdblue 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to