Repository: lens Updated Branches: refs/heads/master 3da3bce4b -> 6c40b24ff
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/6c40b24f Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/6c40b24f Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/6c40b24f Branch: refs/heads/master Commit: 6c40b24ffa8ff66b448a4f61054fb3897cffdd6a Parents: 3da3bce Author: Rajitha R <rajitha....@gmail.com> Authored: Mon Aug 7 17:29:26 2017 +0530 Committer: Amareshwari Sriramadasu <amareshw...@apache.org> Committed: Mon Aug 7 17:29:26 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/6c40b24f/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/6c40b24f/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 "