You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ju...@apache.org on 2017/06/08 00:01:34 UTC

arrow git commit: ARROW-1101: Implement write(TypeHolder) methods in UnionListWriter

Repository: arrow
Updated Branches:
  refs/heads/master e3f235f52 -> 81c4bd695


ARROW-1101: Implement write(TypeHolder) methods in UnionListWriter

Author: vkorukanti <ve...@dremio.com>

Closes #740 from vkorukanti/ARROW-1101 and squashes the following commits:

e2d097d [vkorukanti] ARROW-1101: Implement write(TypeHolder) methods in UnionListWriter


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

Branch: refs/heads/master
Commit: 81c4bd695f8156cc9cdf280eae3368c42c953aa6
Parents: e3f235f
Author: vkorukanti <ve...@dremio.com>
Authored: Wed Jun 7 17:01:30 2017 -0700
Committer: Julien Le Dem <ju...@apache.org>
Committed: Wed Jun 7 17:01:30 2017 -0700

----------------------------------------------------------------------
 java/vector/src/main/codegen/templates/UnionListWriter.java | 5 +++++
 .../arrow/vector/complex/writer/TestComplexWriter.java      | 9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/81c4bd69/java/vector/src/main/codegen/templates/UnionListWriter.java
----------------------------------------------------------------------
diff --git a/java/vector/src/main/codegen/templates/UnionListWriter.java b/java/vector/src/main/codegen/templates/UnionListWriter.java
index d6e2f9f..9fe41d0 100644
--- a/java/vector/src/main/codegen/templates/UnionListWriter.java
+++ b/java/vector/src/main/codegen/templates/UnionListWriter.java
@@ -166,6 +166,11 @@ public class UnionListWriter extends AbstractFieldWriter {
     writer.setPosition(writer.idx()+1);
   }
 
+  public void write(${name}Holder holder) {
+    writer.write${name}(<#list fields as field>holder.${field.name}<#if field_has_next>, </#if></#list>);
+    writer.setPosition(writer.idx()+1);
+  }
+
       </#if>
     </#list>
   </#list>

http://git-wip-us.apache.org/repos/asf/arrow/blob/81c4bd69/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
----------------------------------------------------------------------
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java b/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
index ede8d65..5a9c80d 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
@@ -42,6 +42,7 @@ import org.apache.arrow.vector.complex.reader.FieldReader;
 import org.apache.arrow.vector.complex.writer.BaseWriter.ComplexWriter;
 import org.apache.arrow.vector.complex.writer.BaseWriter.ListWriter;
 import org.apache.arrow.vector.complex.writer.BaseWriter.MapWriter;
+import org.apache.arrow.vector.holders.IntHolder;
 import org.apache.arrow.vector.holders.NullableTimeStampNanoTZHolder;
 import org.apache.arrow.vector.types.pojo.ArrowType;
 import org.apache.arrow.vector.types.pojo.ArrowType.ArrowTypeID;
@@ -216,7 +217,13 @@ public class TestComplexWriter {
     for (int i = 0; i < COUNT; i++) {
       listWriter.startList();
       for (int j = 0; j < i % 7; j++) {
-        listWriter.writeInt(j);
+        if (j%2 == 0) {
+          listWriter.writeInt(j);
+        } else {
+          IntHolder holder = new IntHolder();
+          holder.value = j;
+          listWriter.write(holder);
+        }
       }
       listWriter.endList();
     }