RLE decoding should treat 0 length runs as error
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.6k
- Ø Merge
- 3 T. 12 Std.
- Gemergte PRs (30 T.)
- 33
Beschreibung
RunLengthBitPackingHybridDecoder accepts run headers that encode 0 length repeated runs, and treats them as if they were 2^32 length run, so effectively every value returned for that data page will be the same. (see https://github.com/apache/parquet-mr/blob/0a86429939075984edce5e3b8195dfb7f9e3ab6b/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java#L66 )
Throwing an exception if count is 0 would give a proper error message for some corrupt files, and would make it clear that these are not legal values.
**Reporter**: [Csaba Ringhofer](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=csringhofer) / @csringhofer
**Note**: *This issue was originally created as [PARQUET-1250](https://issues.apache.org/jira/browse/PARQUET-1250). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne in parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java an der verlinkten Zeile, an der die Anzahl der Läufe dekodiert wird. Verfolge die Behandlung einer Anzahl von null und füge Testabdeckung für den Fall eines beschädigten Headers hinzu. Fertig ist es, wenn Läufe der Länge null eine Ausnahme erzeugen, statt als ein sehr großer Lauf behandelt zu werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data-engineering
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 58/100