LENS-1450 : Fix duplicate filters in query writing

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

Branch: refs/heads/master
Commit: 05c364e24820b8b6e10a226a523429ca35f9e4d4
Parents: 1f9f12f
Author: Rajitha R <[email protected]>
Authored: Mon Aug 7 17:29:26 2017 +0530
Committer: Rajat Khandelwal <[email protected]>
Committed: Mon Aug 21 13:00:48 2017 +0530

----------------------------------------------------------------------
 .../java/org/apache/lens/cube/parse/CubeQueryContext.java |  3 ++-
 .../java/org/apache/lens/cube/parse/TestCubeRewriter.java | 10 +++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/05c364e2/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 b5330a7..8b9583a 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
@@ -1169,7 +1169,8 @@ public class CubeQueryContext extends 
TracksQueriedColumns implements QueryAST,
         }
       }
     } else if (node.getParent() == null
-        && node.getToken().getType() != HiveParser.KW_AND) {
+        && node.getToken().getType() != HiveParser.KW_AND
+      && node.getChild(0).getType() != HiveParser.KW_AND) {
       // if node is the only child
       allFilters.add(HQLParser.getString((ASTNode) node));
     }

http://git-wip-us.apache.org/repos/asf/lens/blob/05c364e2/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index 1c75e6c..bc0fa2e 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -509,8 +509,16 @@ public class TestCubeRewriter extends TestQueryRewrite {
     conf.setBoolean(DISABLE_AUTO_JOINS, false);
     conf.setBoolean(REWRITE_DIM_FILTER_TO_FACT_FILTER, true);
 
+    // No filter
+    String hql = rewrite("select cityid , msr2 from testCube where " + 
TWO_DAYS_RANGE, conf);
+
+    String expectedQuery =  getExpectedQuery(TEST_CUBE_NAME, "select 
(testcube.cityid) as `cityid`, "
+        + "sum((testcube.msr2)) as `msr2` from ", null, "group by 
testcube.cityid",
+      getWhereForHourly2days(TEST_CUBE_NAME, "c3_testfact2_raw"));
+    compareQueries(expectedQuery, hql);
+
     // filter with =
-    String hql = rewrite(
+    hql = rewrite(
         "select cubecountry.name, msr2 from" + " testCube" + " where 
cubecountry.region = 'asia' and "
             + TWO_DAYS_RANGE, conf);
     String filterSubquery = "testcube.countryid in ( select id from 
TestQueryRewrite.c3_countrytable_partitioned "

Reply via email to