You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ra...@apache.org on 2018/02/06 05:46:38 UTC

[22/50] lens git commit: LENS-1457: ExpressionResolver pruning expression when some tables don't have ref columns of the expressions

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/f43c2051
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/f43c2051
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/f43c2051

Branch: refs/heads/master
Commit: f43c20512facb9686316b5b4aed1af9515d33fb5
Parents: cdd7b09
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Mon Jul 31 15:16:35 2017 +0530
Committer: Rajat Khandelwal <ra...@gmail.com>
Committed: Wed Aug 2 20:47:04 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/f43c2051/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/f43c2051/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);