anuragmantri opened a new pull request, #18388: URL: https://github.com/apache/iceberg/pull/18388
Depends on #18324 This PR is only the top commit 192d90be3a09f7e4031972aa13ac18e1e5b7e383 This PR adds `org.apache.iceberg.data.GenericStitchers`, modeled on `SparkStitchers` in #18324. - The stitched `Record` reads each field from the part that `StitchLayout` assigns it to. - `set` and `setField` write through to that part, as the Spark row does, and `copy()` returns a detached `GenericRecord`. - `GenericReader` now resolves column files to `InputFile`s, unencrypted only. - An encrypted column file fails with a clear error. `inputFiles(DataFile)` is the method the planned `InputFilesDecryptor` wiring will replace. - `ColumnFileTestHelpers` moves from Spark to core test sources so the data tests can use it. Test plan: - Reading through `GenericReader` returns column-file values instead of stale base values, keeps a struct from the base intact, and still works for a projection of only base fields. - A deletion vector drops the right rows, because the delete filter reads `_pos` through the stitched record. - `TestGenericStitchers` validates the record's contract: fields resolve in projection order by position and name, a set value reads back, `copy()` stays intact when the parts change (readers reuse part records), and the parts list is not kept. --- **AI Disclosure** - Model: Claude Opus 5.5 - Platform/Tool: Claude Code - Human Oversight: Fully reviewed after code generation - Prompt Summary: Implement the Record stitcher that #18324's `StitcherRegistry` names and wire it into `GenericReader`. -- 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]
