-
Notifications
You must be signed in to change notification settings - Fork 387
fix table.delete()/overwrite() with null values #955
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you very much for putting up this PR so quickly! It's amazing how fast you've investigated this issue and put forward a working solution. Just wanted to highlight that the proposed implementation is consistent with Spark Iceberg's behavior. For a given Iceberg table: Scan API ignore Null values unless null is specified in the predicate expression: While the DELETE API avoids deleting nulls unless it is specified directly in the predicate expression. So I agree with @jqin61 's finding that we have to walk through the predicate expression to check if Nulls/NaNs were directly mentioned explicitly in the delete filter to revert the expression correctly as proposed. Simple negation of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still need to fix some tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jqin61 Thanks for flagging this critical issue and providing a fix quickly! It looks great! Leaving some comments below
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for taking the time to investigate the typing issue. Although that does not affect code logic, it is great to fix those to improve readability and avoid confusion. I have a final comment about using Any instead of generic L in concrete class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* fix * naming * handle nan as well * naming as sung suggested * one more test to fix; one more comment to address * fix a test * refactor code organization * fix mouthful naming * restore usage of BoundTerm * small fixes for comments * small fix for typing * fix typing according to pr comment
* fix * naming * handle nan as well * naming as sung suggested * one more test to fix; one more comment to address * fix a test * refactor code organization * fix mouthful naming * restore usage of BoundTerm * small fixes for comments * small fix for typing * fix typing according to pr comment
for issue #954