Repository: kylin Updated Branches: refs/heads/master 0655dbc38 -> 0550cc3a0
KYLIN-3247 Signed-off-by: chenzhx <c...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0550cc3a Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0550cc3a Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0550cc3a Branch: refs/heads/master Commit: 0550cc3a061dac2714763d153afdd3228e448b66 Parents: 0655dbc Author: xingpeng1 <xing.pe...@zte.com.cn> Authored: Thu Feb 8 16:45:30 2018 +0800 Committer: chenzhx <c...@apache.org> Committed: Fri Feb 9 11:29:16 2018 +0800 ---------------------------------------------------------------------- .../kylin/cube/model/CubeJoinedFlatTableDesc.java | 4 ++++ .../kylin/rest/controller/CubeController.java | 16 ++++++++++++---- .../kylin/rest/controller/CubeControllerTest.java | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/0550cc3a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeJoinedFlatTableDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeJoinedFlatTableDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeJoinedFlatTableDesc.java index 4a1cfc0..d50a5af 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeJoinedFlatTableDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeJoinedFlatTableDesc.java @@ -63,6 +63,10 @@ public class CubeJoinedFlatTableDesc implements IJoinedFlatTableDesc, Serializab this(cubeSegment.getCubeDesc(), cubeSegment, false); } + public CubeJoinedFlatTableDesc(CubeSegment cubeSegment, boolean includingDerived) { + this(cubeSegment.getCubeDesc(), cubeSegment, includingDerived); + } + private CubeJoinedFlatTableDesc(CubeDesc cubeDesc, CubeSegment cubeSegment /* can be null */, boolean includingDerived) { this.cubeDesc = cubeDesc; http://git-wip-us.apache.org/repos/asf/kylin/blob/0550cc3a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java index 2928572..b4ebcba 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java @@ -42,7 +42,6 @@ import org.apache.kylin.cube.model.CubeDesc; import org.apache.kylin.cube.model.CubeJoinedFlatTableDesc; import org.apache.kylin.cube.model.RowKeyColDesc; import org.apache.kylin.dimension.DimensionEncodingFactory; -import org.apache.kylin.engine.EngineFactory; import org.apache.kylin.engine.mr.common.CuboidStatsReaderUtil; import org.apache.kylin.job.JobInstance; import org.apache.kylin.job.JoinedFlatTable; @@ -196,7 +195,7 @@ public class CubeController extends BasicController { if (cube == null) { throw new InternalErrorException("Cannot find cube " + cubeName); } - IJoinedFlatTableDesc flatTableDesc = EngineFactory.getJoinedFlatTableDesc(cube.getDescriptor()); + IJoinedFlatTableDesc flatTableDesc = new CubeJoinedFlatTableDesc(cube.getDescriptor(), true); String sql = JoinedFlatTable.generateSelectDataStatement(flatTableDesc); GeneralResponse response = new GeneralResponse(); @@ -218,7 +217,16 @@ public class CubeController extends BasicController { @ResponseBody public GeneralResponse getSql(@PathVariable String cubeName, @PathVariable String segmentName) { CubeInstance cube = cubeService.getCubeManager().getCube(cubeName); - IJoinedFlatTableDesc flatTableDesc = new CubeJoinedFlatTableDesc(cube.getDescriptor(), true); + if (cube == null) { + throw new InternalErrorException("Cannot find cube " + cubeName); + } + + CubeSegment segment = cube.getSegment(segmentName, null); + if (segment == null) { + throw new InternalErrorException("Cannot find segment " + segmentName); + } + + IJoinedFlatTableDesc flatTableDesc = new CubeJoinedFlatTableDesc(segment, true); String sql = JoinedFlatTable.generateSelectDataStatement(flatTableDesc); GeneralResponse response = new GeneralResponse(); @@ -1044,4 +1052,4 @@ public class CubeController extends BasicController { public void setJobService(JobService jobService) { this.jobService = jobService; } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/0550cc3a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java ---------------------------------------------------------------------- diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java index 96ff29e..b43cb9c 100644 --- a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java +++ b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java @@ -195,7 +195,7 @@ public class CubeControllerTest extends ServiceTestBase { @Test public void testGetSql() { - GeneralResponse response = cubeController.getSql("test_kylin_cube_with_slr_ready", null); + GeneralResponse response = cubeController.getSql("test_kylin_cube_with_slr_ready"); String sql = response.getProperty("sql"); CubeDesc cubeDesc = cubeDescController.getDesc("test_kylin_cube_with_slr_ready");