bug fix, new aggr group does not support hierarchy well

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b7db093f
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b7db093f
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b7db093f

Branch: refs/heads/1.5.x-HBase1.1.3
Commit: b7db093fbefd9fac1e2193e8e06ce64db2bd0ce0
Parents: 4e48f2a
Author: lidongsjtu <[email protected]>
Authored: Thu Mar 10 18:58:21 2016 +0800
Committer: lidongsjtu <[email protected]>
Committed: Thu Mar 10 18:58:37 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/cube/cuboid/Cuboid.java    | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b7db093f/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 2cd96a6..c4e373b 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
@@ -143,9 +143,18 @@ public class Cuboid implements Comparable<Cuboid> {
             long fullMask = hierarchyMask.fullMask;
             long intersect = cuboidID & fullMask;
             if (intersect != 0 && intersect != fullMask) {
-                long lsb = Long.lowestOneBit(intersect);
-                long fillMask = fullMask & ~(lsb - 1);
-                cuboidID |= fillMask;
+
+                boolean startToFill = false;
+                for (int i = hierarchyMask.dims.length - 1; i >= 0; i--) {
+                    if (startToFill) {
+                        cuboidID |= hierarchyMask.dims[i];
+                    } else {
+                        if ((cuboidID & hierarchyMask.dims[i]) != 0) {
+                            startToFill = true;
+                            cuboidID |= hierarchyMask.dims[i];
+                        }
+                    }
+                }
             }
         }
 

Reply via email to