[1/5] lens git commit: LENS-1427: ExpressionResolver is removing expressions if they are not answerable by *any* candidates

2017-06-09 Thread raju
Repository: lens
Updated Branches:
  refs/heads/current-release-line be75e1d55 -> d3875b4e9


LENS-1427: ExpressionResolver is removing expressions if they are not 
answerable by *any* candidates


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

Branch: refs/heads/current-release-line
Commit: bd4b5529ac15b51a6ef91f431b2037e63078ea34
Parents: be75e1d
Author: Rajat Khandelwal 
Authored: Tue Jun 6 15:37:41 2017 +0530
Committer: rajub 
Committed: Sat Jun 10 13:28:54 2017 +0800

--
 .../lens/cube/parse/ExpressionResolver.java | 37 +---
 .../test/resources/schema/cubes/base/b1cube.xml |  2 +-
 .../test/resources/schema/cubes/base/b2cube.xml |  2 +-
 .../resources/schema/cubes/base/testcube.xml|  2 +-
 4 files changed, 19 insertions(+), 24 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bd4b5529/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
index a2f4bb6..ea6d5c7 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
@@ -550,15 +550,14 @@ class ExpressionResolver implements ContextRewriter {
 }
 // Remove expressions for which denormalized columns are no more 
reachable
 esc.getDeNormCtx().pruneReferences(cubeql);
