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;
+    }
 }

Reply via email to