Repository: lens
Updated Branches:
  refs/heads/master 95b91f90d -> 1bafd570f


LENS-1457: ExpressionResolver pruning expression when some tables don't have 
ref columns of the expressions


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

Branch: refs/heads/master
Commit: 1bafd570fb8ccfd85be782dd9f63a37e3f26ead4
Parents: 95b91f9
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Mon Jul 31 15:16:35 2017 +0530
Committer: Rajat Khandelwal <rajatgupt...@gmail.com>
Committed: Mon Jul 31 15:16:35 2017 +0530

----------------------------------------------------------------------
 .../java/org/apache/lens/cube/parse/CandidateTable.java   | 10 ++--------
 .../org/apache/lens/cube/parse/ExpressionResolver.java    |  4 ++++
 2 files changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/1bafd570/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTable.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTable.java
index c909545..40022f0 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTable.java
@@ -22,11 +22,12 @@ import java.util.Collection;
 import java.util.Set;
 
 import org.apache.lens.cube.metadata.AbstractCubeTable;
+import org.apache.lens.cube.metadata.Named;
 
 /**
  * Candidate table interface
  */
-public interface CandidateTable {
+public interface CandidateTable extends Named {
 
   /**
    * Get storage string of the base table alias passed
@@ -57,13 +58,6 @@ public interface CandidateTable {
   AbstractCubeTable getBaseTable();
 
   /**
-   * Get name of the candidate table
-   *
-   * @return name
-   */
-  String getName();
-
-  /**
    * Get columns of candidate table
    *
    * @return set or list of columns

http://git-wip-us.apache.org/repos/asf/lens/blob/1bafd570/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 4680766..8906fae 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
@@ -19,6 +19,8 @@
 
 package org.apache.lens.cube.parse;
 
+import static java.util.stream.Collectors.toSet;
+
 import static org.apache.hadoop.hive.ql.parse.HiveParser.*;
 
 import java.util.*;
@@ -557,6 +559,8 @@ class ExpressionResolver implements ContextRewriter {
             // Remove expressions for which denormalized columns are no more 
reachable
             esc.getDeNormCtx().pruneReferences(cubeql);
             if (!esc.getDeNormCtx().getTableToRefCols().isEmpty()
+              && esc.getDeNormCtx().getTableToRefCols().keySet().containsAll(
+                
ec.getEvaluableExpressions().keySet().stream().map(Named::getName).collect(toSet()))
               && esc.getDeNormCtx().getTableToRefCols().keySet().stream()
               
.map(esc.getDeNormCtx()::getNonReachableReferenceFields).noneMatch(Set::isEmpty))
 {
               log.info("Removing expression {} as all tables have non 
reachable fields", esc);

Reply via email to