Repository: kylin Updated Branches: refs/heads/yang21 6be088815 -> 631e6f1c1
KYLIN-1945 Cuboid.translateToValidCuboid method throw exception while cube building or query execute Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/631e6f1c Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/631e6f1c Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/631e6f1c Branch: refs/heads/yang21 Commit: 631e6f1c1a24862b588b8504bc69410830e4cd79 Parents: 6be0888 Author: Hongbin Ma <mahong...@apache.org> Authored: Thu Nov 3 16:01:04 2016 +0800 Committer: Hongbin Ma <mahong...@apache.org> Committed: Thu Nov 3 16:01:04 2016 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/cube/cuboid/Cuboid.java | 10 +++++----- .../org/apache/kylin/cube/model/AggregationGroup.java | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/631e6f1c/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java index e4e718d..855aad6 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java @@ -89,16 +89,11 @@ public class Cuboid implements Comparable<Cuboid> { } public static boolean isValid(CubeDesc cube, long cuboidID) { - if (cuboidID == getBaseCuboidId(cube)) { - return true; - } - for (AggregationGroup agg : cube.getAggregationGroups()) { if (isValid(agg, cuboidID)) { return true; } } - return false; } @@ -231,6 +226,11 @@ public class Cuboid implements Comparable<Cuboid> { if ((cuboidID & mandatoryColumnMask) != mandatoryColumnMask) { return false; } else { + //base cuboid is always valid + if (cuboidID == getBaseCuboidId(agg.getCubeDesc())) { + return true; + } + //cuboid with only mandatory columns maybe valid return agg.isMandatoryOnlyValid() || (cuboidID & ~mandatoryColumnMask) != 0; } http://git-wip-us.apache.org/repos/asf/kylin/blob/631e6f1c/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java index 601ee0a..5f780d0 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java @@ -281,4 +281,8 @@ public class AggregationGroup { public boolean isMandatoryOnlyValid() { return isMandatoryOnlyValid; } + + public CubeDesc getCubeDesc() { + return cubeDesc; + } }