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 2015/10/29 07:42:08 UTC

incubator-kylin git commit: KYLIN-1113 Support TopN query in v2/CubeStorageQuery.java

Repository: incubator-kylin
Updated Branches:
  refs/heads/topn cc3edd99f -> 11a8c99c3


KYLIN-1113 Support TopN query in v2/CubeStorageQuery.java

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

Branch: refs/heads/topn
Commit: 11a8c99c37958393acb2728e8b2f092cc5bf04b6
Parents: cc3edd9
Author: shaofengshi <sh...@apache.org>
Authored: Thu Oct 29 14:41:46 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Thu Oct 29 14:41:46 2015 +0800

----------------------------------------------------------------------
 .../apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java    | 5 +++++
 .../apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java  | 3 ++-
 .../storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java  | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/11a8c99c/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java
index 8317403..4ced852 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeStorageQuery.java
@@ -144,6 +144,11 @@ public class CubeStorageQuery implements ICachableStorageQuery {
             if (sqlDigest.metricColumns.contains(column)) {
                 continue;
             }
+            
+            // skip topN display col
+            if (topNColumns.contains(column)) {
+                continue;
+            }
             dimensions.add(column);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/11a8c99c/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java
index 2354a88..c89cce2 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeTupleConverter.java
@@ -107,7 +107,8 @@ public class CubeTupleConverter {
 
         if (this.topNCol != null) {
             this.topNColTupleIdx = tupleInfo.hasColumn(this.topNCol) ? tupleInfo.getColumnIndex(this.topNCol) : -1;
-            this.topNMeasureTupleIdx = nSelectedDims;
+            // topN only allow 1 measure
+            this.topNMeasureTupleIdx = tupleIdx[tupleIdx.length - 1];
 
             this.topNColDict = (Dictionary<String>)cubeSeg.getDictionary(this.topNCol);
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/11a8c99c/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java
index aa50d00..f162be6 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SequentialCubeTopNTupleIterator.java
@@ -23,6 +23,7 @@ public class SequentialCubeTopNTupleIterator extends SequentialCubeTupleIterator
             TblColRef topNCol, Set<FunctionDesc> selectedMetrics, TupleInfo returnTupleInfo, StorageContext context) {
 
         super(scanners, cuboid, selectedDimensions, selectedMetrics, returnTupleInfo, context);
+        this.topNCol = topNCol;
     }
 
     @Override