aaron-perpetual opened a new pull request, #2415: URL: https://github.com/apache/iceberg-rust/pull/2415
## Summary - Replace the shape-equality fast-path gate (`shapes_match`) with `positions_aligned`, which checks `PARQUET:field_id` per column. When an actual column carries an id, it must match the expected id at the same position; columns without an id defer to the producer's positional contract. Data types are no longer compared. - This fixes two classes of bug the previous gate had: it would reject innocuous arrow type variants (e.g. `Utf8` ↔ `Utf8View`) and force the slow path; and it would accept same-typed column reshuffles, silently routing the cached projector to the wrong source column. - Precompute expected field-ids once at construction so the per-batch hot path only parses metadata on the actual schema. ## Test plan - [x] `cargo test -p iceberg --lib partition_value_calculator` — all 6 tests pass, including new coverage for same-typed field-id swaps and mixed metadata with type variants. - [x] `cargo build -p iceberg --lib` clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
