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/10/24 15:58:22 UTC
[02/12] kylin git commit: minor, append context info in Rel writer
minor, append context info in Rel writer
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c21fe432
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c21fe432
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c21fe432
Branch: refs/heads/2.2.x
Commit: c21fe4325ee6a846a7f2432df8e3330fa5fa556f
Parents: da0d153
Author: Roger Shi <ro...@hotmail.com>
Authored: Fri Oct 13 10:57:57 2017 +0800
Committer: Roger Shi <ro...@hotmail.com>
Committed: Thu Oct 19 10:03:36 2017 +0800
----------------------------------------------------------------------
.../java/org/apache/kylin/query/relnode/OLAPAggregateRel.java | 7 +++++++
.../java/org/apache/kylin/query/relnode/OLAPFilterRel.java | 7 +++++++
.../main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java | 7 +++++++
.../java/org/apache/kylin/query/relnode/OLAPLimitRel.java | 4 +++-
.../java/org/apache/kylin/query/relnode/OLAPProjectRel.java | 7 +++++++
.../main/java/org/apache/kylin/query/relnode/OLAPSortRel.java | 6 ++++++
.../java/org/apache/kylin/query/relnode/OLAPTableScan.java | 5 ++++-
.../apache/kylin/query/relnode/OLAPToEnumerableConverter.java | 6 ++++++
.../java/org/apache/kylin/query/relnode/OLAPUnionRel.java | 7 +++++--
.../java/org/apache/kylin/query/relnode/OLAPWindowRel.java | 4 +++-
10 files changed, 55 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
index 1540483..ca7c8ea 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
@@ -35,6 +35,7 @@ import org.apache.calcite.plan.RelTrait;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.InvalidRelException;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.core.Aggregate;
import org.apache.calcite.rel.core.AggregateCall;
import org.apache.calcite.rel.metadata.RelMetadataQuery;
@@ -487,4 +488,10 @@ public class OLAPAggregateRel extends Aggregate implements OLAPRel {
this.traitSet = this.traitSet.replace(trait);
return oldTraitSet;
}
+
+ @Override
+ public RelWriter explainTerms(RelWriter pw) {
+ return super.explainTerms(pw).item("ctx",
+ context == null ? "" : String.valueOf(context.id) + "@" + context.realization);
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
index 8f86ae0..1887ecb 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
@@ -36,6 +36,7 @@ import org.apache.calcite.plan.RelOptPlanner;
import org.apache.calcite.plan.RelTrait;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.core.Filter;
import org.apache.calcite.rel.metadata.RelMetadataQuery;
import org.apache.calcite.rel.type.RelDataType;
@@ -437,4 +438,10 @@ public class OLAPFilterRel extends Filter implements OLAPRel {
this.traitSet = this.traitSet.replace(trait);
return oldTraitSet;
}
+
+ @Override
+ public RelWriter explainTerms(RelWriter pw) {
+ return super.explainTerms(pw).item("ctx",
+ context == null ? "" : String.valueOf(context.id) + "@" + context.realization);
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/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 6d0a657..2a97a4c 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
@@ -43,6 +43,7 @@ import org.apache.calcite.plan.RelTrait;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.InvalidRelException;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.core.CorrelationId;
import org.apache.calcite.rel.core.JoinInfo;
import org.apache.calcite.rel.core.JoinRelType;
@@ -373,4 +374,10 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
this.traitSet = this.traitSet.replace(trait);
return oldTraitSet;
}
+
+ @Override
+ public RelWriter explainTerms(RelWriter pw) {
+ return super.explainTerms(pw).item("ctx",
+ context == null ? "" : String.valueOf(context.id) + "@" + context.realization);
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
index 2a248cc..700f615 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
@@ -66,7 +66,9 @@ public class OLAPLimitRel extends SingleRel implements OLAPRel {
@Override
public RelWriter explainTerms(RelWriter pw) {
- return super.explainTerms(pw).itemIf("offset", localOffset, localOffset != null).itemIf("fetch", localFetch, localFetch != null);
+ return super.explainTerms(pw)
+ .item("ctx", context == null ? "" : String.valueOf(context.id) + "@" + context.realization)
+ .itemIf("offset", localOffset, localOffset != null).itemIf("fetch", localFetch, localFetch != null);
}
@Override
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPProjectRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPProjectRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPProjectRel.java
index 8e93659..311e420 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPProjectRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPProjectRel.java
@@ -36,6 +36,7 @@ import org.apache.calcite.plan.RelOptPlanner;
import org.apache.calcite.plan.RelTrait;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.core.Project;
import org.apache.calcite.rel.metadata.RelMetadataQuery;
import org.apache.calcite.rel.type.RelDataType;
@@ -372,4 +373,10 @@ public class OLAPProjectRel extends Project implements OLAPRel {
public boolean isMerelyPermutation() {
return isMerelyPermutation;
}
+
+ @Override
+ public RelWriter explainTerms(RelWriter pw) {
+ return super.explainTerms(pw).item("ctx",
+ context == null ? "" : String.valueOf(context.id) + "@" + context.realization);
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/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 03ba9c5..9a90d33 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
@@ -31,6 +31,7 @@ import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.rel.RelCollation;
import org.apache.calcite.rel.RelFieldCollation;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelWriter;
import org.apache.calcite.rel.core.Sort;
import org.apache.calcite.rel.metadata.RelMetadataQuery;
import org.apache.calcite.rex.RexNode;
@@ -147,4 +148,9 @@ public class OLAPSortRel extends Sort implements OLAPRel {
return oldTraitSet;
}
+ @Override
+ public RelWriter explainTerms(RelWriter pw) {
+ return super.explainTerms(pw).item("ctx",
+ context == null ? "" : String.valueOf(context.id) + "@" + context.realization);
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/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 b739326..2ee4513 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
@@ -203,7 +203,10 @@ public class OLAPTableScan extends TableScan implements OLAPRel, EnumerableRel {
@Override
public RelWriter explainTerms(RelWriter pw) {
- return super.explainTerms(pw).item("fields", Primitive.asList(fields));
+
+ return super.explainTerms(pw)
+ .item("ctx", context == null ? "" : String.valueOf(context.id) + "@" + context.realization)
+ .item("fields", Primitive.asList(fields));
}
@Override
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
index 99dee11..cdef91d 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
@@ -80,6 +80,12 @@ public class OLAPToEnumerableConverter extends ConverterImpl implements Enumerab
intercept.intercept(contexts);
}
+ if (System.getProperty("calcite.debug") != null) {
+ String dumpPlan = RelOptUtil.dumpPlan("", this, false, SqlExplainLevel.DIGEST_ATTRIBUTES);
+ System.out.println("EXECUTION PLAN AFTER OLAPCONTEXT IS SET");
+ System.out.println(dumpPlan);
+ }
+
RealizationChooser.selectRealization(contexts);
doAccessControl(contexts);
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPUnionRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPUnionRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPUnionRel.java
index dadec58..f409045 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPUnionRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPUnionRel.java
@@ -69,9 +69,12 @@ public class OLAPUnionRel extends Union implements OLAPRel {
@Override
public RelWriter explainTerms(RelWriter pw) {
- return super.explainTerms(pw).itemIf("all", all, true);
- }
+ boolean contextNotNull = context != null;
+ return super.explainTerms(pw)
+ .item("ctx", context == null ? "" : String.valueOf(context.id) + "@" + context.realization)
+ .itemIf("all", all, true);
+ }
@Override
public void implementOLAP(OLAPImplementor implementor) {
// Always create new OlapContext to combine columns from all children contexts.
http://git-wip-us.apache.org/repos/asf/kylin/blob/c21fe432/query/src/main/java/org/apache/kylin/query/relnode/OLAPWindowRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPWindowRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPWindowRel.java
index 6470504..5cd94fd 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPWindowRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPWindowRel.java
@@ -65,7 +65,9 @@ public class OLAPWindowRel extends Window implements OLAPRel {
@Override
public RelWriter explainTerms(RelWriter pw) {
- return super.explainTerms(pw) //
+
+ return super.explainTerms(pw)
+ .item("ctx", context == null ? "" : String.valueOf(context.id) + "@" + context.realization)//
.itemIf("constants", constants, !constants.isEmpty()) //
.itemIf("groups", groups, !groups.isEmpty());
}