jiwen624 commented on PR #18478:
URL: https://github.com/apache/iceberg/pull/18478#issuecomment-6328811417

   > The fix is in `projectStrict`, and `Identity.project` delegates to it, so 
both the inclusive and the strict projection go through it. I checked the four 
combinations on main without this patch (1.12.0-SNAPSHOT). Identity on 
`timestamp_ns`, partition value `1970-01-02T00:00:00.000000001`, set `{that, 
1970-01-03T00:00:00}`:
   > 
   > projection result  expected
   > inclusive `IN`     false   true
   > strict `IN`        false   true
   > inclusive `NOT IN` true    false
   > strict `NOT IN`    **true**        false
   > The test only covers the first row. The strict `NOT IN` case is the delete 
path from the description: the partition is treated as entirely outside the 
set, so `DeleteFiles` with a `notIn` filter drops a file that holds matching 
values. Since that's the one that loses data, a case like 
`Projections.strict(spec).project(Expressions.notIn("ts", ts, …))` evaluating 
to false for `ts` would pin it.
   
   Hi @JeonDaehong Thanks for the review - it makes sense. Added a test case to 
cover the gap.


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