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

   Allows `FileScanTaskReader` to read Parquet byte ranges created by the 
task-range API in #976. Each split selects row groups by midpoint, matching 
Java Iceberg, while `_pos` and `_row_id` remain relative to the whole file so 
position deletes and row lineage continue to work.
   
   Supersedes #1002. Based on `main`, which includes #976.
   
   The reader handles missing row-group offsets and noncontiguous selections, 
skips empty row groups, and validates page offsets and compressed sizes. Task 
bounds are checked again when opening; partial reads for other formats return 
`NotSupported`. Removes the redundant `FileScanTask::Range::file_size` field 
and uses the data file's size for row estimates, with a guard for nonpositive 
sizes.
   
   Tests cover split coverage, midpoint boundaries, whole-file row positions 
and row IDs, deletes, missing and out-of-order offsets, invalid metadata, and 
changed file sizes.
   
   Validation:
   
   - Built `scan_test` and `data_test`; both suites passed (329 tests passed, 
10 skipped).
   - Changed C++ files passed `clang-format --dry-run --Werror` with 
clang-format 20.1.8; `git diff --check` passed.
   - The Parquet reader compiled, but the `parquet_test` target is blocked by 
an unchanged test from `main`: `row_number_reader_test.cc:192` uses 
`std::ranges::iota`, which the local clang 18/libc++ toolchain does not 
provide. The Parquet suite has not run on this rebased version.
   - Attempted `pre-commit`; the tool is unavailable locally and installation 
failed because PyPI DNS resolution failed, so its hooks have not run.
   


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