lens git commit: LENS-909 : Remove sending result as part of email incase of inmemory results
Repository: lens Updated Branches: refs/heads/master b805ee989 -> bee5cfd8d LENS-909 : Remove sending result as part of email incase of inmemory results Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/bee5cfd8 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/bee5cfd8 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/bee5cfd8 Branch: refs/heads/master Commit: bee5cfd8d6f216a0af042a4ae6772aa4dabfe320 Parents: b805ee9 Author: Puneet GuptaAuthored: Sun Feb 7 15:11:34 2016 +0530 Committer: Amareshwari Sriramadasu Committed: Sun Feb 7 15:11:34 2016 +0530 -- .../lens/server/query/QueryEndNotifier.java | 26 +++- .../server/query/TestQueryEndEmailNotifier.java | 19 +++--- 2 files changed, 40 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/lens/blob/bee5cfd8/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java -- diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java index ca00b4d..63c38d9 100644 --- a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java +++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java @@ -34,6 +34,8 @@ import javax.mail.internet.MimeMultipart; import org.apache.lens.api.query.QueryStatus; import org.apache.lens.server.LensServices; +import org.apache.lens.server.api.driver.InMemoryResultSet; +import org.apache.lens.server.api.driver.LensResultSet; import org.apache.lens.server.api.error.LensException; import org.apache.lens.server.api.events.AsyncEventListener; import org.apache.lens.server.api.metrics.MetricsService; @@ -44,6 +46,9 @@ import org.apache.lens.server.model.LogSegregationContext; import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.hive.conf.HiveConf; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; + import lombok.Data; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; @@ -60,6 +65,18 @@ public class QueryEndNotifier extends AsyncEventListener { /** The Constant EMAIL_ERROR_COUNTER. */ public static final String EMAIL_ERROR_COUNTER = "email-send-errors"; + /** The time in seconds for which in memory result is available */ + private final int inMemoryResultsetTTLSecs; + + /** Time formatter for email message corresponding to InMemoryResultset + * Example : 2016-01-25 07:05:46 PM, IST + */ + static final DateTimeFormatter MESSAGE_DATE_FORMATTER = DateTimeFormat.forPattern("-MM-dd hh:mm:SS aaa, z"); + + /** Mail message corresponding to InMemoryResultset*/ + static final String RESULT_AVAILABLE_UNTIL_MSG = + "Query result is temporarily cached in the server and will be available until "; + /** The from. */ private final String from; @@ -97,6 +114,7 @@ public class QueryEndNotifier extends AsyncEventListener { mailSmtpConnectionTimeout = Integer.parseInt(conf.get(MAIL_SMTP_CONNECTIONTIMEOUT, MAIL_DEFAULT_SMTP_CONNECTIONTIMEOUT)); this.logSegregationContext = logSegregationContext; +this.inMemoryResultsetTTLSecs =conf.getInt(INMEMORY_RESULT_SET_TTL_SECS, DEFAULT_INMEMORY_RESULT_SET_TTL_SECS); } /* @@ -172,7 +190,13 @@ public class QueryEndNotifier extends AsyncEventListener { private String getResultMessage(QueryContext queryContext) { try { - return queryService.getResultset(queryContext.getQueryHandle()).toQueryResult().toPrettyString(); + LensResultSet result = queryService.getResultset(queryContext.getQueryHandle()); + if (result instanceof InMemoryResultSet) { // Do not include the result rows for InMemory results. +long availableUntilTime = ((InMemoryResultSet)result).getCreationTime() + inMemoryResultsetTTLSecs; +return RESULT_AVAILABLE_UNTIL_MSG + MESSAGE_DATE_FORMATTER.print(availableUntilTime); + } else { +return result.toQueryResult().toPrettyString(); + } } catch (LensException e) { log.error("Error retrieving result of query handle {} for sending e-mail", queryContext.getQueryHandle(), e); return "Error retrieving result."; http://git-wip-us.apache.org/repos/asf/lens/blob/bee5cfd8/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java -- diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java index e97a5a3..5196c9b 100644
lens git commit: LENS-946 : Fix filter clauses in multi fact or multi storage queries
Repository: lens Updated Branches: refs/heads/master bee5cfd8d -> 0b3203d04 LENS-946 : Fix filter clauses in multi fact or multi storage queries Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/0b3203d0 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/0b3203d0 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/0b3203d0 Branch: refs/heads/master Commit: 0b3203d047d9738141d153e9f7894fcc6ac64f79 Parents: bee5cfd Author: Amareshwari SriramadasuAuthored: Mon Feb 8 12:00:53 2016 +0530 Committer: Amareshwari Sriramadasu Committed: Mon Feb 8 12:00:53 2016 +0530 -- .../apache/lens/cube/parse/CandidateFact.java | 22 ++- .../lens/cube/parse/CubeQueryContext.java | 9 ++- .../apache/lens/cube/parse/DefaultQueryAST.java | 2 +- .../cube/parse/DenormalizationResolver.java | 13 +++- .../lens/cube/parse/ExpressionResolver.java | 12 +++- .../parse/SingleFactMultiStorageHQLContext.java | 10 --- .../apache/lens/cube/parse/CubeTestSetup.java | 24 +-- .../lens/cube/parse/TestBaseCubeQueries.java| 68 ++-- .../lens/cube/parse/TestCubeRewriter.java | 25 ++- 9 files changed, 132 insertions(+), 53 deletions(-) -- http://git-wip-us.apache.org/repos/asf/lens/blob/0b3203d0/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java -- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java index 4faebe1..1b0de34 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java @@ -76,12 +76,11 @@ public class CandidateFact implements CandidateTable, QueryAST { @Getter @Setter private Integer limitValue; - private List timenodes = Lists.newArrayList(); private final List selectIndices = Lists.newArrayList(); private final List dimFieldIndices = Lists.newArrayList(); private Collection columns; @Getter - private final Map storgeWhereClauseMap = new HashMap<>(); + private final Map storgeWhereClauseMap = new HashMap<>(); @Getter private final Map > rangeToStoragePartMap = new HashMap<>(); @Getter @@ -145,18 +144,6 @@ public class CandidateFact implements CandidateTable, QueryAST { return alias; } - static class TimeRangeNode { -ASTNode timenode; -ASTNode parent; -int childIndex; - -TimeRangeNode(ASTNode timenode, ASTNode parent, int childIndex) { - this.timenode = timenode; - this.parent = parent; - this.childIndex = childIndex; -} - } - void incrementPartsQueried(int incr) { numQueriedParts += incr; } @@ -174,8 +161,8 @@ public class CandidateFact implements CandidateTable, QueryAST { } - public String getWhereClause(String storageTable) { -return getStorgeWhereClauseMap().get(storageTable); + public ASTNode getStorageWhereClause(String storageTable) { +return storgeWhereClauseMap.get(storageTable); } public boolean isExpressionAnswerable(ASTNode node, CubeQueryContext context) throws LensException { @@ -231,7 +218,7 @@ public class CandidateFact implements CandidateTable, QueryAST { private Set getColsInExpr(final CubeQueryContext cubeql, final Set cubeCols, ASTNode expr) throws LensException { -final Set cubeColsInExpr = new HashSet(); +final Set cubeColsInExpr = new HashSet<>(); HQLParser.bft(expr, new ASTNodeVisitor() { @Override public void visit(TreeNode visited) { @@ -346,7 +333,6 @@ public class CandidateFact implements CandidateTable, QueryAST { return null; } - /** * @return the selectIndices */ http://git-wip-us.apache.org/repos/asf/lens/blob/0b3203d0/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java -- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java index ebf8875..b8b6db9 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java @@ -875,7 +875,7 @@ public class CubeQueryContext implements TrackQueriedColumns, QueryAST { ASTNode rangeAST = HQLParser.parseExpr(rangeWhere); range.getParent().setChild(range.getChildIndex(), rangeAST); } - fact.getStorgeWhereClauseMap().put(table, getWhereTree()); +