arrow-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From w...@apache.org
Subject arrow git commit: ARROW-703: Fix issue where setValueCount(0) doesn’t work in the case that we’ve shipped vectors across the wire
Date Sat, 15 Apr 2017 22:26:25 GMT
Repository: arrow
Updated Branches:
  refs/heads/master 0f9c88f71 -> 30e03a907


ARROW-703: Fix issue where setValueCount(0) doesn’t work in the case that we’ve shipped
vectors across the wire

Author: Julien Le Dem <julien@dremio.com>

Closes #428 from julienledem/arrow_703 and squashes the following commits:

72b0f79 [Julien Le Dem] ARROW-703: Fix issue where setValueCount(0) doesn’t work in the
case that we’ve shipped vectors across the wire


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/30e03a90
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/30e03a90
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/30e03a90

Branch: refs/heads/master
Commit: 30e03a90718971c2a1d773145fb042d0c2857036
Parents: 0f9c88f
Author: Julien Le Dem <julien@dremio.com>
Authored: Sat Apr 15 18:26:19 2017 -0400
Committer: Wes McKinney <wes.mckinney@twosigma.com>
Committed: Sat Apr 15 18:26:19 2017 -0400

----------------------------------------------------------------------
 .../templates/VariableLengthVectors.java        | 23 ++++++++++++--------
 1 file changed, 14 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/30e03a90/java/vector/src/main/codegen/templates/VariableLengthVectors.java
----------------------------------------------------------------------
diff --git a/java/vector/src/main/codegen/templates/VariableLengthVectors.java b/java/vector/src/main/codegen/templates/VariableLengthVectors.java
index bcd639a..4a460c5 100644
--- a/java/vector/src/main/codegen/templates/VariableLengthVectors.java
+++ b/java/vector/src/main/codegen/templates/VariableLengthVectors.java
@@ -613,16 +613,21 @@ public final class ${minor.class}Vector extends BaseDataValueVector
implements V
 
     @Override
     public void setValueCount(int valueCount) {
-      final int currentByteCapacity = getByteCapacity();
-      final int idx = offsetVector.getAccessor().get(valueCount);
-      data.writerIndex(idx);
-      if (valueCount > 0 && currentByteCapacity > idx * 2) {
-        incrementAllocationMonitor();
-      } else if (allocationMonitor > 0) {
-        allocationMonitor = 0;
+      if (valueCount == 0) {
+        // if no values in vector, don't try to retrieve the current value count.
+        offsetVector.getMutator().setValueCount(0);
+      } else {
+        final int currentByteCapacity = getByteCapacity();
+        final int idx = offsetVector.getAccessor().get(valueCount);
+        data.writerIndex(idx);
+        if (currentByteCapacity > idx * 2) {
+          incrementAllocationMonitor();
+        } else if (allocationMonitor > 0) {
+          allocationMonitor = 0;
+        }
+        VectorTrimmer.trim(data, idx);
+        offsetVector.getMutator().setValueCount(valueCount+1);
       }
-      VectorTrimmer.trim(data, idx);
-      offsetVector.getMutator().setValueCount(valueCount == 0 ? 0 : valueCount+1);
     }
 
     @Override


Mime
View raw message