apache / apache/datafusion

Epic: Join Order Enumeration

Open
#18,249 3 comments 21 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

Related: [Discussion: API for Join Access Path and Join Order Selection](https://github.com/apache/datafusion/issues/17718)

This Epic Ticket outlines high-level components and examples for us to explore and define APIs for Join Access Path and Join Order Selection.

This ticket aims to provide a high-level but comprehensive view, including:
- [A Join Graph for TPC-H Query 5](https://github.com/apache/datafusion/issues/18250)
- [Join Order Enumeration for Q5 using abstract Join Ranking and Plan Pruning](https://github.com/apache/datafusion/issues/18251)
- [A customizable Join Ranking example](https://github.com/apache/datafusion/issues/18257) for API design, considering some interesting properties
- [Some Plan Pruning Strategies](https://github.com/apache/datafusion/issues/18258)
- [Do we want a simple or traditional cost model](https://github.com/apache/datafusion/issues/18259)?

The goal is to spark deeper discussion and help break this epic into focused, actionable tickets.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start with the linked discussion and the child issues 18250, 18251, 18257, 18258, and 18259 to understand the proposed join graph, enumeration, ranking, pruning, and cost-model questions. Done means the high-level exploration has been turned into focused, actionable tickets with defined APIs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.