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]
