You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2014/12/16 06:57:36 UTC

incubator-lens git commit: LENS-130 ConcurrentModificationException in JoinResolver (amareshwari via jdhok)

Repository: incubator-lens
Updated Branches:
  refs/heads/master 16035c20c -> 71742223f


LENS-130 ConcurrentModificationException in JoinResolver (amareshwari
via jdhok)


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

Branch: refs/heads/master
Commit: 71742223f1f6b692e3523d01954335c90300629b
Parents: 16035c2
Author: jdhok <ja...@inmobi.com>
Authored: Tue Dec 16 11:27:03 2014 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Tue Dec 16 11:27:03 2014 +0530

----------------------------------------------------------------------
 .../apache/lens/cube/parse/JoinResolver.java    |  1 +
 .../lens/cube/parse/TestJoinResolver.java       | 22 ++++++++++++++++++++
 2 files changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/71742223/lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java
index 87a550c..cf56d59 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java
@@ -491,6 +491,7 @@ class JoinResolver implements ContextRewriter {
                 LOG.info("Removing join path:" + jp + " as columns :" + cols + " dont exist");
                 paths.remove(i);
                 i--;
+                break;
               }
             }
           }

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/71742223/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
index 9780acf..7e51a82 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
@@ -521,6 +521,28 @@ public class TestJoinResolver extends TestQueryRewrite {
       null, getWhereForHourly2days("testcube", "c1_testfact2_raw"));
     TestCubeRewriter.compareQueries(expected, hqlQuery);
 
+    // tests from multiple different chains
+    query = "select testdim4.name, testdim3id, avg(msr2) from testcube where " + twoDaysRange;
+    hqlQuery = rewrite(query, hconf);
+    expected = getExpectedQuery("testcube", "select testdim4.name, testdim3.id, avg(testcube.msr2) FROM ",
+      " join " + getDbName() + "c1_testdim2tbl testdim2 ON testcube.dim2 = testdim2.id and testdim2.dt = 'latest'" +
+      " join " + getDbName() + "c1_testdim3tbl testdim3 ON testdim2.testdim3id = testdim3.id and testdim3.dt = 'latest'"
+      + " join " + getDbName() + "c1_testdim4tbl testdim4 ON testdim3.testDim4id = testdim4.id and" +
+      " testdim4.dt = 'latest'", null, "group by testdim4.name, testdim3.id", null,
+      getWhereForHourly2days("testcube", "c1_testfact2_raw"));
+    TestCubeRewriter.compareQueries(expected, hqlQuery);
+
+    query = "select citydim.name, testdim4.name, testdim3id, avg(msr2) from testcube where " + twoDaysRange;
+    hqlQuery = rewrite(query, hconf);
+    expected = getExpectedQuery("testcube", "select citydim.name, testdim4.name, testdim3.id, avg(testcube.msr2) FROM ",
+        " join " + getDbName() + "c1_citytable citydim ON testcube.cityid = citydim.id and citydim.dt = 'latest'" +
+        " join " + getDbName() + "c1_testdim2tbl testdim2 ON testcube.dim2 = testdim2.id and testdim2.dt = 'latest'" +
+        " join " + getDbName() + "c1_testdim3tbl testdim3 ON testdim2.testdim3id = testdim3.id and testdim3.dt = 'latest'"
+        + " join " + getDbName() + "c1_testdim4tbl testdim4 ON testdim3.testDim4id = testdim4.id and" +
+        " testdim4.dt = 'latest'", null, "group by citydim.name, testdim4.name, testdim3.id", null,
+        getWhereForHourly2days("testcube", "c1_testfact2_raw"));
+    TestCubeRewriter.compareQueries(expected, hqlQuery);
+
     // test multi hops
     query = "select testdim4.name, avg(msr2) from testcube where " + twoDaysRange;
     hqlQuery = rewrite(query, hconf);