You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by sm...@apache.org on 2016/10/11 03:08:44 UTC

[2/2] arrow git commit: ARROW-326: Include scale and precision when materializing decimal writer

ARROW-326: Include scale and precision when materializing decimal writer

closes #166


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

Branch: refs/heads/arrow-326
Commit: fb29195e0040143375340ab4172bb419fdebaa8f
Parents: 772800a
Author: Steven Phillips <st...@dremio.com>
Authored: Mon Oct 10 13:42:41 2016 -0700
Committer: Steven Phillips <st...@dremio.com>
Committed: Mon Oct 10 20:06:23 2016 -0700

----------------------------------------------------------------------
 java/vector/src/main/codegen/templates/MapWriters.java      | 5 +++++
 .../arrow/vector/complex/impl/TestPromotableWriter.java     | 9 ++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/fb29195e/java/vector/src/main/codegen/templates/MapWriters.java
----------------------------------------------------------------------
diff --git a/java/vector/src/main/codegen/templates/MapWriters.java b/java/vector/src/main/codegen/templates/MapWriters.java
index 9fe20df..696bbf6 100644
--- a/java/vector/src/main/codegen/templates/MapWriters.java
+++ b/java/vector/src/main/codegen/templates/MapWriters.java
@@ -73,7 +73,12 @@ public class ${mode}MapWriter extends AbstractFieldWriter {
 <#if lowerName == "int" ><#assign lowerName = "integer" /></#if>
 <#assign upperName = minor.class?upper_case />
       case ${upperName}:
+        <#if lowerName == "decimal" >
+        Decimal decimal = (Decimal)child.getType();
+        decimal(child.getName(), decimal.getScale(), decimal.getPrecision());
+        <#else>
         ${lowerName}(child.getName());
+       </#if>
         break;
 </#list></#list>
       }

http://git-wip-us.apache.org/repos/asf/arrow/blob/fb29195e/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
----------------------------------------------------------------------
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java b/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
index d439ceb..176ad51 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
@@ -67,6 +67,8 @@ public class TestPromotableWriter {
       writer.setPosition(1);
       writer.bit("A").writeBit(1);
 
+      writer.decimal("dec", 10,10);
+
       writer.setPosition(2);
       writer.integer("A").writeInt(10);
 
@@ -108,9 +110,10 @@ public class TestPromotableWriter {
       newMapWriter.setPosition(2);
       newMapWriter.integer("A").writeInt(10);
 
-      Field childField = container.getField().getChildren().get(0).getChildren().get(0);
-      assertEquals("Child field should be union type: " + childField.getName(), Type.Union, childField.getType().getTypeType());
-
+      Field childField1 = container.getField().getChildren().get(0).getChildren().get(0);
+      Field childField2 = container.getField().getChildren().get(0).getChildren().get(1);
+      assertEquals("Child field should be union type: " + childField1.getName(), Type.Union, childField1.getType().getTypeType());
+      assertEquals("Child field should be decimal type: " + childField2.getName(), Type.Decimal, childField2.getType().getTypeType());
     }
   }
 }