kamcheungting-db opened a new pull request, #1002:
URL: https://github.com/apache/iceberg-cpp/pull/1002

   ## Summary
   
   Part 2a of split and parallel scans. Builds on #976, which added validated 
`FileScanTask` byte ranges but made `FileScanTaskReader` reject partial tasks. 
This PR lets the reader honor ranges for Parquet files.
   
   > **Depends on #976.** Until it merges, this diff also contains #976's two 
commits. Please review only the last commit, `feat(scan): read Parquet files by 
task range`.
   
   - pass task ranges from `FileScanTaskReader` to the Parquet reader, while 
keeping the full file size available for reading the footer
   - assign each row group to a range by its first column's starting page, so 
assignment works when optional row-group offsets are missing and adjacent 
ranges read every row exactly once
   - keep row positions and inherited row IDs relative to the whole file, so 
position deletes and row lineage stay correct (even when page offsets are out 
of order)
   - recheck task bounds when opening a file, skip empty row groups, and reject 
invalid page offsets
   - keep rejecting partial tasks for formats that do not support range reads 
yet
   
   ## Testing
   
   Adds tests for split boundaries, deletes, row lineage, changed file sizes, 
and a Parquet file without row-group offsets 
(`split-without-row-group-offsets.parquet`).
   
   - `ctest --test-dir build-clang -R "^(data_test|parquet_test|scan_test)$" 
--output-on-failure`
   - `clang-format --dry-run --Werror` on the changed C++ sources
   - `git diff --check`
   
   This pull request and its description were written by Isaac.
   


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