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]