This is an automated email from the ASF dual-hosted git repository. emkornfield pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push: new 833b4cf ARROW-5420: [Java] Implement or remove getCurrentSizeInBytes in Variab… 833b4cf is described below commit 833b4cf4fa7532330500f523f06d2fd43a280464 Author: tianchen <niki...@alibaba-inc.com> AuthorDate: Thu May 30 00:58:53 2019 -0700 ARROW-5420: [Java] Implement or remove getCurrentSizeInBytes in Variab… Related to [ARROW-5420](https://issues.apache.org/jira/browse/ARROW-5420). Author: tianchen <niki...@alibaba-inc.com> Closes #4390 from tianchen92/ARROW-5420 and squashes the following commits: 6a8e996a <tianchen> rename the method 61226784 <tianchen> add unit test and document 632bd89e <tianchen> ARROW-5420: Implement or remove getCurrentSizeInBytes in VariableWidthVector --- .../apache/arrow/vector/BaseVariableWidthVector.java | 8 +++++--- .../org/apache/arrow/vector/VariableWidthVector.java | 6 +++++- .../java/org/apache/arrow/vector/TestValueVector.java | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java index 144340b..05a43ad 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java @@ -559,9 +559,11 @@ public abstract class BaseVariableWidthVector extends BaseValueVector } @Override - public int getCurrentSizeInBytes() { - /* TODO */ - return 0; + public int sizeOfValueBuffer() { + if (valueCount == 0) { + return 0; + } + return offsetBuffer.getInt(valueCount * OFFSET_WIDTH); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VariableWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VariableWidthVector.java index 758d596..b1bcbc7 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VariableWidthVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VariableWidthVector.java @@ -37,5 +37,9 @@ public interface VariableWidthVector extends ValueVector, DensityAwareVector { */ int getByteCapacity(); - int getCurrentSizeInBytes(); + /** + * Provide the number of bytes contained in the valueBuffer. + * @return the number of bytes in valueBuffer. + */ + int sizeOfValueBuffer(); } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java index f0cc4c4..918a144 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java @@ -259,6 +259,23 @@ public class TestValueVector { } } + @Test /* VarCharVector */ + public void testSizeOfValueBuffer() { + try (final VarCharVector vector = new VarCharVector(EMPTY_SCHEMA_PATH, allocator)) { + int valueCount = 100; + int currentSize = 0; + vector.setInitialCapacity(valueCount); + vector.allocateNew(); + vector.setValueCount(valueCount); + for (int i = 0; i < valueCount; i++) { + currentSize += i; + vector.setSafe(i, new byte[i]); + } + + assertEquals(currentSize, vector.sizeOfValueBuffer()); + } + } + @Test /* Float4Vector */ public void testFixedType3() { try (final Float4Vector floatVector = new Float4Vector(EMPTY_SCHEMA_PATH, allocator)) {