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]
