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.
- 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
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