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/07/05 02:58:10 UTC
[2/2] kylin git commit: KYLIN-1792 review changes for readability
KYLIN-1792 review changes for readability
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/13ae6614
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/13ae6614
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/13ae6614
Branch: refs/heads/master
Commit: 13ae6614f6ea98182dc048288fd05d3ec3be7803
Parents: 6f6d779
Author: Li Yang <li...@apache.org>
Authored: Tue Jul 5 10:57:56 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Tue Jul 5 10:57:56 2016 +0800
----------------------------------------------------------------------
.../java/org/apache/kylin/query/relnode/OLAPJoinRel.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/13ae6614/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
index f66351b..6dbb81a 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
@@ -117,14 +117,15 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
this.isTopJoin = !this.context.hasJoin;
this.context.hasJoin = true;
- int nJoinPossibility = 0;
+ boolean leftHasSubquery = false;
+ boolean rightHasSubquery = false;
// as we keep the first table as fact table, we need to visit from left to right
implementor.visitChild(this.left, this);
if (this.context != implementor.getContext() || ((OLAPRel) this.left).hasSubQuery()) {
this.hasSubQuery = true;
+ leftHasSubquery = true;
// if child is also an OLAPJoin, then the context has already been popped
- nJoinPossibility--;
if (this.context != implementor.getContext()) {
implementor.freeContext();
}
@@ -132,7 +133,7 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
implementor.visitChild(this.right, this);
if (this.context != implementor.getContext() || ((OLAPRel) this.right).hasSubQuery()) {
this.hasSubQuery = true;
- nJoinPossibility++;
+ rightHasSubquery = true;
// if child is also an OLAPJoin, then the context has already been popped
if (this.context != implementor.getContext()) {
implementor.freeContext();
@@ -157,13 +158,13 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
join.setType(joinType);
this.context.joins.add(join);
- } else if (0 != nJoinPossibility) {
+ } else if (leftHasSubquery != rightHasSubquery) {
//When join contains subquery, the join-condition fields of fact_table will add into context.
Map<TblColRef, TblColRef> joinCol = new HashMap<TblColRef, TblColRef>();
translateJoinColumn((RexCall) this.getCondition(), joinCol);
for (Map.Entry<TblColRef, TblColRef> columnPair : joinCol.entrySet()) {
- TblColRef fromCol = (-1 == nJoinPossibility ? columnPair.getValue() : columnPair.getKey());
+ TblColRef fromCol = (rightHasSubquery ? columnPair.getKey() : columnPair.getValue());
this.context.groupByColumns.add(fromCol);
}
joinCol.clear();