citusdata / citusdata/citus

Outer Join post-5.0 Improvements

Open
#26 1 comment 0 reactions 0 assignees View on GitHub
technical debt
Dominant language
C
Stars
12.8k
Forks
794
Avg merge
2d 14h
Merged PRs (30d)
31

Description

Citus 5.0 has partial support for outer join queries. We'd now like to refactor and expand on this feature's scope.
- Design unified join order planner (high priority)
- Implement unified join order planner (high priority)
- Generate replacement for prunable outer join (e.g. join with empty table)
- Do not push down filters on outer join output in re-partition joins
- Create bucket(s) for non-matching values in single-repartition outer joins
- Integration with subqueries

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing Citus 5.0 outer-join support and the join-order planner entry points. Trace each listed area—unified planning, pruning, filter pushdown, non-matching buckets, and subqueries—to determine the affected components. Done requires a design and implementation covering the full scope, with validation for each outer-join case.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, postgresql
Domain
databases, distributed-systems
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.