You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/03/14 12:03:33 UTC
kylin git commit: KYLIN-1491 Should return base cuboid as valid
cuboid if no aggregation group matches
Repository: kylin
Updated Branches:
refs/heads/master 3800e4eb1 -> b271f0230
KYLIN-1491 Should return base cuboid as valid cuboid if no aggregation group matches
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b271f023
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b271f023
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b271f023
Branch: refs/heads/master
Commit: b271f0230ef9b2433721920b3471d1c0cb982340
Parents: 3800e4e
Author: lidongsjtu <li...@apache.org>
Authored: Mon Mar 14 15:03:37 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Mon Mar 14 18:59:01 2016 +0800
----------------------------------------------------------------------
.../org/apache/kylin/cube/cuboid/Cuboid.java | 9 +++++++--
.../org/apache/kylin/cube/cuboid/CuboidTest.java | 19 +++++++++++++++++--
...st_kylin_cube_without_slr_left_join_desc.json | 2 +-
3 files changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/b271f023/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 89f5204..7f8d2b8 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
@@ -73,6 +73,10 @@ 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;
@@ -112,7 +116,8 @@ public class Cuboid implements Comparable<Cuboid> {
}
public static long translateToValidCuboid(CubeDesc cubeDesc, long cuboidID) {
- if (cuboidID == getBaseCuboidId(cubeDesc)) {
+ long baseCuboidId = getBaseCuboidId(cubeDesc);
+ if (cuboidID == baseCuboidId) {
return cuboidID;
}
List<Long> candidates = Lists.newArrayList();
@@ -124,7 +129,7 @@ public class Cuboid implements Comparable<Cuboid> {
}
if (candidates.size() == 0) {
- throw new IllegalStateException("Cannot find parent for :" + cuboidID);
+ return baseCuboidId;
}
return Collections.min(candidates, cuboidSelectComparator);
http://git-wip-us.apache.org/repos/asf/kylin/blob/b271f023/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
index eecf368..40e2a4b 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
@@ -49,6 +49,10 @@ public class CuboidTest extends LocalFileMetadataTestCase {
return getCubeDescManager().getCubeDesc("test_kylin_cube_with_slr_desc");
}
+ private CubeDesc getTestKylinCubeWithoutSellerLeftJoin() {
+ return getCubeDescManager().getCubeDesc("test_kylin_cube_without_slr_left_join_desc");
+
+ }
@Before
public void setUp() throws Exception {
this.createTestMetadata();
@@ -86,7 +90,7 @@ public class CuboidTest extends LocalFileMetadataTestCase {
}
@Test
- public void testCuboid1() {
+ public void testFindCuboidByIdWithSingleAggrGroup1() {
CubeDesc cube = getTestKylinCubeWithoutSeller();
Cuboid cuboid;
@@ -137,7 +141,7 @@ public class CuboidTest extends LocalFileMetadataTestCase {
}
@Test
- public void testCuboid2() {
+ public void testFindCuboidByIdWithSingleAggrGroup2() {
CubeDesc cube = getTestKylinCubeWithSeller();
Cuboid cuboid;
@@ -163,4 +167,15 @@ public class CuboidTest extends LocalFileMetadataTestCase {
assertEquals(toLong("111111111"), cuboid.getId());
}
+ @Test
+ public void testFindCuboidByIdWithMultiAggrGroup() {
+ CubeDesc cube = getTestKylinCubeWithoutSellerLeftJoin();
+ Cuboid cuboid;
+
+ cuboid = Cuboid.findById(cube, toLong("111111110"));
+ assertEquals(toLong("11111111"), cuboid.getId());
+
+ cuboid = Cuboid.findById(cube, toLong("111111111"));
+ assertEquals(toLong("11111111"), cuboid.getId());
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/b271f023/examples/test_case_data/localmeta/cube_desc/test_kylin_cube_without_slr_left_join_desc.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/test_kylin_cube_without_slr_left_join_desc.json b/examples/test_case_data/localmeta/cube_desc/test_kylin_cube_without_slr_left_join_desc.json
index 967c744..42a242b 100644
--- a/examples/test_case_data/localmeta/cube_desc/test_kylin_cube_without_slr_left_join_desc.json
+++ b/examples/test_case_data/localmeta/cube_desc/test_kylin_cube_without_slr_left_join_desc.json
@@ -213,7 +213,7 @@
} ]
},
"aggregation_groups" : [ {
- "includes" : [ "cal_dt", "categ_lvl2_name", "categ_lvl3_name", "leaf_categ_id", "lstg_format_name", "lstg_site_id", "meta_categ_name", "slr_segment_cd" ],
+ "includes" : [ "cal_dt", "categ_lvl2_name", "categ_lvl3_name", "leaf_categ_id", "lstg_format_name", "lstg_site_id", "meta_categ_name"],
"select_rule" : {
"hierarchy_dims" : [ ],
"mandatory_dims" : [ "cal_dt" ],