Conversation
cbb330
added a commit
that referenced
this pull request
Feb 20, 2026
cbb330
added a commit
that referenced
this pull request
Feb 20, 2026
Implements predicate pushdown in the scan path by filtering stripes based on column statistics before reading data. This is the core integration that enables I/O reduction. Changes: 1. Modified OrcScanTask to accept selected stripe indices - Changed Execute() to read only selected stripes using ReadStripe() - Iterator returns one batch per stripe (stripe = unit of parallelism) 2. Modified OrcScanTaskIterator to call FilterStripes - Applies predicate pushdown automatically during scan - FilterStripes ensures metadata is loaded - Returns task with selected stripes (empty if none match) 3. Stripe-selective reading - Task reads selected stripes one at a time using ReadStripe() - Replaces previous GetRecordBatchReader() which read all stripes - Implements stripe-level granularity from Task #0.5 Benefits: - Skips stripes where predicate is known to be unsatisfiable - Skips empty stripes (num_rows == 0) - Reduces I/O by avoiding reads of filtered stripes - Statistics loaded lazily and cached incrementally Example: Query "WHERE x > 1000" on file with 10 stripes - Stripe 0: x in [0, 100] -> Skip (literal(false)) - Stripe 5: x in [500, 600] -> Skip (literal(false)) - Stripe 9: x in [900, 1100] -> Scan (may have x > 1000) Result: Only scans stripes that may contain matching rows Verified: Mirrors cpp/src/arrow/dataset/file_parquet.cc lines 619-636 Co-authored-by: Claude Sonnet 4.5 <[email protected]>
cbb330
added a commit
that referenced
this pull request
Feb 20, 2026
|
Thanks for opening a pull request! If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project. Then could you also rename the pull request title in the following format? or See also: |
cbb330
added a commit
that referenced
this pull request
Feb 24, 2026
cbb330
added a commit
that referenced
this pull request
Feb 24, 2026
Implements predicate pushdown in the scan path by filtering stripes based on column statistics before reading data. This is the core integration that enables I/O reduction. Changes: 1. Modified OrcScanTask to accept selected stripe indices - Changed Execute() to read only selected stripes using ReadStripe() - Iterator returns one batch per stripe (stripe = unit of parallelism) 2. Modified OrcScanTaskIterator to call FilterStripes - Applies predicate pushdown automatically during scan - FilterStripes ensures metadata is loaded - Returns task with selected stripes (empty if none match) 3. Stripe-selective reading - Task reads selected stripes one at a time using ReadStripe() - Replaces previous GetRecordBatchReader() which read all stripes - Implements stripe-level granularity from Task #0.5 Benefits: - Skips stripes where predicate is known to be unsatisfiable - Skips empty stripes (num_rows == 0) - Reduces I/O by avoiding reads of filtered stripes - Statistics loaded lazily and cached incrementally Example: Query "WHERE x > 1000" on file with 10 stripes - Stripe 0: x in [0, 100] -> Skip (literal(false)) - Stripe 5: x in [500, 600] -> Skip (literal(false)) - Stripe 9: x in [900, 1100] -> Scan (may have x > 1000) Result: Only scans stripes that may contain matching rows Verified: Mirrors cpp/src/arrow/dataset/file_parquet.cc lines 619-636 Co-authored-by: Claude Sonnet 4.5 <[email protected]>
cbb330
added a commit
that referenced
this pull request
Feb 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates task_list.json to mark Task #4 as complete.