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