Skip to content

Commit 775d723

Browse files
committed
Override readIntegers() in RLE ValuesReader to delegate to batch decoder
RunLengthBitPackingHybridValuesReader inherited the default loop from ValuesReader.readIntegers() which called readInteger() per value. Delegate to decoder.readInts() which uses Arrays.fill for RLE runs and System.arraycopy for packed groups (+128% throughput).
1 parent ecd1881 commit 775d723

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridValuesReader.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ public int readInteger() {
5454
}
5555
}
5656

57+
@Override
58+
public void readIntegers(int[] dest, int offset, int count) {
59+
try {
60+
decoder.readInts(dest, offset, count);
61+
} catch (IOException e) {
62+
throw new ParquetDecodingException(e);
63+
}
64+
}
65+
5766
@Override
5867
public boolean readBoolean() {
5968
return readInteger() == 0 ? false : true;

0 commit comments

Comments
 (0)