Skip to content

fix(spec): preserve exact schema and temporal value semantics - #3077

Draft
aarushigupta132 wants to merge 2 commits into
apache:mainfrom
aarushigupta132:ag/schema-update-spec-prereqs
Draft

fix(spec): preserve exact schema and temporal value semantics#3077
aarushigupta132 wants to merge 2 commits into
apache:mainfrom
aarushigupta132:ag/schema-update-spec-prereqs

Conversation

@aarushigupta132

@aarushigupta132 aarushigupta132 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Prerequisite for the focused UpdateSchema series split from #3069.

What changes are included in this PR?

  • Parses and formats the full Iceberg i32 date and i64 microsecond timestamp domains instead of being limited by chrono calendar ranges.
  • Preserves exact microsecond fractions and handles extended proleptic-Gregorian years in JSON and display paths.
  • Serializes pre-epoch nanosecond timestamps with the correct Euclidean second/nanosecond split.
  • Makes case-insensitive schema lookup reject names that differ only by case instead of selecting one nondeterministically.
  • Makes schema equivalence independent of identifier-set iteration order and consistent with Java floating-point equality for defaults.

This is independently mergeable and contains no transaction or schema-evolution API.

Are these changes tested?

Yes. Coverage includes temporal range boundaries, pre-epoch microsecond and nanosecond values, extended years, offsets and fractional rendering, ambiguous schema names, identifier-set ordering, NaNs and signed zero. All 1,591 iceberg library tests, 89 doctests, formatting, diff checks, and all-feature library Clippy pass.

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