apache / apache/parquet-java

Different RLE Encoding Specification

Open
#1,958 4 comments 0 reactions 0 assignees View on GitHub
Component: Parquet Priority: Trivial Type: enhancement
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

In the parquet-format specification https://github.com/Parquet/parquet-format/blob/master/Encodings.md#run-length-encoding--bit-packing-hybrid-rle--3
is written that the RLE encoding starts with
```
rle-bit-packed-hybrid:
length := length of the in bytes stored as 4 bytes little endian
```

while in the cpp implementation there is this description https://github.com/apache/parquet-cpp/blob/master/src/parquet/util/rle-encoding.h#L42 and the implementation seems to follow that specification
which does not include the initial
https://github.com/apache/parquet-cpp/blob/master/src/parquet/util/rle-encoding.h#L272

So which one is the correct? seems that the parquet-format is the wrong one.
DataPage.definitionLevels uses RLE and none of the example format files seem to have that initial

Also the use of both names `literal` and `bit-encoding` is confusing.

**Reporter**: [Fabrizio Milo](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=fmilo)

**Note**: *This issue was originally created as [PARQUET-575](https://issues.apache.org/jira/browse/PARQUET-575). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Compare the RLE/bit-packing description in Encodings.md with the referenced parquet-cpp rle-encoding.h implementation, including the DataPage definition-level usage and example format files. Determine which framing and terminology are authoritative, then update the specification and clarify the names once the discrepancy is resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.