Different RLE Encoding Specification
- 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