Repository: kylin
Updated Branches:
  refs/heads/yang21-hbase1.x a93c2758a -> 2a8ca1dd6 (forced update)


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-hbase1.x
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;
+    }
 }

Reply via email to