apache / apache/arrow

[C++] Complete RunLengthEncoded type

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

Description

We currently have a RunLengthEncoded DataType class that is good enough to RLE ArrayData and ArraySpan instances, and dispatch Kernels based on it, with not too much functionally beyond that. This task is to implement the regular Arrow C++ functionality you would expect to work on all data types:
- Corresponding Array type
- Corresponding Array Builder
- type traits
- make_array() should work
- Validate() / ValidateFull() passes
- type tests pass
- ...?

To me these all seem pretty entangled with each other, but if you find a way to split this into multiple tasks, feel free to do so.

The basic functionality is included in . So this PR can be based upon that branch.

**Reporter**: [Tobias Zagorni](https://issues.apache.org/jira/browse/ARROW-16781) / @zagto

**Note**: *This issue was originally created as [ARROW-16781](https://issues.apache.org/jira/browse/ARROW-16781). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start from the basic functionality in PR #13330 and trace how RunLengthEncoded currently supports RLE ArrayData and ArraySpan instances and kernel dispatch. Review the requested corresponding Array, Array Builder, type traits, make_array(), Validate()/ValidateFull(), and type tests; done means the regular Arrow functionality listed in the issue works and the type tests pass.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.