apache / apache/arrow

[Parquet][C++] Optimize `RecordReader` for flat optional

Open
#50,628 0 comments 0 reactions 1 assignee Claimed by @AntoinePrv View on GitHub
Component: C++ Component: Parquet Type: enhancement
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

### Describe the enhancement requested

When reading flat optional values from a Parquet file, the definition levels correspond to Arrow validity bitmap.
We can speed up `RecordReader` for this common case by decoding the levels directly as the validity bitmap.

Open questions:
- Should `int16_t* RecordReader::def_levels()` return `nullptr` (break) or make an effort to still provide some levels (additional complexity or cost). The new faster breaking behavior could also be enabled my a ctor flag.

### Component(s)

C++, Parquet

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.