You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2015/08/20 16:17:56 UTC
tajo git commit: TAJO-1787: Remove unused and legacy exceptions.
Repository: tajo
Updated Branches:
refs/heads/master e296a0d1f -> 65283b541
TAJO-1787: Remove unused and legacy exceptions.
Closes #702
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/65283b54
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/65283b54
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/65283b54
Branch: refs/heads/master
Commit: 65283b541b7bd4779cdf9b32cc794f24c3123adb
Parents: e296a0d
Author: Hyunsik Choi <hy...@apache.org>
Authored: Thu Aug 20 23:15:52 2015 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Thu Aug 20 23:15:52 2015 +0900
----------------------------------------------------------------------
CHANGES | 2 +
.../apache/tajo/engine/eval/ExprTestBase.java | 1 -
.../global/builder/DistinctGroupbyBuilder.java | 1 -
.../global/rewriter/GlobalPlanRewriteRule.java | 1 -
.../rewriter/rules/BroadcastJoinRule.java | 63 +++++++++++++-------
.../rewriter/rules/GlobalPlanRewriteUtil.java | 40 +++----------
.../planner/physical/SortIntersectExec.java | 5 +-
.../tajo/engine/planner/physical/UnionExec.java | 5 +-
.../org/apache/tajo/master/GlobalEngine.java | 4 +-
.../exec/ExplainPlanPreprocessorForTest.java | 1 -
.../NonForwardQueryResultSystemScanner.java | 4 +-
.../apache/tajo/master/exec/QueryExecutor.java | 17 +++---
.../apache/tajo/querymaster/Repartitioner.java | 7 +--
.../tajo/plan/IllegalQueryStatusException.java | 38 ------------
.../apache/tajo/plan/InvalidQueryException.java | 35 -----------
.../org/apache/tajo/plan/PlanningException.java | 30 ----------
.../apache/tajo/plan/expr/AlgebraicUtil.java | 7 +--
.../GreedyHeuristicJoinOrderAlgorithm.java | 3 -
.../tajo/plan/joinorder/JoinOrderAlgorithm.java | 6 --
.../tajo/plan/nameresolver/NameResolver.java | 4 --
.../plan/rewrite/rules/FilterPushDownRule.java | 3 +-
.../org/apache/tajo/plan/util/PlannerUtil.java | 6 +-
.../tajo/plan/verifier/VerifyException.java | 27 ---------
23 files changed, 72 insertions(+), 238 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index d7baf63..1f4db9f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -515,6 +515,8 @@ Release 0.11.0 - unreleased
SUB TASKS
+ TAJO-1787: Remove unused and legacy exceptions. (hyunsik)
+
TAJO-1758: Some TajoRuntimeException should be restored as TajoException
in client side. (hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
index f2b6477..1705d2b 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
@@ -129,7 +129,6 @@ public class ExprTestBase {
* @param query a query for execution
* @param condition this parameter means whether it is for success case or is not for failure case.
* @return
- * @throws PlanningException
*/
private static Target[] getRawTargets(QueryContext context, String query, boolean condition)
throws TajoException, InvalidStatementException {
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java
index 2c88fdb..6fbecc1 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java
@@ -36,7 +36,6 @@ import org.apache.tajo.plan.serder.PlanProto.DistinctGroupbyEnforcer.MultipleAgg
import org.apache.tajo.plan.serder.PlanProto.DistinctGroupbyEnforcer.SortSpecArray;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.util.PlannerUtil;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.Target;
import org.apache.tajo.plan.expr.AggregationFunctionCallEval;
import org.apache.tajo.plan.expr.EvalNode;
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/GlobalPlanRewriteRule.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/GlobalPlanRewriteRule.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/GlobalPlanRewriteRule.java
index 3a76c12..f681d2e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/GlobalPlanRewriteRule.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/GlobalPlanRewriteRule.java
@@ -21,7 +21,6 @@ package org.apache.tajo.engine.planner.global.rewriter;
import org.apache.tajo.OverridableConf;
import org.apache.tajo.engine.planner.global.MasterPlan;
import org.apache.tajo.exception.TajoException;
-import org.apache.tajo.plan.PlanningException;
/**
* A rewrite rule for global plans
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/BroadcastJoinRule.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/BroadcastJoinRule.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/BroadcastJoinRule.java
index 12c3e73..6f7b4c9 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/BroadcastJoinRule.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/BroadcastJoinRule.java
@@ -26,8 +26,8 @@ import org.apache.tajo.engine.planner.global.GlobalPlanner;
import org.apache.tajo.engine.planner.global.MasterPlan;
import org.apache.tajo.engine.planner.global.rewriter.GlobalPlanRewriteRule;
import org.apache.tajo.exception.TajoException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.logical.*;
import org.apache.tajo.plan.util.PlannerUtil;
import org.apache.tajo.util.TUtil;
@@ -181,7 +181,7 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
if (fullyBroadcastable && current.getScanNodes().length == 1) {
try {
updateScanOfParentAsBroadcastable(plan, current);
- } catch (PlanningException e) {
+ } catch (NoScanNodeForChildEbException e) {
// This case is when the current has two or more inputs via union, and simply ignored.
}
}
@@ -199,12 +199,8 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
if (current.hasBroadcastRelation()) {
// The current execution block and its every child are able to be merged.
for (ExecutionBlock child : childs) {
- try {
- addUnionNodeIfNecessary(unionScanMap, plan, child, current);
- mergeTwoPhaseJoin(plan, child, current);
- } catch (PlanningException e) {
- throw new RuntimeException(e);
- }
+ addUnionNodeIfNecessary(unionScanMap, plan, child, current);
+ mergeTwoPhaseJoin(plan, child, current);
}
checkTotalSizeOfBroadcastableRelations(current);
@@ -212,11 +208,7 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
// We assume that if every input of an execution block is broadcastable,
// the output of the execution block is also broadcastable.
if (!current.isPreservedRow() && isFullyBroadcastable(current)) {
- try {
- updateScanOfParentAsBroadcastable(plan, current);
- } catch (PlanningException e) {
- throw new RuntimeException(e);
- }
+ updateScanOfParentAsBroadcastable(plan, current);
}
}
} else {
@@ -261,10 +253,10 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
}
}
- private void updateScanOfParentAsBroadcastable(MasterPlan plan, ExecutionBlock current) throws PlanningException {
+ private void updateScanOfParentAsBroadcastable(MasterPlan plan, ExecutionBlock current) {
ExecutionBlock parent = plan.getParent(current);
if (parent != null && !plan.isTerminal(parent)) {
- ScanNode scanForCurrent = GlobalPlanRewriteUtil.findScanForChildEb(current, parent);
+ ScanNode scanForCurrent = findScanForChildEb(current, parent);
parent.addBroadcastRelation(scanForCurrent);
}
}
@@ -277,9 +269,8 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
* @param parent parent block who has join nodes
* @return
*/
- private ExecutionBlock mergeTwoPhaseJoin(MasterPlan plan, ExecutionBlock child, ExecutionBlock parent)
- throws PlanningException {
- ScanNode scanForChild = GlobalPlanRewriteUtil.findScanForChildEb(child, parent);
+ private ExecutionBlock mergeTwoPhaseJoin(MasterPlan plan, ExecutionBlock child, ExecutionBlock parent) {
+ ScanNode scanForChild = findScanForChildEb(child, parent);
parentFinder.set(scanForChild);
parentFinder.find(parent.getPlan());
@@ -301,8 +292,7 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
}
private void addUnionNodeIfNecessary(Map<ExecutionBlockId, ExecutionBlockId> unionScanMap, MasterPlan plan,
- ExecutionBlock child, ExecutionBlock current)
- throws PlanningException {
+ ExecutionBlock child, ExecutionBlock current) {
if (unionScanMap != null) {
List<ExecutionBlockId> unionScans = TUtil.newList();
ExecutionBlockId representativeId = null;
@@ -326,14 +316,15 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
// left must not be null
UnionNode unionNode = plan.getLogicalPlan().createNode(UnionNode.class);
unionNode.setLeftChild(left);
- unionNode.setRightChild(GlobalPlanner.buildInputExecutor(plan.getLogicalPlan(), plan.getChannel(unionScans.get(i), current.getId())));
+ unionNode.setRightChild(GlobalPlanner.buildInputExecutor(plan.getLogicalPlan(),
+ plan.getChannel(unionScans.get(i), current.getId())));
unionNode.setInSchema(left.getOutSchema());
unionNode.setOutSchema(left.getOutSchema());
topUnion = unionNode;
left = unionNode;
}
- ScanNode scanForChild = GlobalPlanRewriteUtil.findScanForChildEb(plan.getExecBlock(representativeId), current);
+ ScanNode scanForChild = findScanForChildEb(plan.getExecBlock(representativeId), current);
PlannerUtil.replaceNode(plan.getLogicalPlan(), current.getPlan(), scanForChild, topUnion);
current.getUnionScanMap().clear();
@@ -346,4 +337,32 @@ public class BroadcastJoinRule implements GlobalPlanRewriteRule {
private static boolean isFullyBroadcastable(ExecutionBlock block) {
return block.getBroadcastRelations().size() == block.getScanNodes().length;
}
+
+ /**
+ * Find a scan node in the plan of the parent EB corresponding to the output of the child EB.
+ *
+ * @param child
+ * @param parent
+ * @return ScanNode
+ */
+ private static ScanNode findScanForChildEb(ExecutionBlock child, ExecutionBlock parent) {
+ ScanNode scanForChild = null;
+ for (ScanNode scanNode : parent.getScanNodes()) {
+ if (scanNode.getTableName().equals(child.getId().toString())) {
+ scanForChild = scanNode;
+ break;
+ }
+ }
+ if (scanForChild == null) {
+ throw new NoScanNodeForChildEbException(
+ "cannot find any scan nodes for " + child.getId() + " in " + parent.getId());
+ }
+ return scanForChild;
+ }
+
+ private static class NoScanNodeForChildEbException extends RuntimeException {
+ NoScanNodeForChildEbException(String message) {
+ super(message);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/GlobalPlanRewriteUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/GlobalPlanRewriteUtil.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/GlobalPlanRewriteUtil.java
index cc98300..b14687d 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/GlobalPlanRewriteUtil.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/rewriter/rules/GlobalPlanRewriteUtil.java
@@ -21,7 +21,7 @@ package org.apache.tajo.engine.planner.global.rewriter.rules;
import org.apache.tajo.engine.planner.global.DataChannel;
import org.apache.tajo.engine.planner.global.ExecutionBlock;
import org.apache.tajo.engine.planner.global.MasterPlan;
-import org.apache.tajo.plan.PlanningException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.plan.logical.*;
import java.util.List;
@@ -71,10 +71,8 @@ public class GlobalPlanRewriteUtil {
* @param newChild
* @param originalChild
* @param parent
- * @throws PlanningException
*/
- public static void replaceChild(LogicalNode newChild, ScanNode originalChild, LogicalNode parent)
- throws PlanningException {
+ public static void replaceChild(LogicalNode newChild, ScanNode originalChild, LogicalNode parent) {
if (parent instanceof UnaryNode) {
((UnaryNode) parent).setChild(newChild);
} else if (parent instanceof BinaryNode) {
@@ -84,36 +82,14 @@ public class GlobalPlanRewriteUtil {
} else if (binary.getRightChild().equals(originalChild)) {
binary.setRightChild(newChild);
} else {
- throw new PlanningException(originalChild.getPID() + " is not a child of " + parent.getPID());
+ throw new TajoInternalError(originalChild.getPID() + " is not a child of " + parent.getPID());
}
} else {
- throw new PlanningException(parent.getPID() + " seems to not have any children");
+ throw new TajoInternalError(parent.getPID() + " seems to not have any children");
}
}
/**
- * Find a scan node in the plan of the parent EB corresponding to the output of the child EB.
- *
- * @param child
- * @param parent
- * @return
- * @throws PlanningException
- */
- public static ScanNode findScanForChildEb(ExecutionBlock child, ExecutionBlock parent) throws PlanningException {
- ScanNode scanForChild = null;
- for (ScanNode scanNode : parent.getScanNodes()) {
- if (scanNode.getTableName().equals(child.getId().toString())) {
- scanForChild = scanNode;
- break;
- }
- }
- if (scanForChild == null) {
- throw new PlanningException("Cannot find any scan nodes for " + child.getId() + " in " + parent.getId());
- }
- return scanForChild;
- }
-
- /**
* Get a volume of a table of a partitioned table
* @param scanNode ScanNode corresponding to a table
* @return table volume (bytes)
@@ -137,7 +113,7 @@ public class GlobalPlanRewriteUtil {
/**
* It calculates the total volume of all descendent relation nodes.
*/
- public static long computeDescendentVolume(LogicalNode node) throws PlanningException {
+ public static long computeDescendentVolume(LogicalNode node) {
if (node instanceof RelationNode) {
switch (node.getType()) {
@@ -176,7 +152,7 @@ public class GlobalPlanRewriteUtil {
return computeDescendentVolume(binaryNode.getLeftChild()) + computeDescendentVolume(binaryNode.getRightChild());
}
- throw new PlanningException("Invalid State");
+ throw new TajoInternalError("invalid state");
}
public static class ParentFinder implements LogicalNodeVisitor {
@@ -192,9 +168,9 @@ public class GlobalPlanRewriteUtil {
this.visit(root);
}
- public LogicalNode getFound() throws PlanningException {
+ public LogicalNode getFound() {
if (found == null) {
- throw new PlanningException("Cannot find the parent of " + target.getPID());
+ throw new TajoInternalError("cannot find the parent of " + target.getPID());
}
return this.found;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortIntersectExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortIntersectExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortIntersectExec.java
index db77f85..1d38d45 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortIntersectExec.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SortIntersectExec.java
@@ -21,7 +21,7 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.SchemaUtil;
import org.apache.tajo.common.TajoDataTypes;
-import org.apache.tajo.plan.InvalidQueryException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.worker.TaskAttemptContext;
@@ -37,8 +37,7 @@ public class SortIntersectExec extends BinaryPhysicalExec {
TajoDataTypes.DataType[] leftTypes = SchemaUtil.toDataTypes(left.getSchema());
TajoDataTypes.DataType[] rightTypes = SchemaUtil.toDataTypes(right.getSchema());
if (!CatalogUtil.isMatchedFunction(Arrays.asList(leftTypes), Arrays.asList(rightTypes))) {
- throw new InvalidQueryException(
- "The both schemas are not compatible");
+ throw new TajoInternalError("the both schemas are not compatible");
}
comparator = new SetTupleComparator(left.getSchema(), right.getSchema());
this.isDistinct = isDistinct;
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnionExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnionExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnionExec.java
index 0383ae7..9adca9a 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnionExec.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnionExec.java
@@ -21,8 +21,8 @@
*/
package org.apache.tajo.engine.planner.physical;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.worker.TaskAttemptContext;
-import org.apache.tajo.plan.InvalidQueryException;
import org.apache.tajo.storage.Tuple;
import java.io.IOException;
@@ -34,8 +34,7 @@ public class UnionExec extends BinaryPhysicalExec {
public UnionExec(TaskAttemptContext context, PhysicalExec outer, PhysicalExec inner) {
super(context, outer.getSchema(), inner.getSchema(), outer, inner);
if (!outer.getSchema().equals(inner.getSchema())) {
- throw new InvalidQueryException(
- "The both schemas are not same");
+ throw new TajoInternalError("the both schemas are not same");
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
index 11bbe33..b6dc652 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
@@ -36,13 +36,12 @@ import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.engine.parser.SQLAnalyzer;
-import org.apache.tajo.exception.*;
import org.apache.tajo.engine.query.QueryContext;
+import org.apache.tajo.exception.*;
import org.apache.tajo.master.TajoMaster.MasterContext;
import org.apache.tajo.master.exec.DDLExecutor;
import org.apache.tajo.master.exec.QueryExecutor;
import org.apache.tajo.metrics.Master;
-import org.apache.tajo.plan.IllegalQueryStatusException;
import org.apache.tajo.plan.LogicalOptimizer;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.LogicalPlanner;
@@ -58,7 +57,6 @@ import org.apache.tajo.session.Session;
import org.apache.tajo.storage.TablespaceManager;
import org.apache.tajo.util.CommonTestingUtil;
-import java.io.IOException;
import java.sql.SQLException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java
index b7b48ba..0c83206 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java
@@ -23,7 +23,6 @@ import org.apache.tajo.catalog.Column;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.Target;
import org.apache.tajo.plan.expr.AlgebraicUtil;
import org.apache.tajo.plan.expr.EvalNode;
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
index b348265..e176818 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
@@ -48,9 +48,7 @@ import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.master.TajoMaster.MasterContext;
import org.apache.tajo.master.rm.NodeStatus;
-import org.apache.tajo.plan.InvalidQueryException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.expr.EvalNode;
import org.apache.tajo.plan.logical.IndexScanNode;
import org.apache.tajo.plan.logical.LogicalNode;
@@ -121,7 +119,7 @@ public class NonForwardQueryResultSystemScanner implements NonForwardQueryResult
}
if (leafBlock == null) {
- throw new InvalidQueryException("Global planner could not find any leaf block.");
+ throw new TajoInternalError("global planner could not find any leaf block.");
}
taskContext = new TaskAttemptContext(queryContext, null,
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
index bd5d696..207f91b 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
@@ -24,9 +24,11 @@ import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.tajo.*;
+import org.apache.tajo.BuiltinStorages;
+import org.apache.tajo.QueryIdFactory;
+import org.apache.tajo.SessionVars;
+import org.apache.tajo.TajoConstants;
import org.apache.tajo.catalog.*;
-import org.apache.tajo.exception.DuplicateIndexException;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.common.TajoDataTypes;
@@ -37,6 +39,9 @@ import org.apache.tajo.engine.planner.global.MasterPlan;
import org.apache.tajo.engine.planner.physical.EvalExprExec;
import org.apache.tajo.engine.planner.physical.InsertRowsExec;
import org.apache.tajo.engine.query.QueryContext;
+import org.apache.tajo.exception.DuplicateIndexException;
+import org.apache.tajo.exception.TajoInternalError;
+import org.apache.tajo.exception.UnsupportedException;
import org.apache.tajo.ipc.ClientProtos.SerializedResultSet;
import org.apache.tajo.ipc.ClientProtos.SubmitQueryResponse;
import org.apache.tajo.ipc.ClientProtos.SubmitQueryResponse.ResultType;
@@ -47,7 +52,6 @@ import org.apache.tajo.master.exec.prehook.CreateTableHook;
import org.apache.tajo.master.exec.prehook.DistributedQueryHookManager;
import org.apache.tajo.master.exec.prehook.InsertIntoHook;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.Target;
import org.apache.tajo.plan.expr.EvalContext;
import org.apache.tajo.plan.expr.EvalNode;
@@ -56,7 +60,6 @@ import org.apache.tajo.plan.function.python.PythonScriptEngine;
import org.apache.tajo.plan.function.python.TajoScriptEngine;
import org.apache.tajo.plan.logical.*;
import org.apache.tajo.plan.util.PlannerUtil;
-import org.apache.tajo.plan.verifier.VerifyException;
import org.apache.tajo.session.Session;
import org.apache.tajo.storage.*;
import org.apache.tajo.util.ProtoUtil;
@@ -287,7 +290,7 @@ public class QueryExecutor {
EvalContext evalContext = new EvalContext();
Target[] targets = plan.getRootBlock().getRawTargets();
if (targets == null) {
- throw new PlanningException("No targets");
+ throw new TajoInternalError("no targets");
}
try {
// start script executor
@@ -501,8 +504,8 @@ public class QueryExecutor {
FormatProperty formatProperty = space.getFormatProperty(tableDesc.getMeta());
if (!formatProperty.isInsertable()) {
- throw new VerifyException(
- String.format("%s tablespace does not allow INSERT operation.", tableDesc.getUri().toString()));
+ throw new UnsupportedException(
+ String.format("INSERT operation on %s tablespace", tableDesc.getUri().toString()));
}
space.prepareTable(rootNode.getChild());
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java b/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
index 53f5504..0d5880e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
+++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
@@ -42,7 +42,6 @@ import org.apache.tajo.engine.utils.TupleUtil;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.exception.UndefinedTableException;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.logical.*;
import org.apache.tajo.plan.logical.SortNode.SortPurpose;
import org.apache.tajo.plan.serder.PlanProto.DistinctGroupbyEnforcer.MultipleAggregationStage;
@@ -108,11 +107,7 @@ public class Repartitioner {
} else {
- try {
- stats[i] = GlobalPlanRewriteUtil.computeDescendentVolume(scans[i]);
- } catch (PlanningException e) {
- throw new IOException(e);
- }
+ stats[i] = GlobalPlanRewriteUtil.computeDescendentVolume(scans[i]);
// if table has no data, tablespace will return empty FileFragment.
// So, we need to handle FileFragment by its size.
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/IllegalQueryStatusException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/IllegalQueryStatusException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/IllegalQueryStatusException.java
deleted file mode 100644
index 31f9186..0000000
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/IllegalQueryStatusException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.plan;
-
-public class IllegalQueryStatusException extends Exception {
-
- public IllegalQueryStatusException() {
-
- }
-
- public IllegalQueryStatusException(String msg) {
- super(msg);
- }
-
- public IllegalQueryStatusException(Exception e) {
- super(e);
- }
-
- public IllegalQueryStatusException(String msg, Exception e) {
- super(msg, e);
- }
-}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
deleted file mode 100644
index a6b677f..0000000
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.plan;
-
-public class InvalidQueryException extends RuntimeException {
- private static final long serialVersionUID = -7085849718839416246L;
-
- public InvalidQueryException() {
- super();
- }
-
- public InvalidQueryException(String message) {
- super(message);
- }
-
- public InvalidQueryException(String message, Throwable t) {
- super(message, t);
- }
-}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/PlanningException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/PlanningException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/PlanningException.java
deleted file mode 100644
index 8f49600..0000000
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/PlanningException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.plan;
-
-public class PlanningException extends Exception {
-
- public PlanningException(String message) {
- super(message);
- }
-
- public PlanningException(Throwable e) {
- super(e);
- }
-}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/expr/AlgebraicUtil.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/AlgebraicUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/AlgebraicUtil.java
index d953da1..d06c1d3 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/AlgebraicUtil.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/AlgebraicUtil.java
@@ -21,14 +21,9 @@ package org.apache.tajo.plan.expr;
import org.apache.tajo.algebra.*;
import org.apache.tajo.catalog.Column;
import org.apache.tajo.exception.TajoException;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.visitor.SimpleAlgebraVisitor;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
+import java.util.*;
public class AlgebraicUtil {
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
index 7984024..3348097 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
@@ -23,7 +23,6 @@ import org.apache.tajo.catalog.SchemaUtil;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.expr.AlgebraicUtil;
import org.apache.tajo.plan.logical.*;
import org.apache.tajo.plan.util.PlannerUtil;
@@ -168,7 +167,6 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
* each edge is join condition.
* @param vertexes candidate operators to be joined.
* @return The best join pair among them
- * @throws PlanningException
*/
private JoinEdge getBestPair(JoinEdgeFinderContext context, JoinGraphContext graphContext, Set<JoinVertex> vertexes)
throws TajoException {
@@ -270,7 +268,6 @@ public class GreedyHeuristicJoinOrderAlgorithm implements JoinOrderAlgorithm {
* @param leftTarget left target join vertex
* @param rightTarget right target join vertex
* @return If there is no join edge between two vertexes, it returns null.
- * @throws PlanningException
*/
private static JoinEdge findJoin(final JoinEdgeFinderContext context, final JoinGraphContext graphContext,
JoinVertex begin, final JoinVertex leftTarget, final JoinVertex rightTarget)
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java
index 5fbbdbf..4218d6d 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java
@@ -21,11 +21,6 @@ package org.apache.tajo.plan.joinorder;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
-import org.apache.tajo.plan.joinorder.FoundJoinOrder;
-import org.apache.tajo.plan.joinorder.JoinGraph;
-
-import java.util.Set;
/**
* An interface for join order algorithms
@@ -42,7 +37,6 @@ public interface JoinOrderAlgorithm {
* relations. A vertex can be a relation or a group of joined relations.
* An edge represents a join relation between two vertexes.
* @return found join order
- * @throws org.apache.tajo.plan.PlanningException
*/
FoundJoinOrder findBestOrder(LogicalPlan plan, LogicalPlan.QueryBlock block, JoinGraphContext joinGraphContext)
throws TajoException;
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java b/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java
index 3b39a10..7eb22d7 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java
@@ -28,7 +28,6 @@ import org.apache.tajo.catalog.NestedPathUtil;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.exception.*;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.logical.RelationNode;
import org.apache.tajo.util.Pair;
import org.apache.tajo.util.StringUtils;
@@ -84,7 +83,6 @@ public abstract class NameResolver {
* @param block the current block
* @param tableName The table name which can be either qualified or not.
* @return A corresponding relation
- * @throws PlanningException
*/
public static RelationNode lookupTable(LogicalPlan.QueryBlock block, String tableName)
throws AmbiguousTableException {
@@ -143,7 +141,6 @@ public abstract class NameResolver {
* @param block The current query block
* @param columnRef The column reference to be found
* @return The found column
- * @throws PlanningException
*/
static Column resolveFromRelsWithinBlock(LogicalPlan plan, LogicalPlan.QueryBlock block,
ColumnReferenceExpr columnRef)
@@ -320,7 +317,6 @@ public abstract class NameResolver {
* @param block The current block
* @param columnRef The column name
* @return A pair of normalized qualifier and column name
- * @throws PlanningException
*/
static Pair<String, String> lookupQualifierAndCanonicalName(LogicalPlan.QueryBlock block,
ColumnReferenceExpr columnRef)
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
index 524d3ea..419b3e5 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
@@ -29,7 +29,6 @@ import org.apache.tajo.catalog.*;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.TajoInternalError;
-import org.apache.tajo.plan.InvalidQueryException;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.LogicalPlan.QueryBlock;
import org.apache.tajo.plan.LogicalPlanner;
@@ -144,7 +143,7 @@ public class FilterPushDownRule extends BasicLogicalPlanVisitor<FilterPushDownCo
UnaryNode unary = (UnaryNode) node;
unary.setChild(selNode.getChild());
} else {
- throw new InvalidQueryException("Unexpected Logical Query Plan");
+ throw new TajoInternalError("The node must be an unary node");
}
} else { // if there remain search conditions
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
index 99e95be..8e0c421 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
@@ -28,7 +28,6 @@ import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.exception.UndefinedTableException;
-import org.apache.tajo.plan.InvalidQueryException;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.Target;
import org.apache.tajo.plan.expr.*;
@@ -41,7 +40,6 @@ import org.apache.tajo.util.KeyValueSet;
import org.apache.tajo.util.StringUtils;
import org.apache.tajo.util.TUtil;
-import java.io.IOException;
import java.util.*;
public class PlannerUtil {
@@ -306,10 +304,10 @@ public class PlannerUtil {
} else if (binaryParent.getRightChild().deepEquals(child)) {
binaryParent.setRightChild(grandChild);
} else {
- throw new IllegalStateException("ERROR: both logical node must be parent and child nodes");
+ throw new TajoInternalError("both logical node must be parent and child nodes");
}
} else {
- throw new InvalidQueryException("Unexpected logical plan: " + parent);
+ throw new TajoInternalError("unexpected logical plan: " + parent);
}
return child;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/65283b54/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/VerifyException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/VerifyException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/VerifyException.java
deleted file mode 100644
index 2e7a9c2..0000000
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/VerifyException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.plan.verifier;
-
-import org.apache.tajo.plan.PlanningException;
-
-public class VerifyException extends PlanningException {
- public VerifyException(String message) {
- super(message);
- }
-}