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]

Reply via email to