diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryShortDecimalDeltaValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryShortDecimalDeltaValuesDecoder.java index 71793909888ab..4b0cd8892c5e8 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryShortDecimalDeltaValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/delta/BinaryShortDecimalDeltaValuesDecoder.java @@ -47,7 +47,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/BinaryShortDecimalPlainValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryShortDecimalPlainValuesDecoder.java index 102872869857e..524be42eb2666 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryShortDecimalPlainValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/plain/BinaryShortDecimalPlainValuesDecoder.java @@ -41,7 +41,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++) { diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/ShortDecimalRLEDictionaryValuesDecoder.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/ShortDecimalRLEDictionaryValuesDecoder.java index 23e0ff931f5ac..16e4ee7e4653b 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/ShortDecimalRLEDictionaryValuesDecoder.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/batchreader/decoders/rle/ShortDecimalRLEDictionaryValuesDecoder.java @@ -44,7 +44,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++) {