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)) {