Repository: lens
Updated Branches:
  refs/heads/master 2da114407 -> ee2bda93f


LENS-977: 'AND' in having clause is not resolved properly with multi fact query


Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/ee2bda93
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/ee2bda93
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/ee2bda93

Branch: refs/heads/master
Commit: ee2bda93f1587148a8a5e86ba88d04d1f3549d4f
Parents: 2da1144
Author: Amareshwari Sriramadasu <[email protected]>
Authored: Sun Feb 28 20:01:31 2016 +0530
Committer: Rajat Khandelwal <[email protected]>
Committed: Sun Feb 28 20:01:31 2016 +0530

----------------------------------------------------------------------
 .../java/org/apache/lens/cube/parse/CandidateFact.java   |  4 ++--
 .../org/apache/lens/cube/parse/TestBaseCubeQueries.java  | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/ee2bda93/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 1b0de34..82ca4f4 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
@@ -117,9 +117,9 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
       return;
     }
     ASTNode existingHavingAST = (ASTNode) getHavingAST().getChild(0);
-    ASTNode newHavingAST = new ASTNode(new CommonToken(KW_AND, "KW_AND"));
-    newHavingAST.addChild(ast);
+    ASTNode newHavingAST = new ASTNode(new CommonToken(KW_AND, "AND"));
     newHavingAST.addChild(existingHavingAST);
+    newHavingAST.addChild(ast);
     getHavingAST().setChild(0, newHavingAST);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/ee2bda93/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
index 0415434..fec5d51 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
@@ -763,6 +763,17 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
     assertTrue(hqlQuery.contains(joinSubString) && 
hqlQuery.endsWith(endSubString), hqlQuery);
 
     hqlQuery = rewrite("select dim1, dim11 from basecube where " + 
TWO_DAYS_RANGE
+      + "having msr12 > 2 and roundedmsr2 > 0 and msr2 > 100", conf);
+    expected2 = getExpectedQuery(cubeName,
+      "select basecube.dim1 as dim1, basecube.dim11 as dim11 FROM ", null,
+      " group by basecube.dim1, basecube.dim11 HAVING 
round(sum(basecube.msr2)/1000) > 0 and sum(basecube.msr2) > 100",
+      getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE"));
+    compareContains(expected1, hqlQuery);
+    compareContains(expected2, hqlQuery);
+    assertTrue(hqlQuery.toLowerCase().startsWith(begin), hqlQuery);
+    assertTrue(hqlQuery.contains(joinSubString) && 
hqlQuery.endsWith(endSubString), hqlQuery);
+
+    hqlQuery = rewrite("select dim1, dim11 from basecube where " + 
TWO_DAYS_RANGE
       + "having flooredmsr12+roundedmsr2 <= 1000", conf);
     expected1 = getExpectedQuery(cubeName,
       "select basecube.dim1 as dim1, basecube.dim11 as dim11, "

Reply via email to