Skip to content

Commit 3c55ad4

Browse files
DX-122953 Preserve offset bytes when expanding empty buffers
1 parent 56157d2 commit 3c55ad4

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ private void ensureEmptyOffsetBufferCapacity(long requiredCapacity) {
326326
long previousOffsetAllocationSizeInBytes = offsetAllocationSizeInBytes;
327327
ArrowBuf oldOffsetBuffer = offsetBuffer;
328328
offsetBuffer = allocateOffsetBuffer(requiredCapacity);
329+
offsetBuffer.setBytes(
330+
0, oldOffsetBuffer, 0, Math.min(oldOffsetBuffer.capacity(), requiredCapacity));
329331
offsetAllocationSizeInBytes = previousOffsetAllocationSizeInBytes;
330332
oldOffsetBuffer.getReferenceManager().release();
331333
}

vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,8 @@ private void ensureEmptyOffsetBufferCapacity(long requiredCapacity) {
284284
long previousOffsetAllocationSizeInBytes = offsetAllocationSizeInBytes;
285285
ArrowBuf oldOffsetBuffer = offsetBuffer;
286286
offsetBuffer = allocateOffsetBuffer(requiredCapacity);
287+
offsetBuffer.setBytes(
288+
0, oldOffsetBuffer, 0, Math.min(oldOffsetBuffer.capacity(), requiredCapacity));
287289
offsetAllocationSizeInBytes = previousOffsetAllocationSizeInBytes;
288290
oldOffsetBuffer.getReferenceManager().release();
289291
}

0 commit comments

Comments
 (0)