You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by de...@apache.org on 2016/02/03 13:10:49 UTC

[29/51] [abbrv] lens git commit: LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query in where clause

LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query in where clause


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

Branch: refs/heads/current-release-line
Commit: 9c03c76e6d79b1b45d79512b28bf021c52a007b3
Parents: 908530f
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Tue Jan 12 09:58:27 2016 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Tue Jan 12 09:58:27 2016 +0530

----------------------------------------------------------------------
 .../lens/cube/parse/SingleFactMultiStorageHQLContext.java      | 2 +-
 .../test/java/org/apache/lens/cube/parse/TestCubeRewriter.java | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/9c03c76e/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
index ac56328..7e3a0bf 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
@@ -220,7 +220,7 @@ public class SingleFactMultiStorageHQLContext extends UnionHQLContext {
     if (astNode == null) {
       return null;
     }
-    if (isAggregateAST(astNode) || isTableColumnAST(astNode)) {
+    if (isAggregateAST(astNode) || isTableColumnAST(astNode) || isNonAggregateFunctionAST(astNode)) {
       if (innerToOuterASTs.containsKey(new HashableASTNode(astNode))) {
         ASTNode ret = innerToOuterASTs.get(new HashableASTNode(astNode));
         // Set parent null for quicker GC

http://git-wip-us.apache.org/repos/asf/lens/blob/9c03c76e/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 4810559..698f36c 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
@@ -419,7 +419,8 @@ public class TestCubeRewriter extends TestQueryRewrite {
       conf.setBoolean(CubeQueryConfUtil.ENABLE_STORAGES_UNION, true);
 
       hqlQuery = rewrite("select ascii(cityid) as `City ID`, msr8, msr7 as `Third measure` "
-        + "from testCube where cityid = 'a' and zipcode = 'b' and " + TWO_MONTHS_RANGE_UPTO_HOURS, conf);
+        + "from testCube where ascii(cityid) = 'c' and cityid = 'a' and zipcode = 'b' and "
+        + TWO_MONTHS_RANGE_UPTO_HOURS, conf);
 
       expected = getExpectedUnionQuery(TEST_CUBE_NAME, storages, provider,
         "SELECT testcube.alias0 as `City ID`, sum(testcube.alias1) + max(testcube.alias2), "
@@ -429,7 +430,8 @@ public class TestCubeRewriter extends TestQueryRewrite {
         "select ascii(testcube.cityid) as `alias0`, sum(testcube.msr2) as `alias1`, "
           + "max(testcube.msr3) as `alias2`, "
           + "sum(case when testcube.cityid = 'x' then testcube.msr21 else testcube.msr22 end) as `alias3`",
-        "testcube.cityid = 'a' and testcube.zipcode = 'b'", "group by ascii(testcube.cityid)");
+        "testcube.alias0 = 'c' and testcube.cityid = 'a' and testcube.zipcode = 'b'",
+        "group by ascii(testcube.cityid)");
 
       compareQueries(hqlQuery, expected);