apache / apache/arrow

[C++] Fix handling of logical nulls by compute kernels processing run-end encoded arrays or arrays of unions

Open
#35,058 1 comment 0 reactions 0 assignees View on GitHub
Component: C++ Type: bug
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 18h
Merged PRs (30d)
91

Description

Since #34361 and the introduction of special validity checks in #34408, we are aware that parts of the codebase handle nulls the wrong way when the input is a run-end encoded array (NEW) or an union array.

This issue aims to be a list of compute kernels that have to be changed regarding nulls in these special array types by using specialized ways of determining a valid is a logical null instead of relying on validity bitmaps that are absent in these types of arrays:

- [ ] `is_null` #34315
- [x] `hash_count` #35059
- [ ] `drop_null` #43851
- [x] `count` #49888
- [ ] `true_unless_null` #49889

### Component(s)

C++

Contributor guide

Open the contributing guide

Research direction

Start with the unchecked compute-kernel items: is_null (#34315), drop_null (#43851), and true_unless_null (#49889). Read the issue references and compare them with the completed hash_count and count items to understand the specialized logical-null handling. Done means the remaining kernels correctly handle run-end encoded and union arrays.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.