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