You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ch...@apache.org on 2018/02/09 03:29:54 UTC

kylin git commit: KYLIN-3247

Repository: kylin
Updated Branches:
  refs/heads/master 0655dbc38 -> 0550cc3a0


KYLIN-3247

Signed-off-by: chenzhx <ch...@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 <xi...@zte.com.cn>
Authored: Thu Feb 8 16:45:30 2018 +0800
Committer: chenzhx <ch...@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");