Skip to content

Promote bounds for nested evolved fields - #86

Merged
osipovartem merged 1 commit into
embucket-sync-df55.0.0from
df55-nested-manifest-bound-promotion
Sep 22, 2026
Merged

osipovartem merged 1 commit into
embucket-sync-df55.0.0from
df55-nested-manifest-bound-promotion

Conversation

@osipovartem

Copy link
Copy Markdown

Summary

  • retain the O(1) field-ID lookup for top-level manifest bounds
  • fall back to recursive struct/list/map lookup for nested primitive field IDs
  • verify nested int -> long lower and upper bound promotion

Why

Iceberg metrics may be keyed by nested primitive field IDs. After another engine evolves a nested field, a Rustice append can rewrite its existing manifest entries under the widened schema. The top-level-only lookup added in #85 would leave those old bounds unconverted.

This runs only during manifest metadata rewrites; the normal top-level path remains a hash-map lookup and query row processing is unchanged.

Validation

  • cargo +1.95.0 test -p iceberg-rust-spec promotes_bounds_to_the_manifest_schema -- --nocapture
  • cargo +1.95.0 check -p iceberg-rust
  • cargo +1.95.0 clippy -p iceberg-rust-spec -p iceberg-rust --all-targets -- -D warnings

Generic upstream version: JanKaul#410

@osipovartem
osipovartem merged commit 02de5eb into embucket-sync-df55.0.0 Sep 22, 2026
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