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]
