You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2014/12/01 17:08:58 UTC
incubator-lens git commit: LENS-80 : Fixes exceptions in
CandidateTableResolver (Rajat Khandelwal via amareshwari)
Repository: incubator-lens
Updated Branches:
refs/heads/master 358f3244f -> be6fb66ce
LENS-80 : Fixes exceptions in CandidateTableResolver (Rajat Khandelwal via amareshwari)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/be6fb66c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/be6fb66c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/be6fb66c
Branch: refs/heads/master
Commit: be6fb66ce30282b761ae4020a61018b12bde7c26
Parents: 358f324
Author: Amareshwari Sriramdasu <am...@inmobi.com>
Authored: Mon Dec 1 21:38:45 2014 +0530
Committer: Amareshwari Sriramdasu <am...@inmobi.com>
Committed: Mon Dec 1 21:38:45 2014 +0530
----------------------------------------------------------------------
.../apache/lens/cube/parse/CandidateTableResolver.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/be6fb66c/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
index ed4f93a..8b9e604 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
@@ -196,6 +196,7 @@ class CandidateTableResolver implements ContextRewriter {
// the candidate facts should have all the dimensions queried and
// atleast
// one measure
+ boolean toRemove = false;
for (String col : queriedDimAttrs) {
if (!cfact.getColumns().contains(col.toLowerCase())) {
// check if it available as reference, if not remove the candidate
@@ -203,7 +204,7 @@ class CandidateTableResolver implements ContextRewriter {
LOG.info("Not considering fact table:" + cfact + " as column " + col + " is not available");
cubeql.addFactPruningMsgs(cfact.fact, new CandidateTablePruneCause(cfact.getName(),
CubeTableCause.COLUMN_NOT_FOUND));
- i.remove();
+ toRemove = true;
break;
}
}
@@ -214,6 +215,9 @@ class CandidateTableResolver implements ContextRewriter {
LOG.info("Not considering fact table:" + cfact + " as columns " + queriedMsrs + " is not available");
cubeql.addFactPruningMsgs(cfact.fact, new CandidateTablePruneCause(cfact.getName(),
CubeTableCause.COLUMN_NOT_FOUND));
+ toRemove = true;
+ }
+ if(toRemove) {
i.remove();
}
}
@@ -336,6 +340,7 @@ class CandidateTableResolver implements ContextRewriter {
if (cubeql.getAutoJoinCtx() == null) {
return;
}
+ Collection<String> colSet = null;
if (cubeql.getCube() != null && !cubeql.getCandidateFactTables().isEmpty()) {
for (Iterator<CandidateFact> i = cubeql.getCandidateFactTables().iterator(); i.hasNext();) {
CandidateFact cfact = i.next();
@@ -346,7 +351,7 @@ class CandidateTableResolver implements ContextRewriter {
.getAlljoinPathColumns().entrySet()) {
Dimension reachableDim = joincolumnsEntry.getKey();
OptionalDimCtx optdim = cubeql.getOptionalDimensionMap().get(reachableDim);
- Collection<String> colSet = joincolumnsEntry.getValue().get((AbstractCubeTable) cubeql.getCube());
+ colSet = joincolumnsEntry.getValue().get((AbstractCubeTable) cubeql.getCube());
if (!checkForColumnExists(cfact, colSet)) {
if (optdim == null || optdim.isRequiredInJoinChain
@@ -362,8 +367,7 @@ class CandidateTableResolver implements ContextRewriter {
}
}
if (cubeql.getCandidateFactTables().size() == 0) {
- throw new SemanticException(ErrorMsg.NO_FACT_HAS_COLUMN, cubeql.getAutoJoinCtx()
- .getJoinPathColumnsOfTable((AbstractCubeTable) cubeql.getCube()).toString());
+ throw new SemanticException(ErrorMsg.NO_FACT_HAS_COLUMN, colSet == null? "NULL" : colSet.toString());
}
}
}