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());
}
}
}