minor, add project filter to saved query
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/2ba22a9c Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/2ba22a9c Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/2ba22a9c Branch: refs/heads/KYLIN-2881-review Commit: 2ba22a9ce67b44db62897422e338b29522be67b7 Parents: f86d067 Author: lidongsjtu <lid...@apache.org> Authored: Sat Jan 6 17:16:09 2018 +0800 Committer: chenzhx <c...@apache.org> Committed: Sat Jan 6 17:17:19 2018 +0800 ---------------------------------------------------------------------- .../kylin/rest/controller/QueryController.java | 5 +++-- .../apache/kylin/rest/service/QueryService.java | 22 ++++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/2ba22a9c/server-base/src/main/java/org/apache/kylin/rest/controller/QueryController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/QueryController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/QueryController.java index 4f83780..edb2dd5 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/QueryController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/QueryController.java @@ -54,6 +54,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.supercsv.io.CsvListWriter; import org.supercsv.io.ICsvListWriter; @@ -114,9 +115,9 @@ public class QueryController extends BasicController { @RequestMapping(value = "/saved_queries", method = RequestMethod.GET, produces = { "application/json" }) @ResponseBody - public List<Query> getQueries() throws IOException { + public List<Query> getQueries(@RequestParam(value = "project", required = false) String project) throws IOException { String creator = SecurityContextHolder.getContext().getAuthentication().getName(); - return queryService.getQueries(creator); + return queryService.getQueries(creator, project); } @RequestMapping(value = "/query/format/{format}", method = RequestMethod.GET, produces = { "application/json" }) http://git-wip-us.apache.org/repos/asf/kylin/blob/2ba22a9c/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java index 9789b70..311ad9c 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java @@ -254,15 +254,20 @@ public class QueryService extends BasicService { } public List<Query> getQueries(final String creator) throws IOException { + return getQueries(creator, null); + } + + public List<Query> getQueries(final String creator, final String project) throws IOException { if (null == creator) { return null; } - List<Query> queries = new ArrayList<Query>(); + List<Query> queries = new ArrayList<>(); QueryRecord record = queryStore.getResource(getQueryKeyById(creator), QueryRecord.class, QueryRecordSerializer.getInstance()); if (record != null) { for (Query query : record.getQueries()) { - queries.add(query); + if (project == null || query.getProject().equals(project)) + queries.add(query); } } return queries; @@ -414,7 +419,7 @@ public class QueryService extends BasicService { try (SetThreadName ignored = new SetThreadName("Query %s", queryContext.getQueryId())) { long startTime = System.currentTimeMillis(); - + SQLResponse sqlResponse = null; String sql = sqlRequest.getSql(); String project = sqlRequest.getProject(); @@ -433,16 +438,16 @@ public class QueryService extends BasicService { if (sqlResponse == null && isQueryInspect) { sqlResponse = new SQLResponse(null, null, 0, false, sqlRequest.getSql()); } - + if (sqlResponse == null && isCreateTempStatement) { sqlResponse = new SQLResponse(null, null, 0, false, null); } - + if (sqlResponse == null && isQueryCacheEnabled) { sqlResponse = searchQueryInCache(sqlRequest); Trace.addTimelineAnnotation("query cache searched"); } - + // real execution if required if (sqlResponse == null) { try (QueryRequestLimits limit = new QueryRequestLimits(sqlRequest.getProject())) { @@ -481,7 +486,7 @@ public class QueryService extends BasicService { private SQLResponse queryAndUpdateCache(SQLRequest sqlRequest, long startTime, boolean queryCacheEnabled) { KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv(); Message msg = MsgPicker.getMsg(); - + SQLResponse sqlResponse = null; try { final boolean isSelect = QueryUtil.isSelectStatement(sqlRequest.getSql()); @@ -543,8 +548,7 @@ public class QueryService extends BasicService { } private boolean isQueryCacheEnabled(KylinConfig kylinConfig) { - return checkCondition(kylinConfig.isQueryCacheEnabled(), - "query cache disabled in KylinConfig") && // + return checkCondition(kylinConfig.isQueryCacheEnabled(), "query cache disabled in KylinConfig") && // checkCondition(!BackdoorToggles.getDisableCache(), "query cache disabled in BackdoorToggles"); }