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

[41/50] [abbrv] kylin git commit: KYLIN-2113 pass sort by columns in SQLDigest

KYLIN-2113 pass sort by columns in SQLDigest


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

Branch: refs/heads/KYLIN-1971
Commit: b9fdab7f85831499f77ae2787ee9aa8a49eb2e46
Parents: 9cc9532
Author: Li Yang <li...@apache.org>
Authored: Thu Oct 20 17:23:27 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Thu Oct 20 17:23:27 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/metadata/realization/SQLDigest.java   |  7 +++----
 .../org/apache/kylin/query/relnode/OLAPContext.java    | 13 ++++++-------
 .../org/apache/kylin/query/relnode/OLAPSortRel.java    |  6 ++----
 3 files changed, 11 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b9fdab7f/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
index 4887abb..90fa53a 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
@@ -24,7 +24,6 @@ import java.util.Set;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
 import com.google.common.collect.ImmutableList;
@@ -56,13 +55,13 @@ public class SQLDigest {
     public Set<TblColRef> metricColumns;
     public List<FunctionDesc> aggregations; // storage level measure type, on top of which various sql aggr function may apply
     public List<SQLCall> aggrSqlCalls; // sql level aggregation function call
-    public List<MeasureDesc> sortMeasures;
+    public List<TblColRef> sortColumns;
     public List<OrderEnum> sortOrders;
     public boolean isRawQuery;
 
     public SQLDigest(String factTable, TupleFilter filter, List<JoinDesc> joinDescs, Set<TblColRef> allColumns, //
             List<TblColRef> groupbyColumns, Set<TblColRef> filterColumns, Set<TblColRef> metricColumns, //
-            List<FunctionDesc> aggregations, List<SQLCall> aggrSqlCalls, List<MeasureDesc> sortMeasures, List<OrderEnum> sortOrders) {
+            List<FunctionDesc> aggregations, List<SQLCall> aggrSqlCalls, List<TblColRef> sortColumns, List<OrderEnum> sortOrders) {
         this.factTable = factTable;
         this.filter = filter;
         this.joinDescs = joinDescs;
@@ -72,7 +71,7 @@ public class SQLDigest {
         this.metricColumns = metricColumns;
         this.aggregations = aggregations;
         this.aggrSqlCalls = aggrSqlCalls;
-        this.sortMeasures = sortMeasures;
+        this.sortColumns = sortColumns;
         this.sortOrders = sortOrders;
         this.isRawQuery = isRawQuery();
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/b9fdab7f/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
index cdec665..b368b5d 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
@@ -33,7 +33,6 @@ import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.SQLDigest;
@@ -89,7 +88,7 @@ public class OLAPContext {
     public OLAPContext(int seq) {
         this.id = seq;
         this.storageContext = new StorageContext();
-        this.sortMeasures = Lists.newArrayList();
+        this.sortColumns = Lists.newArrayList();
         this.sortOrders = Lists.newArrayList();
         Map<String, String> parameters = _localPrarameters.get();
         if (parameters != null) {
@@ -126,7 +125,7 @@ public class OLAPContext {
     public Set<TblColRef> filterColumns = new HashSet<TblColRef>();
     public TupleFilter filter;
     public List<JoinDesc> joins = new LinkedList<JoinDesc>();
-    private List<MeasureDesc> sortMeasures;
+    private List<TblColRef> sortColumns;
     private List<SQLDigest.OrderEnum> sortOrders;
 
     // rewrite info
@@ -147,7 +146,7 @@ public class OLAPContext {
 
     public SQLDigest getSQLDigest() {
         if (sqlDigest == null)
-            sqlDigest = new SQLDigest(firstTableScan.getTableName(), filter, joins, allColumns, groupByColumns, filterColumns, metricsColumns, aggregations, aggrSqlCalls, sortMeasures, sortOrders);
+            sqlDigest = new SQLDigest(firstTableScan.getTableName(), filter, joins, allColumns, groupByColumns, filterColumns, metricsColumns, aggregations, aggrSqlCalls, sortColumns, sortOrders);
         return sqlDigest;
     }
 
@@ -170,9 +169,9 @@ public class OLAPContext {
         this.returnTupleInfo = info;
     }
 
-    public void addSort(MeasureDesc measure, SQLDigest.OrderEnum order) {
-        if (measure != null) {
-            sortMeasures.add(measure);
+    public void addSort(TblColRef col, SQLDigest.OrderEnum order) {
+        if (col != null) {
+            sortColumns.add(col);
             sortOrders.add(order);
         }
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/b9fdab7f/query/src/main/java/org/apache/kylin/query/relnode/OLAPSortRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPSortRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPSortRel.java
index ef4ffe8..70fc3e3 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPSortRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPSortRel.java
@@ -91,10 +91,7 @@ public class OLAPSortRel extends Sort implements OLAPRel {
             SQLDigest.OrderEnum order = getOrderEnum(fieldCollation.getDirection());
             OLAPRel olapChild = (OLAPRel) this.getInput();
             TblColRef orderCol = olapChild.getColumnRowType().getAllColumns().get(index);
-            MeasureDesc measure = findMeasure(orderCol);
-            if (measure != null) {
-                this.context.addSort(measure, order);
-            }
+            this.context.addSort(orderCol, order);
             this.context.storageContext.markSort();
         }
 
@@ -110,6 +107,7 @@ public class OLAPSortRel extends Sort implements OLAPRel {
         }
     }
 
+    @SuppressWarnings("unused")
     private MeasureDesc findMeasure(TblColRef col) {
         for (MeasureDesc measure : this.context.realization.getMeasures()) {
             if (col.getName().equals(measure.getFunction().getRewriteFieldName())) {