Repository: kylin
Updated Branches:
  refs/heads/master eb686a942 -> 00a4c5064


minor: normalize scientific decimal values


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

Branch: refs/heads/master
Commit: fe9efa86cd34da31ec41dc176140ee4ee2f49fed
Parents: eb686a9
Author: Hongbin Ma <mahong...@apache.org>
Authored: Sun Dec 4 21:26:18 2016 +0800
Committer: Hongbin Ma <mahong...@apache.org>
Committed: Sun Dec 4 21:26:18 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/metadata/tuple/Tuple.java     | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/fe9efa86/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java
index 721a719..d51ae9e 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/tuple/Tuple.java
@@ -115,6 +115,8 @@ public class Tuple implements ITuple {
         // BigDecimal during cube build for best precision
         if ("double".equals(dataType) && fieldValue instanceof BigDecimal) {
             fieldValue = ((BigDecimal) fieldValue).doubleValue();
+        } else if ("decimal".equals(dataType) && fieldValue instanceof 
BigDecimal) {
+            fieldValue = normalizeDecimal((BigDecimal) fieldValue);
         } else if ("integer".equals(dataType) && fieldValue instanceof Number) 
{
             fieldValue = ((Number) fieldValue).intValue();
         } else if ("smallint".equals(dataType) && fieldValue instanceof 
Number) {
@@ -145,6 +147,14 @@ public class Tuple implements ITuple {
         return o;
     }
 
+    private static BigDecimal normalizeDecimal(BigDecimal input) {
+        if (input.scale() < 0) {
+            return input.setScale(0);
+        } else {
+            return input;
+        }
+    }
+
     public boolean hasColumn(TblColRef column) {
         return info.hasColumn(column);
     }
@@ -199,7 +209,7 @@ public class Tuple implements ITuple {
         case "double":
             return Double.valueOf(strValue);
         case "decimal":
-            return new BigDecimal(strValue);
+            return normalizeDecimal(new BigDecimal(strValue));
         case "float":
             return Float.valueOf(strValue);
         case "boolean":

Reply via email to