Build join schema in a single place
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 2.4k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 344
Description
### Is your feature request related to a problem or challenge?
There are two `fn build_join_schema` implementations
https://github.com/apache/arrow-datafusion/blob/3ad7734a7e5b1844b02f1374d0dc1c441bef216d/datafusion/expr/src/logical_plan/builder.rs#L1039
https://github.com/apache/arrow-datafusion/blob/6e819d6c2b9280198c67fa16df3e54c79ce46ca2/datafusion/core/src/physical_plan/joins/utils.rs#L349
which likely doing the same thing. Ideally to have single code base for all usecases
### Describe the solution you'd like
have single code base for all build join schema usecases
### Describe alternatives you've considered
None
### Additional context
Followup from https://github.com/apache/arrow-datafusion/pull/6015#discussion_r1168475782
Contributor guide
Research direction
Compare the two build_join_schema implementations in datafusion/expr/src/logical_plan/builder.rs and datafusion/core/src/physical_plan/joins/utils.rs, using the linked PR discussion as context. Trace their callers and identify the shared representation needed across logical and physical join use cases. Done means the duplicate implementations are replaced by one code path without changing the supported join-schema behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100