Skip to content

Prune pre-epoch day and hour partitions conservatively - #117

Merged
osipovartem merged 1 commit into
embucket-sync-df55.0.0from
fix/df55-negative-day-hour-pruning
Oct 15, 2026
Merged

osipovartem merged 1 commit into
embucket-sync-df55.0.0from
fix/df55-negative-day-hour-pruning

Conversation

@osipovartem

Copy link
Copy Markdown

Summary

  • Project negative timestamp day predicates against both floor-based and legacy truncation-toward-zero partition IDs.
  • Project negative hour equality only when both IDs fit in i32; leave negative hour ranges unpruned because wrapped IDs break monotonicity.
  • Compute negative day/hour literal IDs with checked integer division, avoiding the extreme-date scalar conversion path.
  • Test actual manifest pruning masks, including an i64::MIN day literal and an out-of-range hour literal.

Verification

  • cargo +1.99.0 test -p datafusion_iceberg --lib: 113 passed, 2 ignored.
  • cargo +1.99.0 clippy -p datafusion_iceberg --all-targets: passed with existing warnings; one new warning was fixed afterward.
  • cargo +1.99.0 fmt --all -- --check and git diff --check: passed.
  • Independent read-only review: approved after two correctness fixes.

The positive-timestamp and NULL fast paths are unchanged. Rustice integration test and dependency pin are being validated in a separate branch.

@osipovartem
osipovartem merged commit 155a73f into embucket-sync-df55.0.0 Oct 15, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant