anoopj opened a new pull request, #3416:
URL: https://github.com/apache/iceberg-rust/pull/3416

   ## Which issue does this PR close?
   
   - Closes #3415.
   
   ## What changes are included in this PR?
   
   The reader fans a `FileScanTask`'s predicate to the row-group metrics 
evaluator and the page-index evaluator, both conservative (inclusive) filters 
that cannot soundly negate a `NOT `node. The row-group evaluator's naive 
`!inner` flips a `MIGHT_MATCH` bound to `CANT_MATCH`. For `NOT(x > 5)` over a 
row group spanning `[0, 10]` that prunes a group which does contain matching 
rows (silent data loss). The page-index evaluator rejects NOT outright, 
aborting the read. A FileScanTask built or deserialized outside TableScan 
carries an un-normalized predicate, so a raw NOT reaches both.
   
   Rewrite NOT out of the predicate once, where it is first bound in the read 
pipeline, so every consumer sees a NOT-free predicate.
   
   ## Are these changes tested?
   
   Added tests. 
   


-- 
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