Implement group join
- 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?
From https://www.vldb.org/pvldb/vol4/p843-moerkotte.pdf
A group join will use a single table from the hash join for executing a join followed by a group by on the same columns.
An example query from the paper introduction
```
select a,count(*)
from R1 left outer join R2 on R1.a = R2.b
where R1.c=5
group by a
```
### Describe the solution you'd like
Implement group join in execution and in the (logical) planner.
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Research direction
Start with the linked VLDB paper and then trace DataFusion's logical planner and execution paths for joins and grouping. The work is complete when group join is supported in both layers and the example query can execute with the join and group by sharing the relevant table.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100