Repository: kylin Updated Branches: refs/heads/master a9fe953df -> b8acf14f5
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/04ac1c49 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/04ac1c49 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/04ac1c49 Branch: refs/heads/master Commit: 04ac1c492ecb4dea02c3f952e3cce7bfca2b4b8d Parents: a9fe953 Author: Hongbin Ma <[email protected]> Authored: Thu Nov 3 16:01:04 2016 +0800 Committer: Hongbin Ma <[email protected]> Committed: Mon Nov 7 14:51:39 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/04ac1c49/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/04ac1c49/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 6e76ac3..027d185 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 @@ -293,4 +293,8 @@ public class AggregationGroup { public boolean isMandatoryOnlyValid() { return isMandatoryOnlyValid; } + + public CubeDesc getCubeDesc() { + return cubeDesc; + } }
