lszskye opened a new pull request, #64:
URL: https://github.com/apache/paimon-cpp/pull/64

   ## feat: add data evolution reader infrastructure
   
   ### Changes
   
   #### `DataEvolutionArray`
   - An `InternalArray` implementation composed of multiple `BinaryArray` 
instances. Uses `array_offsets` and `field_offsets` mapping to redirect element 
access to the correct underlying array and position. Elements mapped to 
negative offsets are treated as null, enabling schema evolution scenarios where 
fields may not exist in all source arrays.
   
   #### `DataEvolutionRow`
   - An `InternalRow` implementation composed of multiple `BinaryRow` 
instances. Uses `row_offsets` and `field_offsets` mapping to redirect field 
access to the correct underlying row and position. Lazily retrieves `RowKind` 
from the first row. Fields mapped to negative offsets return null, supporting 
schema evolution where columns may be absent in some source rows.
   
   #### `DataEvolutionFileReader`
   - A `BatchReader` that assembles multiple inner readers into a single 
unified reader. Each output field is sourced from a specific inner reader at a 
specific offset, controlled by `reader_offsets` and `field_offsets` arrays. 
Handles batch alignment across readers with different schemas, caches partial 
batches, and creates null arrays for non-existent fields. Only supports 
`NextBatchWithBitmap()`.
   
   ### Tests
   
   - `DataEvolutionArrayTest`
   - `DataEvolutionRowTest`
   - `DataEvolutionFileReaderTest`


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

Reply via email to