Repository: lens
Updated Branches:
  refs/heads/master 0a60ef331 -> 8a90d8b93


LENS-950: Bridge table join should ignore join type config


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

Branch: refs/heads/master
Commit: 8a90d8b9383994e61015f1eae332e8191e0a19d6
Parents: 0a60ef3
Author: Amareshwari Sriramadasu <amareshw...@gmail.com>
Authored: Mon Feb 15 18:51:11 2016 +0530
Committer: Rajat Khandelwal <rajatgupt...@gmail.com>
Committed: Mon Feb 15 18:51:11 2016 +0530

----------------------------------------------------------------------
 .../lens/cube/parse/join/AutoJoinContext.java   |  2 +-
 .../lens/cube/parse/TestBridgeTableQueries.java | 31 ++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/8a90d8b9/lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
index f70cbe4..e14a898 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
@@ -286,7 +286,7 @@ public class AutoJoinContext {
         } else {
           // if bridge clauses are already inited, this is a next table 
getting joined with bridge table
           // we will append a simple join clause
-          bridgeFromClause.append(joinTypeStr).append(" join ");
+          bridgeFromClause.append(" join ");
           
bridgeFromClause.append(dimsToQuery.get(rel.getToTable()).getStorageString(toAlias));
           bridgeFromClause.append(" on ").append(fromAlias).append(".")
             .append(rel.getFromColumn()).append(" = ").append(toAlias)

http://git-wip-us.apache.org/repos/asf/lens/blob/8a90d8b9/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
index e66c39b..e8ad8ff 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
@@ -240,6 +240,37 @@ public class TestBridgeTableQueries extends 
TestQueryRewrite {
   }
 
   @Test
+  public void testBridgeTablesWithMultipleChainsWithJoinType() throws 
Exception {
+    Configuration conf = new Configuration(hConf);
+    conf.set(CubeQueryConfUtil.JOIN_TYPE_KEY, "LEFTOUTER");
+    String query = "select usersports.name, xusersports.name, 
yusersports.name, sum(msr2) from basecube where "
+      + TWO_DAYS_RANGE;
+    String hqlQuery = rewrite(query, conf);
+    String expected = getExpectedQuery("basecube", "select usersports.name, 
xusersports.name, yusersports.name,"
+      + " sum(basecube.msr2) FROM ",
+      " left outer join " + getDbName() + "c1_usertable userdim_1 on 
basecube.userid = userdim_1.id "
+      + " left outer join  (select user_interests_1.user_id as user_id, 
collect_set(usersports.name) as name from "
+      + getDbName() + "c1_user_interests_tbl user_interests_1 join " + 
getDbName() + "c1_sports_tbl usersports on "
+      + "user_interests_1.sport_id = usersports.id group by 
user_interests_1.user_id) "
+      + "usersports on userdim_1.id = usersports.user_id"
+      + " left outer join " + getDbName() + "c1_usertable userdim_0 on 
basecube.yuserid = userdim_0.id "
+      + " left outer join  (select user_interests_0.user_id as 
user_id,collect_set(yusersports.name) as name from "
+      + getDbName() + "c1_user_interests_tbl user_interests_0 join " + 
getDbName() + "c1_sports_tbl yusersports on "
+      + " user_interests_0.sport_id = yusersports.id group by 
user_interests_0.user_id) yusersports on userdim_0.id ="
+      + " yusersports.user_id left outer join " + getDbName()
+      + "c1_usertable userdim on basecube.xuserid = userdim.id"
+      + " left outer join  (select user_interests.user_id as 
user_id,collect_set(xusersports.name) as name from "
+      + getDbName() + "c1_user_interests_tbl user_interests join " + 
getDbName() + "c1_sports_tbl xusersports"
+      + " on user_interests.sport_id = xusersports.id group by 
user_interests.user_id) xusersports on userdim.id = "
+      + " xusersports.user_id", null, "group by usersports.name, 
xusersports.name, yusersports.name", null,
+      getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base"));
+    TestCubeRewriter.compareQueries(hqlQuery, expected);
+    // run with chain ref column
+    query = "select sports, xsports, ysports, sum(msr2) from basecube where " 
+ TWO_DAYS_RANGE;
+    hqlQuery = rewrite(query, conf);
+    TestCubeRewriter.compareQueries(hqlQuery, expected);
+  }
+  @Test
   public void testBridgeTablesWithDimTablePartitioning() throws Exception {
     Configuration conf = new Configuration(hConf);
     conf.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C2");

Reply via email to