cappyzawa opened a new pull request, #3357: URL: https://github.com/apache/iceberg-rust/pull/3357
## Which issue does this PR close? - Closes apache/iceberg-rust#3356. ## What changes are included in this PR? - `FileScanTaskReader::process` turns off both `preload_column_index` and `preload_offset_index` for a task without a predicate or delete files, since such a task builds no row selection and nothing reads its page index. - Tasks with a predicate or deletes keep loading both indexes as before. The column index is unused there too when row selection is disabled, but the offset index lets Parquet fetch only the pages a row filter or positional delete selects, so narrowing that case is left out of this change. - `ParquetReadOptions::preload_page_index` is removed. The column and offset policies applied after it always overrode it, which is how the per-task decision stopped taking effect. ## Are these changes tested? Yes. `test_scan_without_predicate_or_deletes_does_not_read_page_index` scans the same file with and without a predicate, using a minimal metadata prefetch hint so the page index is fetched separately, and checks that the difference in bytes read equals the page index length. It fails on `main` with a difference of 0. ## AI Disclosure Claude (Claude Code) helped investigate the reader, write the change and the test, and draft this description. I reviewed the change and ran the tests. -- 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]