-for (String table : 
esc.getDeNormCtx().getTableToRefCols().keySet()) {
-  Set nonReachableFields = 
esc.getDeNormCtx().getNonReachableReferenceFields(table);
-  if (!nonReachableFields.isEmpty()) {
-log.info("Removing expression {} as columns {} are not 
available", esc, nonReachableFields);
-iterator.remove();
-removedEsc.add(esc);
-removed = true;
-break;
-  }
+if (!esc.getDeNormCtx().getTableToRefCols().isEmpty()
+  && esc.getDeNormCtx().getTableToRefCols().keySet().stream()
+  
.map(esc.getDeNormCtx()::getNonReachableReferenceFields).noneMatch(Set::isEmpty))
 {
+  log.info("Removing expression {} as all tables have non 
reachable fields", esc);
+  iterator.remove();
+  removedEsc.add(esc);
+  removed = true;
+  break;
 }
 if (removed) {
   continue;
@@ -662,19 +661,15 @@ class ExpressionResolver implements ContextRewriter {
 for (Map.Entry ecEntry : 
exprCtx.allExprsQueried.entrySet()) {
   String expr = ecEntry.getKey();
   Set ecSet = ecEntry.getValue();
-  for (ExpressionContext ec : ecSet) {
-if (ec.getSrcTable().getName().equals(cubeql.getCube().getName())) 
{
-  for (Iterator sItr = 
cubeql.getCandidates().iterator(); sItr.hasNext();) {
-Candidate cand = sItr.next();
-if (!cand.isExpressionEvaluable(ec)) {
-  log.info("Not considering Candidate :{} as {} is not 
evaluable", cand, ec.exprCol.getName());
-  sItr.remove();
-  cubeql.addCandidatePruningMsg(cand,
-  
CandidateTablePruneCause.expressionNotEvaluable(ec.exprCol.getName()));
-}
-  }
+  cubeql.getCandidates().removeIf(x-> {
+if (ecSet.stream().noneMatch(x::isExpressionEvaluable)) {
+  log.info("Not considering Candidate :{} as {} is not evaluable", 
x, expr);
+  cubeql.addCandidatePruningMsg(x,
+CandidateTablePruneCause.expressionNotEvaluable(expr));
+  return true;
 }
-  }
+return false;
+  });
 }
   }
   // prune candidate dims without any valid expressions

http://git-wip-us.apache.org/repos/asf/lens/blob/bd4b5529/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
--
diff --git a/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml 
b/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
index e3e9909..fd25982 100644
--- a/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
+++ b/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
@@ -178,7 +178,7 @@
   
 
 
-  
+  
 
 
   


lens git commit: LENS-1427: ExpressionResolver is removing expressions if they are not answerable by *any* candidates

2017-06-06 Thread prongs
Repository: lens
Updated Branches:
  refs/heads/master d3e732c9f -> cb2529672


LENS-1427: ExpressionResolver is removing expressions if they are not 
answerable by *any* candidates


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

Branch: refs/heads/master
Commit: cb252967237a7e6c945a9031a3d417c18bc736cf
Parents: d3e732c
Author: Rajat Khandelwal 
Authored: Tue Jun 6 15:37:41 2017 +0530
Committer: Rajat Khandelwal 
Committed: Tue Jun 6 15:37:41 2017 +0530

--
 .../lens/cube/parse/ExpressionResolver.java | 37 +---
 .../test/resources/schema/cubes/base/b1cube.xml |  2 +-
 .../test/resources/schema/cubes/base/b2cube.xml |  2 +-
 .../resources/schema/cubes/base/testcube.xml|  2 +-
 4 files changed, 19 insertions(+), 24 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/cb252967/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
index 7cad400..f38aa54 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
@@ -518,15 +518,14 @@ class ExpressionResolver implements ContextRewriter {
 }
 // Remove expressions for which denormalized columns are no more 
reachable
 esc.getDeNormCtx().pruneReferences(cubeql);
-for (String table : 
esc.getDeNormCtx().getTableToRefCols().keySet()) {
-  Set nonReachableFields = 
esc.getDeNormCtx().getNonReachableReferenceFields(table);
-  if (!nonReachableFields.isEmpty()) {
-log.info("Removing expression {} as columns {} are not 
available", esc, nonReachableFields);
-iterator.remove();
-removedEsc.add(esc);
-removed = true;
-break;
-  }
+if (!esc.getDeNormCtx().getTableToRefCols().isEmpty()
+  && esc.getDeNormCtx().getTableToRefCols().keySet().stream()
+  
.map(esc.getDeNormCtx()::getNonReachableReferenceFields).noneMatch(Set::isEmpty))
 {
+  log.info("Removing expression {} as all tables have non 
reachable fields", esc);
+  iterator.remove();
+  removedEsc.add(esc);
+  removed = true;
+  break;
 }
 if (removed) {
   continue;
@@ -630,19 +629,15 @@ class ExpressionResolver implements ContextRewriter {
 for (Map.Entry ecEntry : 
exprCtx.allExprsQueried.entrySet()) {
   String expr = ecEntry.getKey();
   Set ecSet = ecEntry.getValue();
-  for (ExpressionContext ec : ecSet) {
-if (ec.getSrcTable().getName().equals(cubeql.getCube().getName())) 
{
-  for (Iterator sItr = 
cubeql.getCandidates().iterator(); sItr.hasNext();) {
-Candidate cand = sItr.next();
-if (!cand.isExpressionEvaluable(ec)) {
-  log.info("Not considering Candidate :{} as {} is not 
evaluable", cand, ec.exprCol.getName());
-  sItr.remove();
-  cubeql.addCandidatePruningMsg(cand,
-  
CandidateTablePruneCause.expressionNotEvaluable(ec.exprCol.getName()));
-}
-  }
+  cubeql.getCandidates().removeIf(x-> {
+if (ecSet.stream().noneMatch(x::isExpressionEvaluable)) {
+  log.info("Not considering Candidate :{} as {} is not evaluable", 
x, expr);
+  cubeql.addCandidatePruningMsg(x,
+CandidateTablePruneCause.expressionNotEvaluable(expr));
+  return true;
 }
-  }
+return false;
+  });
 }
   }
   // prune candidate dims without any valid expressions

http://git-wip-us.apache.org/repos/asf/lens/blob/cb252967/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
--
diff --git a/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml 
b/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
index e3e9909..fd25982 100644
--- a/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
+++ b/lens-cube/src/test/resources/schema/cubes/base/b1cube.xml
@@ -178,7 +178,7 @@
   
 
 
-  
+