BharatDeva opened a new pull request, #3689: URL: https://github.com/apache/iceberg-python/pull/3689
<!-- Closes #3498 --> # Rationale for this change `ResidualVisitor.visit_not_nan` currently treats a partition value of `None` as `AlwaysFalse()`. That is inconsistent with the normal evaluator behavior and with Iceberg Java semantics: `None` is not NaN, so `NotNaN(None)` should evaluate to true. This PR addresses only that residual-evaluator edge case from #3498. The stricter metrics-evaluator items discussed in the issue are already covered by other active work. ## Are these changes tested? Yes. I updated the existing residual evaluator expectations for both double and float identity partitions and ran the targeted test file in a WSL-native checkout: ```bash pytest tests/expressions/test_residual_evaluator.py -q ``` Result: ```text 11 passed in 0.05s ``` Additional checks: ```bash ruff check pyiceberg/expressions/visitors.py tests/expressions/test_residual_evaluator.py git diff --check ``` Both passed. ## Are there any user-facing changes? Yes. Residual evaluation for `NotNaN` now treats null partition values as not-NaN instead of false. Please add the changelog label if this behavior change should appear in release notes. -- 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]
