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]

Reply via email to