minor, fix agg combination calcuation

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

Branch: refs/heads/master
Commit: ac725cbd90976652970d7ce41029e7b9d8cc1852
Parents: 0f8c21b
Author: Roger Shi <rogershijich...@hotmail.com>
Authored: Mon Jun 26 16:42:13 2017 +0800
Committer: Hongbin Ma <m...@kyligence.io>
Committed: Mon Jun 26 17:24:29 2017 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/kylin/cube/model/AggregationGroup.java | 3 +++
 .../java/org/apache/kylin/cube/AggregationGroupRuleTest.java    | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/ac725cbd/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 be719be..064d657 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
@@ -320,6 +320,9 @@ public class AggregationGroup implements Serializable {
             normalDims.removeAll(jointDims);
 
             combination = combination * (1L << normalDims.size());
+            if (cubeDesc.getConfig().getCubeAggrGroupIsMandatoryOnlyValid()) {
+                combination += 1;
+            }
             combination -= 1; // not include cuboid 0
         }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/ac725cbd/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
----------------------------------------------------------------------
diff --git 
a/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java 
b/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
index d81d366..ccc3a98 100644
--- 
a/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
+++ 
b/core-cube/src/test/java/org/apache/kylin/cube/AggregationGroupRuleTest.java
@@ -58,6 +58,7 @@ public class AggregationGroupRuleTest extends 
LocalFileMetadataTestCase {
                 continue;
             }
             CubeDesc desc = JsonUtil.readValue(new FileInputStream(f), 
CubeDesc.class);
+            desc.init(getTestConfig());
             ValidateContext vContext = new ValidateContext();
             rule.validate(desc, vContext);
             vContext.print(System.out);
@@ -101,7 +102,7 @@ public class AggregationGroupRuleTest extends 
LocalFileMetadataTestCase {
         IValidatorRule<CubeDesc> rule = getAggregationGroupRule();
         rule.validate(desc, vContext);
         vContext.print(System.out);
-        assertEquals(0, vContext.getResults().length);
+        assertEquals(1, vContext.getResults().length);
     }
 
     @Test
@@ -130,7 +131,7 @@ public class AggregationGroupRuleTest extends 
LocalFileMetadataTestCase {
         IValidatorRule<CubeDesc> rule = getAggregationGroupRule();
         rule.validate(desc, vContext);
         vContext.print(System.out);
-        assertEquals(1, vContext.getResults().length);
+        assertEquals(2, vContext.getResults().length);
         assertEquals("Aggregation group 0 joint dimensions has overlap with 
more than 1 dimensions in same hierarchy: [CATEG_LVL2_NAME, META_CATEG_NAME]", 
(vContext.getResults()[0].getMessage()));
     }
 

Reply via email to