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/04/11 05:04:07 UTC

[3/4] kylin git commit: KYLIN-2539 bug fix

KYLIN-2539 bug fix


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

Branch: refs/heads/2.0.x
Commit: c4b1d4a5a4e11f8c50b9957e38eba71d18bc6143
Parents: fac8285
Author: lidongsjtu <li...@apache.org>
Authored: Tue Apr 11 10:46:22 2017 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Tue Apr 11 13:01:28 2017 +0800

----------------------------------------------------------------------
 .../apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java   | 4 ----
 .../main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java | 5 +++++
 2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/c4b1d4a5/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java
----------------------------------------------------------------------
diff --git a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java
index abac33a..08a3843 100644
--- a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java
+++ b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java
@@ -38,7 +38,6 @@ import org.apache.kylin.dict.lookup.LookupStringTable;
 import org.apache.kylin.measure.MeasureType;
 import org.apache.kylin.metadata.filter.ColumnTupleFilter;
 import org.apache.kylin.metadata.filter.CompareTupleFilter;
-import org.apache.kylin.metadata.filter.FilterOptimizeTransformer;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
@@ -149,9 +148,6 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery {
         // set query deadline
         context.setDeadline(cubeInstance);
 
-        // optimize the filter, the optimization has to be segment-irrelevant
-        new FilterOptimizeTransformer().transform(filterD);
-
         logger.info("Cuboid identified: cube={}, cuboidId={}, groupsD={}, filterD={}, limitPushdown={}, storageAggr={}", cubeInstance.getName(), cuboid.getId(), groupsD, filterColumnD, context.getFinalPushDownLimit(), context.isNeedStorageAggregation());
 
         return new GTCubeStorageQueryRequest(cuboid, dimensionsD, groupsD, metrics, filterD, context);

http://git-wip-us.apache.org/repos/asf/kylin/blob/c4b1d4a5/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 d3d78a0..3fba1ee 100755
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
@@ -60,6 +60,7 @@ import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.DynamicTupleFilter;
 import org.apache.kylin.metadata.filter.ExtractTupleFilter;
+import org.apache.kylin.metadata.filter.FilterOptimizeTransformer;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
@@ -325,6 +326,10 @@ public class OLAPFilterRel extends Filter implements OLAPRel {
         TupleFilter filter = this.condition.accept(visitor);
 
         context.filter = TupleFilter.and(context.filter, filter);
+
+        // optimize the filter, the optimization has to be segment-irrelevant
+        new FilterOptimizeTransformer().transform(context.filter);
+
         context.filterColumns.addAll(visitor.columnsInFilter);
     }