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())) {