kevinjqliu opened a new pull request, #3817:
URL: https://github.com/apache/iceberg-python/pull/3817

   Closes #3498
   
   # Rationale for this change
   
   `ResidualVisitor` directly compares partition values with literals for `<`, 
`<=`, `>`, and `>=`. A nullable identity partition with a `None` value 
therefore raises `TypeError` during residual evaluation.
   
   This change handles null partition values using the same nulls-first 
ordering as Apache Iceberg Java residual evaluation:
   
   - `null < literal` and `null <= literal` evaluate to true.
   - `null > literal` and `null >= literal` evaluate to false.
   
   This supersedes the closed #3520 and preserves its original author commit. 
The overlapping `NotNaN` fix has already landed in #3689, so this PR is limited 
to the remaining comparison issue.
   
   # Are these changes tested?
   
   Yes. A regression test covers all four comparison operators for a null 
identity-partition value.
   
   Validation:
   
   ```text
   pytest -q tests/expressions
   573 passed
   ```
   
   Ruff, mypy, commit hooks, and `git diff --check` also pass.
   
   # Are there any user-facing changes?
   
   Yes. Scan planning no longer raises `TypeError` for these nullable identity 
partitions, and residual results match Java null ordering.
   


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