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);