andygrove opened a new pull request, #7014: URL: https://github.com/apache/datafusion-comet/pull/7014
## Which issue does this PR close? Part of #6979. ## Rationale for this change `PhysicalPlanner::create_plan` builds most operators inline, which makes `planner.rs` the most frequently edited file in the native code and a regular source of merge conflicts. #6979 proposes finishing the move onto `OperatorRegistry`, one operator family per PR. This is the last of five PRs for its first sub-task, which moves the largest `create_plan` arms. Together they take `create_plan` from 1,320 lines to 373, and `planner.rs` from 8,555 lines to 6,189. ## What changes are included in this PR? Stacked on #7013, so until that merges this PR also contains its commits. The change here is the last commit, 28081202a661d0dd3e47173920b8b4e4f0050369. - Move the `Window` and `WindowGroupLimit` arms of `create_plan` into builders in a new `planner/window.rs`. - Move the window expression planning along with them: `create_window_expr`, `process_agg_func`, `find_df_window_function` and `numeric_literal_to_scalar`. - Add `OperatorType::WindowGroupLimit` and register both builders. - Point the window example in the debugging guide at `WindowBuilder::build`. #6979 lists `WindowGroupLimit` under its second sub-task. It moves here to keep window planning in one module. The moved code is unchanged apart from `self` becoming `planner` in the builders and rustfmt reflowing the dedented lines. `git show --color-moved=zebra --color-moved-ws=allow-indentation-change` marks almost all of the removed lines as moved. ## How are these changes tested? This moves code without changing behavior, so it relies on the existing tests: - `cargo fmt --all -- --check` - `cargo clippy --color=never --all-targets --workspace -- -D warnings` - `cargo test -p datafusion-comet --lib` (874 passed, 5 ignored) - `./mvnw test -Dtest=none -Dsuites=...` with the MergeRows, Generate, Join, Window and Aggregate suites, which cover every operator moved in this stack (362 passed, 1 canceled because it needs Spark 4.2, 2 ignored) -- 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]
