adriangb opened a new pull request, #23396: URL: https://github.com/apache/datafusion/pull/23396
## Which issue does this PR close? - N/A — pure code movement, split out of a larger change (see rationale). First of a 3-PR stack: this refactor, #BENCH_PR (benchmark), and the feature PR (nested schema pruning for the parquet reader, upstream work for apache/datafusion-comet#4859). ## Rationale for this change `row_filter.rs` is 2,100+ lines and contains two distinct concerns: row-filter/`ArrowPredicate` construction, and the shared "expressions → parquet leaf indices → `ProjectionMask` + projected schema" resolution used by both the row filter and the opener's projection handling. This PR moves the second concern into its own module, `projection_read_plan.rs`, so upcoming changes to projection-mask derivation can be reviewed without wading through the row-filter machinery. This is mergeable as standalone cleanup regardless of whether the follow-up feature is accepted. ## What changes are included in this PR? A move-only refactor (best reviewed with `git diff --color-moved`): - `ParquetReadPlan`, `StructFieldAccess`, `build_projection_read_plan`, `leaf_indices_for_roots`, `resolve_struct_field_leaves`, `build_filter_schema`, `prune_struct_type` and the path-grouping helpers move from `row_filter.rs` to a new `projection_read_plan.rs`, together with their test. - `PushdownChecker` / `PushdownColumns` become `pub(crate)` so the new module can keep using them. - `decoder_projection.rs` imports `build_projection_read_plan` from its new home. No behavior change; net +57 lines (module docs, imports, visibility). ## Are these changes tested? Covered by existing tests (the moved unit test plus the `datafusion-datasource-parquet` and core parquet integration suites, which all pass unchanged). ## Are there any user-facing changes? No. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01KuMaRtFSPDQesuzjN5Koyd -- 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]
