KYLIN-2982 minor refine
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/3b200a78 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/3b200a78 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/3b200a78 Branch: refs/heads/master Commit: 3b200a78fc8149376ae1e70404b8afc8bb67ce91 Parents: d86c2a0 Author: Hongbin Ma <mahong...@apache.org> Authored: Thu Dec 14 14:52:37 2017 +0800 Committer: Hongbin Ma <m...@kyligence.io> Committed: Wed Dec 27 20:05:54 2017 +0800 ---------------------------------------------------------------------- .../apache/kylin/metadata/model/ColumnDesc.java | 11 +-------- .../kylin/metadata/model/FunctionDesc.java | 7 ++---- .../org/apache/kylin/metadata/tuple/Tuple.java | 25 +++++++++++--------- 3 files changed, 17 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/3b200a78/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java index b4381ea..03c89c3 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java @@ -59,7 +59,6 @@ public class ColumnDesc implements Serializable { // parsed from data type private DataType type; - private DataType upgradedType; private TableDesc table; private int zeroBasedIndex = -1; @@ -116,16 +115,8 @@ public class ColumnDesc implements Serializable { type = DataType.getType(datatype); } - public void setUpgradedType(DataType upgradedType) { - this.upgradedType = upgradedType; - } - public DataType getUpgradedType() { - if (this.upgradedType == null) { - return this.type; - } else { - return this.upgradedType; - } + return this.type; } public String getId() { http://git-wip-us.apache.org/repos/asf/kylin/blob/3b200a78/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java index c96713d..fa97596 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java @@ -154,15 +154,12 @@ public class FunctionDesc implements Serializable { } public DataType getRewriteFieldType() { + if (getMeasureType() instanceof BasicMeasureType) { if (isMax() || isMin()) { return parameter.getColRefs().get(0).getType(); } else if (isSum()) { - if (parameter.getColRefs().get(0).getType().getName().equals(returnDataType.getName())) { - return returnDataType; - } else { - return parameter.getColRefs().get(0).getType(); - } + return parameter.getColRefs().get(0).getType(); } else if (isCount()) { return DataType.getType("bigint"); } else { http://git-wip-us.apache.org/repos/asf/kylin/blob/3b200a78/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 b50a7e4..a299216 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,25 +115,27 @@ 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 ("decimal".equals(dataType)) { + if (fieldValue instanceof BigDecimal) { + fieldValue = normalizeDecimal((BigDecimal) fieldValue); + } else if (fieldValue instanceof Number) { + fieldValue = new BigDecimal(((Number) fieldValue).doubleValue()); + } + } else if ("float".equals(dataType) && fieldValue instanceof BigDecimal) { + fieldValue = ((BigDecimal) fieldValue).floatValue(); } else if ("integer".equals(dataType) && fieldValue instanceof Number) { fieldValue = ((Number) fieldValue).intValue(); + } else if ("bigint".equals(dataType) && fieldValue instanceof Number) { + fieldValue = ((Number) fieldValue).longValue(); } else if ("smallint".equals(dataType) && fieldValue instanceof Number) { fieldValue = ((Number) fieldValue).shortValue(); - } else if ("tinyint".equals(dataType)) { + } else if ("tinyint".equals(dataType) && fieldValue instanceof Number) { fieldValue = ((Number) fieldValue).byteValue(); - } else if ("float".equals(dataType) && fieldValue instanceof BigDecimal) { - fieldValue = ((BigDecimal) fieldValue).floatValue(); } else if ("date".equals(dataType) && fieldValue instanceof Long) { - long millis = ((Long) fieldValue).longValue(); + long millis = (Long) fieldValue; fieldValue = (int) (millis / (1000 * 3600 * 24)); - } else if ("smallint".equals(dataType) && fieldValue instanceof Long) { - fieldValue = ((Long) fieldValue).shortValue(); } else if ((!"varchar".equals(dataType) || !"char".equals(dataType)) && fieldValue instanceof String) { fieldValue = convertOptiqCellValue((String) fieldValue, dataType); - } else if ("bigint".equals(dataType) && fieldValue instanceof Double) { - fieldValue = ((Double) fieldValue).longValue(); } values[idx] = fieldValue; @@ -188,7 +190,8 @@ public class Tuple implements ITuple { if (strValue == null) return null; - if ((strValue.equals("") || strValue.equals("\\N")) && !dataTypeName.equals("string") && !dataTypeName.startsWith("varchar")) + if ((strValue.equals("") || strValue.equals("\\N")) && !dataTypeName.equals("string") + && !dataTypeName.startsWith("varchar")) return null; switch (dataTypeName) {