diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryLongDecimalDeltaValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryLongDecimalDeltaValuesDecoder.java index 676ca0fadcebd..fb08cd047e0cc 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryLongDecimalDeltaValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryLongDecimalDeltaValuesDecoder.java @@ -49,7 +49,7 @@ public void readNext(long[] values, int offset, int length) BinaryValuesDecoder.ValueBuffer valueBuffer = delegate.readNext(length); int bufferSize = valueBuffer.getBufferSize(); byte[] byteBuffer = new byte[bufferSize]; - int[] offsets = new int[bufferSize + 1]; + int[] offsets = new int[length + 1]; delegate.readIntoBuffer(byteBuffer, 0, offsets, 0, valueBuffer); for (int i = 0; i < length; i++) { diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryLongDecimalPlainValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryLongDecimalPlainValuesDecoder.java index 81f86f376c42e..4af38a23018c5 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryLongDecimalPlainValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryLongDecimalPlainValuesDecoder.java @@ -45,7 +45,7 @@ public void readNext(long[] values, int offset, int length) PlainValueBuffer valueBuffer = (PlainValueBuffer) delegate.readNext(length); int bufferSize = valueBuffer.getBufferSize(); byte[] byteBuffer = new byte[bufferSize]; - int[] offsets = new int[bufferSize + 1]; + int[] offsets = new int[length + 1]; delegate.readIntoBuffer(byteBuffer, 0, offsets, 0, valueBuffer); for (int i = 0; i < length; i++) { diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/LongDecimalRLEDictionaryValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/LongDecimalRLEDictionaryValuesDecoder.java index b130aa416719d..05ced8bc80107 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/LongDecimalRLEDictionaryValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/LongDecimalRLEDictionaryValuesDecoder.java @@ -46,7 +46,7 @@ public void readNext(long[] values, int offset, int length) ValueBuffer valueBuffer = delegate.readNext(length); int bufferSize = valueBuffer.getBufferSize(); byte[] byteBuffer = new byte[bufferSize]; - int[] offsets = new int[bufferSize + 1]; + int[] offsets = new int[length + 1]; delegate.readIntoBuffer(byteBuffer, 0, offsets, 0, valueBuffer); for (int i = 0; i < length; i++) {