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 2017/01/19 09:04:49 UTC

[07/12] kylin git commit: KYLIN-2348 let choose model freely for sub-queries

KYLIN-2348 let choose model freely for sub-queries


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

Branch: refs/heads/master-cdh5.7
Commit: d52bb8bc05bd530362fe0970b8e8a85f8b2289bc
Parents: 51c6571
Author: Li Yang <li...@apache.org>
Authored: Wed Jan 18 22:46:24 2017 +0800
Committer: Li Yang <li...@apache.org>
Committed: Wed Jan 18 22:46:24 2017 +0800

----------------------------------------------------------------------
 .../apache/kylin/query/relnode/OLAPTableScan.java   |  2 ++
 .../apache/kylin/query/routing/ModelChooser.java    | 16 ++++++++--------
 2 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/d52bb8bc/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
index 452170a..f7877be 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
@@ -53,6 +53,7 @@ import org.apache.calcite.rel.rules.JoinPushExpressionsRule;
 import org.apache.calcite.rel.rules.JoinPushThroughJoinRule;
 import org.apache.calcite.rel.rules.JoinUnionTransposeRule;
 import org.apache.calcite.rel.rules.ReduceExpressionsRule;
+import org.apache.calcite.rel.rules.SemiJoinRule;
 import org.apache.calcite.rel.rules.SortJoinTransposeRule;
 import org.apache.calcite.rel.rules.SortUnionTransposeRule;
 import org.apache.calcite.rel.type.RelDataType;
@@ -174,6 +175,7 @@ public class OLAPTableScan extends TableScan implements OLAPRel, EnumerableRel {
         planner.removeRule(JoinUnionTransposeRule.RIGHT_UNION);
         planner.removeRule(AggregateUnionTransposeRule.INSTANCE);
         planner.removeRule(DateRangeRules.FILTER_INSTANCE);
+        planner.removeRule(SemiJoinRule.INSTANCE);
         // distinct count will be split into a separated query that is joined with the left query
         planner.removeRule(AggregateExpandDistinctAggregatesRule.INSTANCE);
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/d52bb8bc/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java b/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
index 2517dc5..f979f7b 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
@@ -53,17 +53,17 @@ public class ModelChooser {
         IdentityHashMap<OLAPContext, Set<IRealization>> candidates = new IdentityHashMap<>();
 
         // attempt one model for all contexts
-        Set<IRealization> reals = attemptSelectModel(contexts);
-        if (reals != null) {
-            for (OLAPContext ctx : contexts) {
-                candidates.put(ctx, reals);
-            }
-            return candidates;
-        }
+        //        Set<IRealization> reals = attemptSelectModel(contexts);
+        //        if (reals != null) {
+        //            for (OLAPContext ctx : contexts) {
+        //                candidates.put(ctx, reals);
+        //            }
+        //            return candidates;
+        //        }
 
         // try different model for different context
         for (OLAPContext ctx : contexts) {
-            reals = attemptSelectModel(ImmutableList.of(ctx));
+            Set<IRealization> reals = attemptSelectModel(ImmutableList.of(ctx));
             if (reals == null)
                 throw new NoRealizationFoundException("No model found for" + toErrorMsg(ctx));