haohuaijin opened a new issue, #10424:
URL: https://github.com/apache/arrow-rs/issues/10424
**Is your feature request related to a problem or challenge? Please describe
what you are trying to do.**
Follow up to #10141.
`parquet/src/arrow/arrow_reader/selection/mod.rs` has grown past 2100 lines
(plus ~1300 lines in `selection/boolean.rs`) and now mixes several concerns:
- the `RowSelection` type and its public API,
- the set-algebra helpers (`intersection` / `union` / `and_then` and the
selector-merge algorithms),
- the cursor machinery (`RowSelectionCursor`, `RowSelectionPolicy`,
`RowSelectionStrategy`),
- a large test module.
This was noted during review of #10141 but deferred to keep that PR's diff
reviewable.
**Describe the solution you'd like**
A mechanical, no-functional-change reorganization, e.g.:
- `selection/mod.rs` — `RowSelection`, `RowSelector`, public API surface
- `selection/algebra.rs` — intersection/union/and_then and merge helpers
- `selection/cursor.rs` — cursor and policy/strategy types
- `selection/boolean.rs` — (existing) mask-specific implementation
- tests moved next to the code they cover
The public API (`parquet::arrow::arrow_reader::{RowSelection, RowSelector,
RowSelectionCursor, RowSelectionPolicy, RowSelectionIter, MaskRunIter}`)
must be
unchanged.
**Describe alternatives you've considered**
Leaving the file as is; it works but is increasingly hard to navigate and
review.
--
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]