Skip to content

Commit 60fe238

Browse files
committed
GH-3464 Add regression test
1 parent b7839f2 commit 60fe238

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

parquet-column/src/test/java/org/apache/parquet/column/values/deltastrings/TestDeltaByteArray.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.parquet.column.values.deltastrings;
2020

2121
import java.io.IOException;
22+
import java.nio.charset.StandardCharsets;
2223
import org.apache.parquet.bytes.ByteBufferInputStream;
2324
import org.apache.parquet.bytes.DirectByteBufferAllocator;
2425
import org.apache.parquet.column.values.Utils;
@@ -128,4 +129,24 @@ public void testWriterReset() throws Exception {
128129

129130
assertReadWrite(writer, new DeltaByteArrayReader(), values);
130131
}
132+
133+
@Test
134+
public void testReusedBackingArrayRegression() throws Exception {
135+
DeltaByteArrayWriter writer = new DeltaByteArrayWriter(64 * 1024, 64 * 1024, new DirectByteBufferAllocator());
136+
DeltaByteArrayReader reader = new DeltaByteArrayReader();
137+
138+
byte[] buffer = "parquet-000".getBytes(StandardCharsets.UTF_8);
139+
writer.writeBytes(Binary.fromReusedByteArray(buffer));
140+
141+
System.arraycopy("parquet-111".getBytes(StandardCharsets.UTF_8), 0, buffer, 0, buffer.length);
142+
writer.writeBytes(Binary.fromReusedByteArray(buffer));
143+
144+
System.arraycopy("parquet-222".getBytes(StandardCharsets.UTF_8), 0, buffer, 0, buffer.length);
145+
writer.writeBytes(Binary.fromReusedByteArray(buffer));
146+
147+
Binary[] decoded = Utils.readData(reader, writer.getBytes().toInputStream(), 3);
148+
Assert.assertEquals(Binary.fromString("parquet-000"), decoded[0]);
149+
Assert.assertEquals(Binary.fromString("parquet-111"), decoded[1]);
150+
Assert.assertEquals(Binary.fromString("parquet-222"), decoded[2]);
151+
}
131152
}

0 commit comments

Comments
 (0)