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/11/28 10:30:35 UTC
kylin git commit: fix lookup table query
Repository: kylin
Updated Branches:
refs/heads/KYLIN-1875 07322fafd -> fe477dc70
fix lookup table query
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/fe477dc7
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/fe477dc7
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/fe477dc7
Branch: refs/heads/KYLIN-1875
Commit: fe477dc70d3e51d5065e741b55898651e2d51449
Parents: 07322fa
Author: Li Yang <li...@apache.org>
Authored: Mon Nov 28 18:30:26 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Nov 28 18:30:26 2016 +0800
----------------------------------------------------------------------
.../kylin/query/routing/ModelChooser.java | 26 +++++++++++++++-----
1 file changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/fe477dc7/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 cc2522a..14e73ed 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
@@ -31,6 +31,7 @@ import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.JoinTableDesc;
import org.apache.kylin.metadata.model.JoinsTree;
+import org.apache.kylin.metadata.model.TableRef;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.realization.IRealization;
@@ -38,6 +39,7 @@ import org.apache.kylin.query.relnode.OLAPContext;
import org.apache.kylin.query.relnode.OLAPTableScan;
import org.apache.kylin.query.routing.rules.RemoveBlackoutRealizationsRule;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -73,14 +75,26 @@ public class ModelChooser {
Map<String, String> result = Maps.newHashMap();
for (OLAPContext ctx : contexts) {
- if (ctx.joinsTree == null)
- ctx.joinsTree = new JoinsTree(ctx.firstTableScan.getTableRef(), ctx.joins);
-
- Map<String, String> matchUp = ctx.joinsTree.matches(model.getJoinsTree(), result);
-
+ TableRef firstTable = ctx.firstTableScan.getTableRef();
+
+ Map<String, String> matchUp = null;
+
+ // one lookup table
+ if (ctx.joins.isEmpty() && model.isLookupTable(firstTable.getTableIdentity())) {
+ String modelAlias = model.findFirstTable(firstTable.getTableIdentity()).getAlias();
+ matchUp = ImmutableMap.of(firstTable.getAlias(), modelAlias);
+ }
+ // normal big joins
+ else {
+ if (ctx.joinsTree == null) {
+ ctx.joinsTree = new JoinsTree(firstTable, ctx.joins);
+ }
+ matchUp = ctx.joinsTree.matches(model.getJoinsTree(), result);
+ }
+
if (matchUp == null)
return null;
-
+
result.putAll(matchUp);
}
return result;