Xuanwo opened a new pull request, #23829: URL: https://github.com/apache/datafusion/pull/23829
## Which issue does this PR close? - Part of #318. - Umbrella PR: #23738. - Depends on #23828. ## Rationale for this change This is the logical-planning layer of the ASOF JOIN stack. It defines the logical contract and planner behavior separately from the SQL frontend and serialization formats. GitHub shows the cumulative stack because fork branches cannot be selected as upstream PR bases. The isolated diff for this layer is: https://github.com/Xuanwo/datafusion/compare/xuanwo/asof-physical...xuanwo/asof-logical ## What changes are included in this PR? - Add `LogicalPlan::AsOfJoin`, `AsOfJoin`, and `AsOfMatch`. - Validate deterministic expressions, input ownership, supported match operators, equality-key types, and USING constraints. - Add `LogicalPlanBuilder` entry points and schema construction. - Integrate ASOF joins with tree transforms, display, type coercion, projection pruning, filter pushdown, and physical planning. - Fail closed at proto, SQL unparser, and Substrait boundaries until their owning stack layers add explicit support. - Add filter-pushdown and Substrait boundary tests. ## Are these changes tested? Yes: - `cargo fmt --all` - `cargo clippy --all-targets --all-features -- -D warnings` - `cargo test -p datafusion --test core_integration test_asof_join_pushes_only_left_filters --all-features` - `cargo test -p datafusion-substrait asof_join_fails_closed_until_substrait_has_an_extension --all-features` - Extended workspace tests from the contributor guide ## Are there any user-facing changes? This adds logical-plan and builder APIs for ASOF joins. SQL syntax, DataFrame APIs, and plan serialization are intentionally left to dependent stack PRs. This PR should be reviewed and merged after #23828. After the dependency squash-merges, this branch will be refreshed from `main` without rewriting its published history. -- 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]
