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/11/05 02:54:25 UTC

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

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/65fb7213
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/65fb7213
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/65fb7213

Branch: refs/heads/KYLIN-1112
Commit: 65fb72137f4b1fdd9b1a7244b4fb59fe1bec7636
Parents: b0e3096
Author: shaofengshi <sh...@apache.org>
Authored: Thu Oct 29 14:41:46 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Thu Nov 5 09:53:16 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/65fb7213/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/65fb7213/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/65fb7213/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