minor, logging derive translated filter columns
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/02868adf Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/02868adf Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/02868adf Branch: refs/heads/yaho-cube-planner Commit: 02868adfc3f264fbb32ecc025110aa3d69e20657 Parents: 42abb73 Author: lidongsjtu <lid...@apache.org> Authored: Fri Aug 4 17:14:47 2017 +0800 Committer: Dong Li <lid...@apache.org> Committed: Fri Aug 4 18:28:37 2017 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/cube/CubeManager.java | 2 +- .../storage/gtrecord/GTCubeStorageQueryBase.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/02868adf/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java index 0beb926..4215746 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java @@ -677,7 +677,7 @@ public class CubeManager implements IRealizationProvider { String[] pkCols = join.getPrimaryKey(); String snapshotResPath = cubeSegment.getSnapshotResPath(tableName); if (snapshotResPath == null) - throw new IllegalStateException("No snaphot for table '" + tableName + "' found on cube segment" + throw new IllegalStateException("No snapshot for table '" + tableName + "' found on cube segment" + cubeSegment.getCubeInstance().getName() + "/" + cubeSegment); try { http://git-wip-us.apache.org/repos/asf/kylin/blob/02868adf/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 22f5fc9..ea3811c 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 @@ -140,10 +140,10 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery { Set<TblColRef> filterColumnD = Sets.newHashSet(); TupleFilter filterD = translateDerived(filter, loosenedColumnD); groupsD.addAll(loosenedColumnD); - TupleFilter.collectColumns(filter, filterColumnD); + TupleFilter.collectColumns(filterD, filterColumnD); // set limit push down - enableStorageLimitIfPossible(cuboid, groups, derivedPostAggregation, groupsD, filter, loosenedColumnD, sqlDigest.aggregations, context); + enableStorageLimitIfPossible(cuboid, groups, derivedPostAggregation, groupsD, filterD, loosenedColumnD, sqlDigest.aggregations, context); // set whether to aggregate results from multiple partitions enableStreamAggregateIfBeneficial(cuboid, groupsD, context); // set query deadline @@ -316,9 +316,7 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery { return compf; DeriveInfo hostInfo = cubeDesc.getHostInfo(derived); - CubeManager cubeMgr = CubeManager.getInstance(this.cubeInstance.getConfig()); - CubeSegment seg = cubeInstance.getLatestReadySegment(); - LookupStringTable lookup = cubeMgr.getLookupTable(seg, hostInfo.join); + LookupStringTable lookup = getLookupStringTableForDerived(derived, hostInfo); Pair<TupleFilter, Boolean> translated = DerivedFilterTranslator.translate(lookup, hostInfo, compf); TupleFilter translatedFilter = translated.getFirst(); boolean loosened = translated.getSecond(); @@ -328,6 +326,13 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery { return translatedFilter; } + @SuppressWarnings("unchecked") + protected LookupStringTable getLookupStringTableForDerived(TblColRef derived, DeriveInfo hostInfo) { + CubeManager cubeMgr = CubeManager.getInstance(this.cubeInstance.getConfig()); + CubeSegment seg = cubeInstance.getLatestReadySegment(); + return cubeMgr.getLookupTable(seg, hostInfo.join); + } + private void collectColumnsRecursively(TupleFilter filter, Set<TblColRef> collector) { if (filter == null) return;