You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by em...@apache.org on 2019/05/31 03:32:24 UTC
[arrow] branch master updated: ARROW-5420: [Java] Implement or remove getCurrentSizeInBytes in Variab…
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 <ni...@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 <ni...@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)) {