sam-1112 opened a new pull request, #3632:
URL: https://github.com/apache/iceberg-rust/pull/3632

   ## Which issue does this PR close?
   
   Closes #3611.
   
   ## What changes are included in this PR?
   
   INT96 timestamp coercion preserves a timezone-less Arrow type even when 
Iceberg requests timestamptz. Projection compatibility checks then exclude the 
column, causing multi-column reads to silently return NULL.
   
   Coerce confirmed physical INT96 columns to the precision and timezone 
required by the Iceberg schema, including timezone-only adjustments for 
timestamptz_ns. Preserve field metadata and nested structures while leaving 
non-INT96 timestamp types unchanged.
   
   ## Are these changes tested?
   
   Regression tests compare complete batches and physical projection masks 
across projection orders, embedded field IDs, name mapping, and positional 
fallback. Coverage includes genuine NULLs, missing fields and defaults, mixed 
timestamp encodings, nested structs/lists/maps, and dates outside the 
nanosecond range.
   
   Validation passed:
   
   - INT96 tests: 29 passed.
   - Full iceberg library suite: 2,131 passed, 1 ignored.
   - Doctests, all-targets/all-features Clippy, and formatting checks.
   - Public API generation: no snapshot changes.
   
   Also validated alongside #3624 at 30b9c20. Its additional Name Mapping 
parameter required a one-line adjustment to the mask-test helper in the 
isolated checkout.
   
   ## AI Disclosure
   
   OpenAI Codex assisted with implementation and tests. Review should focus on 
the assumption that full Arrow primitive traversal matches physical Parquet 
column order, and on UTC schema-hint handling for INT96 timestamptz types.


-- 
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]

Reply via email to