citusdata / citusdata/citus

In worker_partition_protocol.c, we have a range repartition and a hash repartition function. These functions are asymetric in terms of how they bucket Null values. Making them symmetric is important in the context of Left and Right outer joins.

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

Description

In worker_partition_protocol.c, we have a range repartition and a hash repartition function. These functions are asymetric in terms of how we bucket Null values. In range repartitioning, the 0th bucket is reserved for Null values. In hash repartitioning, this bucket holds both null values and also those that hash to the 0th bucket. Do we want to reserve the 0th hash bucket for null values too? This is important in the context of Left and Right outer joins.

Contributor guide

Open the contributing guide

Research direction

Start in worker_partition_protocol.c by reading the range and hash repartition functions and comparing how they bucket Null values. Determine whether the 0th hash bucket should be reserved for Null values, considering the stated Left and Right outer join impact; the issue does not mention a test or a settled decision.

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
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.