gbrgr opened a new pull request, #2353:
URL: https://github.com/apache/iceberg-rust/pull/2353
## Summary
- When `from_snapshot_id` is `None` (scan from the beginning of time), the
incremental scan was silently dropping `EXISTING` manifest entries, causing
data from expired snapshots to go missing
- Root cause: three compounding filters excluded data files whose original
snapshot was expired from the catalog — the `added_snapshot_id` manifest
filter, the `filter_fn` entry filter, and the `else { Ok(()) }` status check
- Fix: when `from=None`, switch to full-scan semantics — use only
`to_snapshot`'s manifest list (no `added_snapshot_id` filter), clear
`filter_fn`, and treat `EXISTING` entries as appends alongside `Added` entries
## Test plan
- [x] New test
`test_incremental_scan_from_none_includes_existing_entries_from_expired_snapshots`
— creates a 2-snapshot table, rebuilds the Table with only snapshot 2 in the
metadata (simulating snapshot 1 being expired), and asserts that `from=None`
returns all live rows including those from the expired snapshot
- [x] All 28 existing incremental scan tests pass without regression
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
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]