andygrove opened a new pull request, #7013: URL: https://github.com/apache/datafusion-comet/pull/7013
## 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 fourth of five PRs for its first sub-task, which moves the largest `create_plan` arms. ## What changes are included in this PR? Stacked on #7012, so until that merges this PR also contains its commits. The change here is the last commit, 09390bc43bc157a46219d2c3e3063c1bc03916c0. - Move the `HashJoin`, `SortMergeJoin` and `BroadcastNestedLoopJoin` arms of `create_plan` into builders in a new `planner/join.rs`. - Move the helpers they use along with them: `parse_join_parameters` and `JoinParameters`, which build the join keys and filter for all three joins, the join-filter column rewriting (`expr_to_columns`, `JoinFilterRewriter` and `rewrite_physical_expr`), `strip_timestamp_tz` for sort-merge join keys, and the runtime-filter helpers `prepare_probe_for_runtime_filters` and `apply_join_dynamic_filter`. - Add `OperatorType::BroadcastNestedLoopJoin` and register the three builders. #6979 lists `BroadcastNestedLoopJoin` under its second sub-task. It moves here because it shares `parse_join_parameters` with the other two joins. 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="org.apache.comet.exec.CometJoinSuite"` (84 passed) -- 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]
