apache / apache/datafusion

Build join schema in a single place

Open
#6,046 3 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.