[
https://issues.apache.org/jira/browse/PARQUET-2222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17701914#comment-17701914
]
ASF GitHub Bot commented on PARQUET-2222:
-----------------------------------------
pitrou commented on PR #193:
URL: https://github.com/apache/parquet-format/pull/193#issuecomment-1474171946
Ok, so v2 data pages for RLE-encoded boolean do encode the length:
https://github.com/apache/parquet-mr/blob/1235003e742e6a76bf6cb8f7ed33e942fa12d0d5/parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultV2ValuesWriterFactory.java#L77-L80
However, I don't think that RLE-encoded dictionary indices encode the length:
https://github.com/apache/parquet-mr/blob/1235003e742e6a76bf6cb8f7ed33e942fa12d0d5/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java#L161-L162
... because `RunLengthBitPackingHybridValuesWriter` prepends the length, but
`RunLengthBitPackingHybridEncoder` doesn't:
https://github.com/apache/parquet-mr/blob/1235003e742e6a76bf6cb8f7ed33e942fa12d0d5/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridValuesWriter.java#L68-L70
> [Format] RLE encoding spec incorrect for v2 data pages
> ------------------------------------------------------
>
> Key: PARQUET-2222
> URL: https://issues.apache.org/jira/browse/PARQUET-2222
> Project: Parquet
> Issue Type: Bug
> Components: parquet-format
> Reporter: Antoine Pitrou
> Priority: Critical
> Fix For: format-2.10.0
>
>
> The spec
> (https://github.com/apache/parquet-format/blob/master/Encodings.md#run-length-encoding--bit-packing-hybrid-rle--3)
> has this:
> {code}
> rle-bit-packed-hybrid: <length> <encoded-data>
> length := length of the <encoded-data> in bytes stored as 4 bytes little
> endian (unsigned int32)
> {code}
> But the length is actually prepended only in v1 data pages, not in v2 data
> pages.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)