You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2016/03/27 05:20:47 UTC

[2/2] kylin git commit: KYLIN-1524 support long type counter in TopN

KYLIN-1524 support long type counter in TopN

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

Branch: refs/heads/master
Commit: 5fd9485473d134377d62f9e947d38302c9edfba0
Parents: aaf4946
Author: shaofengshi <sh...@apache.org>
Authored: Sun Mar 27 11:17:29 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Sun Mar 27 11:20:38 2016 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/dict/NumberDictionary.java    | 2 +-
 .../main/java/org/apache/kylin/measure/topn/TopNMeasureType.java | 4 +---
 .../src/main/java/org/apache/kylin/metadata/tuple/Tuple.java     | 3 +++
 3 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/5fd94854/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionary.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionary.java b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionary.java
index f15f28f..d1e2fec 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionary.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/NumberDictionary.java
@@ -232,4 +232,4 @@ public class NumberDictionary<T> extends TrieDictionary<T> {
             System.out.println(Bytes.toString(dict.getValueBytesFromId(i)));
         }
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/5fd94854/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
index cee8603..507a2b0 100644
--- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
+++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
@@ -267,8 +267,6 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> {
         final int literalTupleIdx = tupleInfo.hasColumn(literalCol) ? tupleInfo.getColumnIndex(literalCol) : -1;
         // for TopN, the aggr must be SUM, so the number fill into the column position (without rewrite)
         final int numericTupleIdx = tupleInfo.hasColumn(numericCol) ? tupleInfo.getColumnIndex(numericCol) : -1;
-        final DataType numericField = DataType.getType(tupleInfo.getDataTypeName(numericTupleIdx));
-        final boolean isIntFamily = numericField.isIntegerFamily();
         return new IAdvMeasureFiller() {
             private TopNCounter<ByteArray> topNCounter;
             private Iterator<Counter<ByteArray>> topNCounterIterator;
@@ -296,7 +294,7 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> {
                 int key = BytesUtil.readUnsigned(counter.getItem().array(), counter.getItem().offset(), counter.getItem().length());
                 String colValue = topNColDict.getValueFromId(key);
                 tuple.setDimensionValue(literalTupleIdx, colValue);
-                tuple.setMeasureValue(numericTupleIdx, isIntFamily ? (long) counter.getCount() : counter.getCount());
+                tuple.setMeasureValue(numericTupleIdx, counter.getCount());
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/5fd94854/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 c5ed0dd..0324d29 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
@@ -122,7 +122,10 @@ public class Tuple implements ITuple {
             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;
     }