You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by sh...@apache.org on 2015/12/30 08:11:02 UTC
[43/50] [abbrv] lens git commit: LENS-903 : No candidate dim
available exception should contain only brief error
LENS-903 : No candidate dim available exception should contain only brief error
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/b84cb2cd
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/b84cb2cd
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/b84cb2cd
Branch: refs/heads/LENS-581
Commit: b84cb2cd32a53806278bbe5d45028dbaa760bdf5
Parents: 4d3d2f8
Author: Sushil Mohanty <su...@apache.org>
Authored: Thu Dec 17 17:31:04 2015 +0530
Committer: Sushil Mohanty <su...@apache.org>
Committed: Thu Dec 17 17:31:04 2015 +0530
----------------------------------------------------------------------
.../lens/cube/parse/CubeQueryContext.java | 7 ++++---
.../lens/cube/parse/TestCubeRewriter.java | 22 +++++++++++++++++++-
2 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/b84cb2cd/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
index f75a6b9..4034a54 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
@@ -32,6 +32,7 @@ import java.io.IOException;
import java.util.*;
import org.apache.lens.cube.error.LensCubeErrorCode;
+import org.apache.lens.cube.error.NoCandidateDimAvailableException;
import org.apache.lens.cube.error.NoCandidateFactAvailableException;
import org.apache.lens.cube.metadata.*;
import org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode;
@@ -810,12 +811,12 @@ public class CubeQueryContext implements TrackQueriedColumns {
}
}
}
- throw new LensException(LensCubeErrorCode.NO_CANDIDATE_DIM_AVAILABLE.getLensErrorInfo(),
- dim.getName(), reason);
+ log.error("Query rewrite failed due to NO_CANDIDATE_DIM_AVAILABLE, Cause {}",
+ dimPruningMsgs.get(dim).toJsonObject());
+ throw new NoCandidateDimAvailableException(dimPruningMsgs.get(dim));
}
}
}
-
return dimsToQuery;
}
http://git-wip-us.apache.org/repos/asf/lens/blob/b84cb2cd/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index 802ff42..9a08735 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -32,6 +32,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import org.apache.lens.cube.error.LensCubeErrorCode;
+import org.apache.lens.cube.error.NoCandidateDimAvailableException;
import org.apache.lens.cube.error.NoCandidateFactAvailableException;
import org.apache.lens.cube.metadata.*;
import org.apache.lens.cube.parse.CandidateTablePruneCause.SkipStorageCause;
@@ -46,6 +47,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.parse.ParseException;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
@@ -1078,6 +1080,23 @@ public class TestCubeRewriter extends TestQueryRewrite {
}
@Test
+ public void testNoCandidateDimAvailableExceptionCompare() throws Exception {
+
+ //Max cause COLUMN_NOT_FOUND, Ordinal 9
+ PruneCauses<CubeDimensionTable> pr1 = new PruneCauses<CubeDimensionTable>();
+ pr1.addPruningMsg(new CubeDimensionTable(new Table("test", "citydim")),
+ CandidateTablePruneCause.columnNotFound("test1", "test2", "test3"));
+ NoCandidateDimAvailableException ne1 = new NoCandidateDimAvailableException(pr1);
+
+ //Max cause EXPRESSION_NOT_EVALUABLE, Ordinal 6
+ PruneCauses<CubeDimensionTable> pr2 = new PruneCauses<CubeDimensionTable>();
+ pr2.addPruningMsg(new CubeDimensionTable(new Table("test", "citydim")),
+ CandidateTablePruneCause.expressionNotEvaluable("testexp1", "testexp2"));
+ NoCandidateDimAvailableException ne2 = new NoCandidateDimAvailableException(pr2);
+ assertEquals(ne1.compareTo(ne2), 3);
+ }
+
+ @Test
public void testDimensionQueryWithMultipleStorages() throws Exception {
String hqlQuery = rewrite("select name, stateid from" + " citydim", getConf());
String expected =
@@ -1095,7 +1114,8 @@ public class TestCubeRewriter extends TestQueryRewrite {
// state table is present on c1 with partition dumps and partitions added
LensException e = getLensExceptionInRewrite("select name, capital from statedim ", conf);
assertEquals(e.getErrorCode(), LensCubeErrorCode.NO_CANDIDATE_DIM_AVAILABLE.getLensErrorInfo().getErrorCode());
- assertEquals(extractPruneCause(e), new PruneCauses.BriefAndDetailedError(
+ NoCandidateDimAvailableException ne = (NoCandidateDimAvailableException) e;
+ assertEquals(ne.getJsonMessage(), new PruneCauses.BriefAndDetailedError(
NO_CANDIDATE_STORAGES.errorFormat,
new HashMap<String, List<CandidateTablePruneCause>>() {
{