You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2015/07/22 15:01:06 UTC
[33/52] [abbrv] tajo git commit: TAJO-1691: Refactor visitors and
planner to throw TajoException.
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
index 76370a9..0207932 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
@@ -22,9 +22,10 @@ import com.google.common.collect.Maps;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.algebra.JoinType;
import org.apache.tajo.catalog.proto.CatalogProtos;
+import org.apache.tajo.exception.TajoException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.exception.UnimplementedException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.Target;
import org.apache.tajo.plan.logical.*;
import org.apache.tajo.plan.serder.PlanProto.AlterTableNode.AddColumn;
@@ -68,8 +69,8 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
SerializeContext context = new SerializeContext();
try {
instance.visit(context, null, null, node, new Stack<LogicalNode>());
- } catch (PlanningException e) {
- throw new RuntimeException(e);
+ } catch (TajoException e) {
+ throw new TajoInternalError(e);
}
return context.treeBuilder.build();
}
@@ -105,7 +106,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitRoot(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- LogicalRootNode root, Stack<LogicalNode> stack) throws PlanningException {
+ LogicalRootNode root, Stack<LogicalNode> stack) throws TajoException {
super.visitRoot(context, plan, block, root, stack);
int [] childIds = registerGetChildIds(context, root);
@@ -122,7 +123,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitSetSession(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- SetSessionNode node, Stack<LogicalNode> stack) throws PlanningException {
+ SetSessionNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitSetSession(context, plan, block, node, stack);
PlanProto.SetSessionNode.Builder builder = PlanProto.SetSessionNode.newBuilder();
@@ -139,7 +140,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitEvalExpr(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- EvalExprNode exprEval, Stack<LogicalNode> stack) throws PlanningException {
+ EvalExprNode exprEval, Stack<LogicalNode> stack) throws TajoException {
PlanProto.EvalExprNode.Builder exprEvalBuilder = PlanProto.EvalExprNode.newBuilder();
exprEvalBuilder.addAllTargets(
ProtoUtil.<PlanProto.Target>toProtoObjects(exprEval.getTargets()));
@@ -152,7 +153,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitProjection(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- ProjectionNode projection, Stack<LogicalNode> stack) throws PlanningException {
+ ProjectionNode projection, Stack<LogicalNode> stack) throws TajoException {
super.visitProjection(context, plan, block, projection, stack);
int [] childIds = registerGetChildIds(context, projection);
@@ -172,7 +173,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitLimit(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- LimitNode limit, Stack<LogicalNode> stack) throws PlanningException {
+ LimitNode limit, Stack<LogicalNode> stack) throws TajoException {
super.visitLimit(context, plan, block, limit, stack);
int [] childIds = registerGetChildIds(context, limit);
@@ -189,7 +190,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitWindowAgg(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- WindowAggNode windowAgg, Stack<LogicalNode> stack) throws PlanningException {
+ WindowAggNode windowAgg, Stack<LogicalNode> stack) throws TajoException {
super.visitWindowAgg(context, plan, block, windowAgg, stack);
int [] childIds = registerGetChildIds(context, windowAgg);
@@ -226,7 +227,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitSort(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- SortNode sort, Stack<LogicalNode> stack) throws PlanningException {
+ SortNode sort, Stack<LogicalNode> stack) throws TajoException {
super.visitSort(context, plan, block, sort, stack);
int [] childIds = registerGetChildIds(context, sort);
@@ -246,7 +247,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitHaving(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- HavingNode having, Stack<LogicalNode> stack) throws PlanningException {
+ HavingNode having, Stack<LogicalNode> stack) throws TajoException {
super.visitHaving(context, plan, block, having, stack);
int [] childIds = registerGetChildIds(context, having);
@@ -263,7 +264,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitGroupBy(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- GroupbyNode node, Stack<LogicalNode> stack) throws PlanningException {
+ GroupbyNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitGroupBy(context, plan, block, node, new Stack<LogicalNode>());
PlanProto.LogicalNode.Builder nodeBuilder = buildGroupby(context, node);
@@ -272,7 +273,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
private PlanProto.LogicalNode.Builder buildGroupby(SerializeContext context, GroupbyNode node)
- throws PlanningException {
+ throws TajoException {
int [] childIds = registerGetChildIds(context, node);
PlanProto.GroupbyNode.Builder groupbyBuilder = PlanProto.GroupbyNode.newBuilder();
@@ -298,7 +299,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitDistinctGroupby(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- DistinctGroupbyNode node, Stack<LogicalNode> stack) throws PlanningException {
+ DistinctGroupbyNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitDistinctGroupby(context, plan, block, node, new Stack<LogicalNode>());
int [] childIds = registerGetChildIds(context, node);
@@ -337,7 +338,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitFilter(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- SelectionNode filter, Stack<LogicalNode> stack) throws PlanningException {
+ SelectionNode filter, Stack<LogicalNode> stack) throws TajoException {
super.visitFilter(context, plan, block, filter, stack);
int [] childIds = registerGetChildIds(context, filter);
@@ -354,7 +355,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitJoin(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode join,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
super.visitJoin(context, plan, block, join, stack);
int [] childIds = registerGetChildIds(context, join);
@@ -384,7 +385,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitUnion(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, UnionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
super.visitUnion(context, plan, block, node, stack);
int [] childIds = registerGetChildIds(context, node);
@@ -403,7 +404,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitScan(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- ScanNode scan, Stack<LogicalNode> stack) throws PlanningException {
+ ScanNode scan, Stack<LogicalNode> stack) throws TajoException {
PlanProto.ScanNode.Builder scanBuilder = buildScanNode(scan);
@@ -439,7 +440,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitPartitionedTableScan(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
PartitionedTableScanNode node, Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
PlanProto.ScanNode.Builder scanBuilder = buildScanNode(node);
@@ -461,7 +462,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitTableSubQuery(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TableSubQueryNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TableSubQueryNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitTableSubQuery(context, plan, block, node, stack);
int [] childIds = registerGetChildIds(context, node);
@@ -483,7 +484,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitCreateTable(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- CreateTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ CreateTableNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitCreateTable(context, plan, block, node, stack);
int [] childIds = registerGetChildIds(context, node);
@@ -523,7 +524,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitAlterTablespace(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- AlterTablespaceNode node, Stack<LogicalNode> stack) throws PlanningException {
+ AlterTablespaceNode node, Stack<LogicalNode> stack) throws TajoException {
PlanProto.AlterTablespaceNode.Builder alterTablespaceBuilder = PlanProto.AlterTablespaceNode.newBuilder();
alterTablespaceBuilder.setTableSpaceName(node.getTablespaceName());
@@ -611,7 +612,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitTruncateTable(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TruncateTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TruncateTableNode node, Stack<LogicalNode> stack) throws TajoException {
PlanProto.TruncateTableNode.Builder truncateTableBuilder = PlanProto.TruncateTableNode.newBuilder();
truncateTableBuilder.addAllTableNames(node.getTableNames());
@@ -623,7 +624,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
}
public LogicalNode visitInsert(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- InsertNode node, Stack<LogicalNode> stack) throws PlanningException {
+ InsertNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitInsert(context, plan, block, node, stack);
int [] childIds = registerGetChildIds(context, node);
@@ -684,7 +685,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitCreateDatabase(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- CreateDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ CreateDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
PlanProto.CreateDatabaseNode.Builder createDatabaseBuilder = PlanProto.CreateDatabaseNode.newBuilder();
createDatabaseBuilder.setDbName(node.getDatabaseName());
createDatabaseBuilder.setIfNotExists(node.isIfNotExists());
@@ -698,7 +699,7 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe
@Override
public LogicalNode visitDropDatabase(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- DropDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ DropDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
PlanProto.DropDatabaseNode.Builder dropDatabaseBuilder = PlanProto.DropDatabaseNode.newBuilder();
dropDatabaseBuilder.setDbName(node.getDatabaseName());
dropDatabaseBuilder.setIfExists(node.isIfExists());
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
index 6800582..bc9ec28 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/ExprFinder.java
@@ -22,6 +22,8 @@ import org.apache.tajo.algebra.BinaryOperator;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.algebra.OpType;
import org.apache.tajo.algebra.UnaryOperator;
+import org.apache.tajo.exception.TajoException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.visitor.SimpleAlgebraVisitor;
@@ -47,14 +49,14 @@ public class ExprFinder extends SimpleAlgebraVisitor<ExprFinder.Context, Object>
stack.push(expr);
try {
finder.visit(context, new Stack<Expr>(), expr);
- } catch (PlanningException e) {
- throw new RuntimeException(e);
+ } catch (TajoException e) {
+ throw new TajoInternalError(e);
}
stack.pop();
return (Set<T>) context.set;
}
- public Object visit(Context ctx, Stack<Expr> stack, Expr expr) throws PlanningException {
+ public Object visit(Context ctx, Stack<Expr> stack, Expr expr) throws TajoException {
if (expr instanceof UnaryOperator) {
preHook(ctx, stack, expr);
visitUnaryOperator(ctx, stack, (UnaryOperator) expr);
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/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 1aee05f..9c34826 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
@@ -25,6 +25,8 @@ import org.apache.tajo.algebra.*;
import org.apache.tajo.annotation.Nullable;
import org.apache.tajo.catalog.*;
import org.apache.tajo.common.TajoDataTypes.DataType;
+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.PlanningException;
@@ -214,7 +216,7 @@ public class PlannerUtil {
return tableNames;
}
- public static String getTopRelationInLineage(LogicalPlan plan, LogicalNode from) throws PlanningException {
+ public static String getTopRelationInLineage(LogicalPlan plan, LogicalNode from) throws TajoException {
RelationFinderVisitor visitor = new RelationFinderVisitor(true);
visitor.visit(null, plan, null, from, new Stack<LogicalNode>());
if (visitor.getFoundRelations().isEmpty()) {
@@ -224,20 +226,6 @@ public class PlannerUtil {
}
}
- /**
- * Get all RelationNodes which are descendant of a given LogicalNode.
- * The finding is restricted within a query block.
- *
- * @param from The LogicalNode to start visiting LogicalNodes.
- * @return an array of all descendant RelationNode of LogicalNode.
- */
- public static Collection<String> getRelationLineageWithinQueryBlock(LogicalPlan plan, LogicalNode from)
- throws PlanningException {
- RelationFinderVisitor visitor = new RelationFinderVisitor(false);
- visitor.visit(null, plan, null, from, new Stack<LogicalNode>());
- return visitor.getFoundRelations();
- }
-
public static class RelationFinderVisitor extends BasicLogicalPlanVisitor<Object, LogicalNode> {
private Set<String> foundRelNameSet = Sets.newHashSet();
private boolean topOnly = false;
@@ -252,7 +240,7 @@ public class PlannerUtil {
@Override
public LogicalNode visit(Object context, LogicalPlan plan, @Nullable LogicalPlan.QueryBlock block, LogicalNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
if (topOnly && foundRelNameSet.size() > 0) {
return node;
}
@@ -307,8 +295,8 @@ public class PlannerUtil {
LogicalNodeReplaceVisitor replacer = new LogicalNodeReplaceVisitor(oldNode, newNode);
try {
replacer.visit(new ReplacerContext(), plan, null, startNode, new Stack<LogicalNode>());
- } catch (PlanningException e) {
- e.printStackTrace();
+ } catch (TajoException e) {
+ throw new TajoInternalError(e);
}
}
@@ -334,7 +322,7 @@ public class PlannerUtil {
@Override
public LogicalNode visit(ReplacerContext context, LogicalPlan plan, @Nullable LogicalPlan.QueryBlock block,
- LogicalNode node, Stack<LogicalNode> stack) throws PlanningException {
+ LogicalNode node, Stack<LogicalNode> stack) throws TajoException {
LogicalNode left = null;
LogicalNode right = null;
@@ -389,15 +377,13 @@ public class PlannerUtil {
@Override
public LogicalNode visitScan(ReplacerContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return node;
}
@Override
public LogicalNode visitPartitionedTableScan(ReplacerContext context, LogicalPlan plan, LogicalPlan.
- QueryBlock block, PartitionedTableScanNode node, Stack<LogicalNode> stack)
-
- throws PlanningException {
+ QueryBlock block, PartitionedTableScanNode node, Stack<LogicalNode> stack) {
return node;
}
}
@@ -779,14 +765,14 @@ public class PlannerUtil {
return joinType == JoinType.LEFT_OUTER || joinType == JoinType.RIGHT_OUTER || joinType==JoinType.FULL_OUTER;
}
- public static boolean existsAggregationFunction(Expr expr) throws PlanningException {
+ public static boolean existsAggregationFunction(Expr expr) throws TajoException {
AggregationFunctionFinder finder = new AggregationFunctionFinder();
AggFunctionFoundResult result = new AggFunctionFoundResult();
finder.visit(result, new Stack<Expr>(), expr);
return result.generalSetFunction;
}
- public static boolean existsDistinctAggregationFunction(Expr expr) throws PlanningException {
+ public static boolean existsDistinctAggregationFunction(Expr expr) throws TajoException {
AggregationFunctionFinder finder = new AggregationFunctionFinder();
AggFunctionFoundResult result = new AggFunctionFoundResult();
finder.visit(result, new Stack<Expr>(), expr);
@@ -801,14 +787,14 @@ public class PlannerUtil {
static class AggregationFunctionFinder extends SimpleAlgebraVisitor<AggFunctionFoundResult, Object> {
@Override
public Object visitCountRowsFunction(AggFunctionFoundResult ctx, Stack<Expr> stack, CountRowsFunctionExpr expr)
- throws PlanningException {
+ throws TajoException {
ctx.generalSetFunction = true;
return super.visitCountRowsFunction(ctx, stack, expr);
}
@Override
public Object visitGeneralSetFunction(AggFunctionFoundResult ctx, Stack<Expr> stack, GeneralSetFunctionExpr expr)
- throws PlanningException {
+ throws TajoException {
ctx.generalSetFunction = true;
ctx.distinctSetFunction = expr.isDistinct();
return super.visitGeneralSetFunction(ctx, stack, expr);
@@ -844,8 +830,8 @@ public class PlannerUtil {
explains.append(
ExplainLogicalPlanVisitor.printDepthString(explainContext.getMaxDepth(), explainContext.explains.pop()));
}
- } catch (PlanningException e) {
- throw new RuntimeException(e);
+ } catch (TajoException e) {
+ throw new TajoInternalError(e);
}
return explains.toString();
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/ExprsVerifier.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/ExprsVerifier.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/ExprsVerifier.java
index 212fa9e..eaf8775 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/ExprsVerifier.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/ExprsVerifier.java
@@ -47,8 +47,7 @@ public class ExprsVerifier extends BasicEvalNodeVisitor<VerificationState, EvalN
instance = new ExprsVerifier();
}
- public static VerificationState verify(VerificationState state, LogicalNode currentNode, EvalNode expression)
- throws PlanningException {
+ public static VerificationState verify(VerificationState state, LogicalNode currentNode, EvalNode expression) {
instance.visitChild(state, expression, new Stack<EvalNode>());
Set<Column> referredColumns = EvalTreeUtil.findUniqueColumns(expression);
for (Column referredColumn : referredColumns) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java
index c6062e9..f249def 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java
@@ -27,19 +27,17 @@ import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.error.Errors;
import org.apache.tajo.exception.TajoException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.exception.UnsupportedException;
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.logical.*;
+import org.apache.tajo.plan.util.PlannerUtil;
import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor;
import java.util.Stack;
-import static org.apache.tajo.plan.verifier.SyntaxErrorUtil.makeDataTypeMisMatch;
-import static org.apache.tajo.plan.verifier.SyntaxErrorUtil.makeSetOpDataTypeMisMatch;
-import static org.apache.tajo.plan.verifier.SyntaxErrorUtil.makeSyntaxError;
+import static org.apache.tajo.plan.verifier.SyntaxErrorUtil.*;
public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVerifier.Context, LogicalNode> {
public LogicalPlanVerifier(TajoConf conf, CatalogService catalog) {
@@ -54,7 +52,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
}
public VerificationState verify(OverridableConf queryContext, VerificationState state, LogicalPlan plan)
- throws PlanningException {
+ throws TajoException {
Context context = new Context(queryContext, state);
visit(context, plan, plan.getRootBlock());
return context.state;
@@ -63,13 +61,13 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
/**
* It checks if an output schema of a projectable node and target's output data types are equivalent to each other.
*/
- private static void verifyProjectableOutputSchema(Context context, Projectable node) throws PlanningException {
+ private static void verifyProjectableOutputSchema(Context context, Projectable node) throws TajoException {
Schema outputSchema = node.getOutSchema();
Schema targetSchema = PlannerUtil.targetToSchema(node.getTargets());
if (outputSchema.size() != node.getTargets().length) {
- throw new PlanningException(String.format("Output schema and Target's schema are mismatched at Node (%d)",
+ throw new TajoInternalError(String.format("Output schema and Target's schema are mismatched at Node (%d)",
+ node.getPID()));
}
@@ -83,14 +81,14 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
if (!outputColumn.getDataType().equals(targetSchema.getColumn(i).getDataType())) {
Column targetColumn = targetSchema.getColumn(i);
Column insertColumn = outputColumn;
- throw new PlanningException(SyntaxErrorUtil.makeDataTypeMisMatch(insertColumn, targetColumn));
+ throw new TajoInternalError(SyntaxErrorUtil.makeDataTypeMisMatch(insertColumn, targetColumn));
}
}
}
@Override
public LogicalNode visitProjection(Context state, LogicalPlan plan, LogicalPlan.QueryBlock block,
- ProjectionNode node, Stack<LogicalNode> stack) throws PlanningException {
+ ProjectionNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitProjection(state, plan, block, node, stack);
for (Target target : node.getTargets()) {
@@ -104,7 +102,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitLimit(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- LimitNode node, Stack<LogicalNode> stack) throws PlanningException {
+ LimitNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitLimit(context, plan, block, node, stack);
if (node.getFetchFirstNum() < 0) {
@@ -116,7 +114,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitGroupBy(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- GroupbyNode node, Stack<LogicalNode> stack) throws PlanningException {
+ GroupbyNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitGroupBy(context, plan, block, node, stack);
verifyProjectableOutputSchema(context, node);
@@ -125,7 +123,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitFilter(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- SelectionNode node, Stack<LogicalNode> stack) throws PlanningException {
+ SelectionNode node, Stack<LogicalNode> stack) throws TajoException {
visit(context, plan, block, node.getChild(), stack);
ExprsVerifier.verify(context.state, node, node.getQual());
return node;
@@ -133,7 +131,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitJoin(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
visit(context, plan, block, node.getLeftChild(), stack);
visit(context, plan, block, node.getRightChild(), stack);
@@ -172,7 +170,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitUnion(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- UnionNode node, Stack<LogicalNode> stack) throws PlanningException {
+ UnionNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitUnion(context, plan, block, node, stack);
verifySetStatement(context.state, node);
return node;
@@ -180,7 +178,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitExcept(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- ExceptNode node, Stack<LogicalNode> stack) throws PlanningException {
+ ExceptNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitExcept(context, plan, block, node, stack);
verifySetStatement(context.state, node);
return node;
@@ -188,7 +186,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitIntersect(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- IntersectNode node, Stack<LogicalNode> stack) throws PlanningException {
+ IntersectNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitIntersect(context, plan, block, node, stack);
verifySetStatement(context.state, node);
return node;
@@ -196,7 +194,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitTableSubQuery(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TableSubQueryNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TableSubQueryNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitTableSubQuery(context, plan, block, node, stack);
if (node.hasTargets()) {
for (Target target : node.getTargets()) {
@@ -210,7 +208,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitScan(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
if (node.hasTargets()) {
for (Target target : node.getTargets()) {
ExprsVerifier.verify(context.state, node, target.getEvalTree());
@@ -228,14 +226,14 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitStoreTable(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- StoreTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ StoreTableNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitStoreTable(context, plan, block, node, stack);
return node;
}
@Override
public LogicalNode visitInsert(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- InsertNode node, Stack<LogicalNode> stack) throws PlanningException {
+ InsertNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitInsert(context, plan, block, node, stack);
return node;
}
@@ -244,7 +242,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
* This ensures that corresponding columns in both tables are equivalent to each other.
*/
private static void ensureDomains(VerificationState state, Schema targetTableScheme, Schema schema)
- throws PlanningException {
+ throws TajoException {
for (int i = 0; i < schema.size(); i++) {
if (!schema.getColumn(i).getDataType().equals(targetTableScheme.getColumn(i).getDataType())) {
Column targetColumn = targetTableScheme.getColumn(i);
@@ -256,7 +254,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri
@Override
public LogicalNode visitCreateTable(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- CreateTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ CreateTableNode node, Stack<LogicalNode> stack) throws TajoException {
super.visitCreateTable(context, plan, block, node, stack);
// here, we don't need check table existence because this check is performed in PreLogicalPlanVerifier.
return node;
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java
index 6330268..cfdb005 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java
@@ -26,12 +26,16 @@ import org.apache.tajo.algebra.*;
import org.apache.tajo.catalog.CatalogService;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.TableDesc;
-import org.apache.tajo.catalog.exception.*;
+import org.apache.tajo.catalog.exception.CatalogExceptionUtil;
+import org.apache.tajo.catalog.exception.DuplicateDatabaseException;
+import org.apache.tajo.catalog.exception.UndefinedDatabaseException;
+import org.apache.tajo.catalog.exception.UndefinedTableException;
import org.apache.tajo.exception.ExceptionUtil;
-import org.apache.tajo.exception.UnimplementedException;
-import org.apache.tajo.plan.util.ExprFinder;
+import org.apache.tajo.exception.TajoException;
+import org.apache.tajo.exception.TajoInternalError;
import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.algebra.BaseAlgebraVisitor;
+import org.apache.tajo.plan.util.ExprFinder;
import org.apache.tajo.util.TUtil;
import org.apache.tajo.validation.ConstraintViolation;
@@ -60,14 +64,14 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
public VerificationState verify(OverridableConf queryContext, VerificationState state, Expr expr)
- throws PlanningException {
+ throws TajoException {
Context context = new Context(queryContext, state);
visit(context, new Stack<Expr>(), expr);
return context.state;
}
@Override
- public Expr visitSetSession(Context ctx, Stack<Expr> stack, SetSession expr) throws PlanningException {
+ public Expr visitSetSession(Context ctx, Stack<Expr> stack, SetSession expr) throws TajoException {
// we should allow undefined session variables which can be used in query statements in the future.
if (SessionVars.exists(expr.getName())) {
@@ -84,7 +88,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
return expr;
}
- public Expr visitProjection(Context context, Stack<Expr> stack, Projection expr) throws PlanningException {
+ public Expr visitProjection(Context context, Stack<Expr> stack, Projection expr) throws TajoException {
super.visitProjection(context, stack, expr);
Set<String> names = TUtil.newHashSet();
@@ -103,7 +107,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
@Override
- public Expr visitLimit(Context context, Stack<Expr> stack, Limit expr) throws PlanningException {
+ public Expr visitLimit(Context context, Stack<Expr> stack, Limit expr) throws TajoException {
stack.push(expr);
if (ExprFinder.finds(expr.getFetchFirstNum(), OpType.Column).size() > 0) {
@@ -117,7 +121,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
@Override
- public Expr visitGroupBy(Context context, Stack<Expr> stack, Aggregation expr) throws PlanningException {
+ public Expr visitGroupBy(Context context, Stack<Expr> stack, Aggregation expr) throws TajoException {
super.visitGroupBy(context, stack, expr);
// Enforcer only ordinary grouping set.
@@ -136,14 +140,14 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
if (projection == null) {
- throw new PlanningException("No Projection");
+ throw new TajoInternalError("No Projection");
}
return expr;
}
@Override
- public Expr visitRelation(Context context, Stack<Expr> stack, Relation expr) throws PlanningException {
+ public Expr visitRelation(Context context, Stack<Expr> stack, Relation expr) throws TajoException {
assertRelationExistence(context, expr.getName());
return expr;
}
@@ -215,7 +219,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
@Override
public Expr visitCreateDatabase(Context context, Stack<Expr> stack, CreateDatabase expr)
- throws PlanningException {
+ throws TajoException {
super.visitCreateDatabase(context, stack, expr);
if (!expr.isIfNotExists()) {
assertDatabaseNoExistence(context.state, expr.getDatabaseName());
@@ -224,7 +228,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
@Override
- public Expr visitDropDatabase(Context context, Stack<Expr> stack, DropDatabase expr) throws PlanningException {
+ public Expr visitDropDatabase(Context context, Stack<Expr> stack, DropDatabase expr) throws TajoException {
super.visitDropDatabase(context, stack, expr);
if (!expr.isIfExists()) {
assertDatabaseExistence(context.state, expr.getDatabaseName());
@@ -233,7 +237,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
@Override
- public Expr visitCreateTable(Context context, Stack<Expr> stack, CreateTable expr) throws PlanningException {
+ public Expr visitCreateTable(Context context, Stack<Expr> stack, CreateTable expr) throws TajoException {
super.visitCreateTable(context, stack, expr);
if (!expr.isIfNotExists()) {
assertRelationNoExistence(context, expr.getTableName());
@@ -245,7 +249,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
}
@Override
- public Expr visitDropTable(Context context, Stack<Expr> stack, DropTable expr) throws PlanningException {
+ public Expr visitDropTable(Context context, Stack<Expr> stack, DropTable expr) throws TajoException {
super.visitDropTable(context, stack, expr);
if (!expr.isIfExists()) {
assertRelationExistence(context, expr.getTableName());
@@ -257,7 +261,7 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer
// Insert or Update Section
///////////////////////////////////////////////////////////////////////////////////////////////////////////
- public Expr visitInsert(Context context, Stack<Expr> stack, Insert expr) throws PlanningException {
+ public Expr visitInsert(Context context, Stack<Expr> stack, Insert expr) throws TajoException {
Expr child = super.visitInsert(context, stack, expr);
if (expr.hasTableName()) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java
index 90ff1dc..ebb5c80 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java
@@ -18,6 +18,8 @@
package org.apache.tajo.plan.visitor;
+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.*;
@@ -31,7 +33,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
*/
@SuppressWarnings("unused")
public void preHook(LogicalPlan plan, LogicalNode node, Stack<LogicalNode> stack, CONTEXT data)
- throws PlanningException {
+ throws TajoException {
}
/**
@@ -39,11 +41,11 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
*/
@SuppressWarnings("unused")
public void postHook(LogicalPlan plan, LogicalNode node, Stack<LogicalNode> stack, CONTEXT data)
- throws PlanningException {
+ throws TajoException {
}
public CONTEXT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block)
- throws PlanningException {
+ throws TajoException {
visit(context, plan, block, block.getRoot(), new Stack<LogicalNode>());
return context;
}
@@ -53,7 +55,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
*/
public RESULT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalNode node,
Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
preHook(plan, node, stack, context);
RESULT current;
switch (node.getType()) {
@@ -139,7 +141,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
current = visitTruncateTable(context, plan, block, (TruncateTableNode) node, stack);
break;
default:
- throw new PlanningException("Unknown logical node type: " + node.getType());
+ throw new TajoInternalError("Unknown logical node type: " + node.getType());
}
postHook(plan, node, stack, context);
@@ -148,7 +150,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitRoot(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalRootNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -157,20 +159,20 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitSetSession(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SetSessionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return null;
}
@Override
public RESULT visitEvalExpr(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, EvalExprNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return null;
}
@Override
public RESULT visitProjection(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode node,
Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -179,7 +181,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitLimit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LimitNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -188,7 +190,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitSort(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SortNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -197,7 +199,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitHaving(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, HavingNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -206,7 +208,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitGroupBy(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, GroupbyNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -215,7 +217,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitWindowAgg(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, WindowAggNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -223,7 +225,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
}
public RESULT visitDistinctGroupby(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- DistinctGroupbyNode node, Stack<LogicalNode> stack) throws PlanningException {
+ DistinctGroupbyNode node, Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -232,7 +234,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitFilter(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SelectionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -241,7 +243,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitJoin(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getLeftChild(), stack);
visit(context, plan, block, node.getRightChild(), stack);
@@ -251,7 +253,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitUnion(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, UnionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = null;
if (plan != null) {
@@ -270,7 +272,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitExcept(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ExceptNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getLeftChild(), stack);
visit(context, plan, block, node.getRightChild(), stack);
@@ -280,7 +282,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitIntersect(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, IntersectNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getLeftChild(), stack);
visit(context, plan, block, node.getRightChild(), stack);
@@ -290,7 +292,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitTableSubQuery(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TableSubQueryNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TableSubQueryNode node, Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = null;
if (plan != null) {
@@ -305,20 +307,20 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitScan(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return null;
}
@Override
public RESULT visitPartitionedTableScan(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
PartitionedTableScanNode node, Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
return null;
}
@Override
public RESULT visitStoreTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, StoreTableNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -327,7 +329,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitInsert(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, InsertNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
stack.push(node);
RESULT result = visit(context, plan, block, node.getChild(), stack);
stack.pop();
@@ -336,18 +338,19 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitCreateDatabase(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- CreateDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ CreateDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
return null;
}
@Override
- public RESULT visitDropDatabase(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, DropDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ public RESULT visitDropDatabase(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
+ DropDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
return null;
}
@Override
public RESULT visitCreateTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateTableNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
RESULT result = null;
stack.push(node);
if (node.hasSubQuery()) {
@@ -365,7 +368,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitAlterTablespace(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- AlterTablespaceNode node, Stack<LogicalNode> stack) throws PlanningException {
+ AlterTablespaceNode node, Stack<LogicalNode> stack) throws TajoException {
return null;
}
@@ -377,7 +380,7 @@ public class BasicLogicalPlanVisitor<CONTEXT, RESULT> implements LogicalPlanVisi
@Override
public RESULT visitTruncateTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TruncateTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TruncateTableNode node, Stack<LogicalNode> stack) throws TajoException {
return null;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/ExplainLogicalPlanVisitor.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/ExplainLogicalPlanVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/ExplainLogicalPlanVisitor.java
index 52db8eb..925742a 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/ExplainLogicalPlanVisitor.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/ExplainLogicalPlanVisitor.java
@@ -19,6 +19,7 @@
package org.apache.tajo.plan.visitor;
import org.apache.tajo.annotation.Nullable;
+import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.PlanString;
import org.apache.tajo.plan.PlanningException;
@@ -68,7 +69,7 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
}
}
- public Context getBlockPlanStrings(@Nullable LogicalPlan plan, LogicalNode node) throws PlanningException {
+ public Context getBlockPlanStrings(@Nullable LogicalPlan plan, LogicalNode node) throws TajoException {
Stack<LogicalNode> stack = new Stack<LogicalNode>();
Context explainContext = new Context();
visit(explainContext, plan, null, node, stack);
@@ -77,54 +78,54 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
@Override
public LogicalNode visitRoot(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalRootNode node, Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
return visit(context, plan, block, node.getChild(), stack);
}
@Override
public LogicalNode visitProjection(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
ProjectionNode node, Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitLimit(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- LimitNode node, Stack<LogicalNode> stack) throws PlanningException {
+ LimitNode node, Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitSort(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, SortNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
public LogicalNode visitHaving(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, HavingNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitGroupBy(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, GroupbyNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitWindowAgg(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, WindowAggNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
public LogicalNode visitDistinctGroupby(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
DistinctGroupbyNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
private LogicalNode visitUnaryNode(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- UnaryNode node, Stack<LogicalNode> stack) throws PlanningException {
+ UnaryNode node, Stack<LogicalNode> stack) throws TajoException {
context.depth++;
stack.push(node);
visit(context, plan, block, node.getChild(), stack);
@@ -135,7 +136,7 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
private LogicalNode visitBinaryNode(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, BinaryNode node,
Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
context.depth++;
stack.push(node);
visit(context, plan, block, node.getLeftChild(), stack);
@@ -148,37 +149,37 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
@Override
public LogicalNode visitFilter(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, SelectionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitJoin(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitBinaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitUnion(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, UnionNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitBinaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitExcept(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, ExceptNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitBinaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitIntersect(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, IntersectNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
return visitBinaryNode(context, plan, block, node, stack);
}
@Override
public LogicalNode visitTableSubQuery(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- TableSubQueryNode node, Stack<LogicalNode> stack) throws PlanningException {
+ TableSubQueryNode node, Stack<LogicalNode> stack) throws TajoException {
context.depth++;
stack.push(node);
visit(context, plan, block, node.getSubQuery(), new Stack<LogicalNode>());
@@ -191,7 +192,7 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
@Override
public LogicalNode visitScan(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
context.add(context.depth, node.getPlanString());
return node;
}
@@ -199,32 +200,32 @@ public class ExplainLogicalPlanVisitor extends BasicLogicalPlanVisitor<ExplainLo
@Override
public LogicalNode visitPartitionedTableScan(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
PartitionedTableScanNode node, Stack<LogicalNode> stack)
- throws PlanningException {
+ throws TajoException {
context.add(context.depth, node.getPlanString());
return node;
}
@Override
public LogicalNode visitStoreTable(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- StoreTableNode node, Stack<LogicalNode> stack) throws PlanningException {
+ StoreTableNode node, Stack<LogicalNode> stack) throws TajoException {
return visitUnaryNode(context, plan, block, node, stack);
}
public LogicalNode visitCreateDatabase(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- CreateDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ CreateDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
context.add(context.depth, node.getPlanString());
return node;
}
public LogicalNode visitDropDatabase(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- DropDatabaseNode node, Stack<LogicalNode> stack) throws PlanningException {
+ DropDatabaseNode node, Stack<LogicalNode> stack) throws TajoException {
context.add(context.depth, node.getPlanString());
return node;
}
@Override
public LogicalNode visitInsert(Context context, LogicalPlan plan, LogicalPlan.QueryBlock block, InsertNode node,
- Stack<LogicalNode> stack) throws PlanningException {
+ Stack<LogicalNode> stack) throws TajoException {
context.depth++;
stack.push(node);
super.visitInsert(context, plan, block, node, stack);
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/LogicalPlanVisitor.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/LogicalPlanVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/LogicalPlanVisitor.java
index 5be2eec..dd832ae 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/LogicalPlanVisitor.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/LogicalPlanVisitor.java
@@ -18,6 +18,7 @@
package org.apache.tajo.plan.visitor;
+import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.logical.*;
@@ -27,81 +28,81 @@ import java.util.Stack;
public interface LogicalPlanVisitor<CONTEXT, RESULT> {
RESULT visitRoot(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalRootNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitSetSession(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SetSessionNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitEvalExpr(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, EvalExprNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitProjection(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ProjectionNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitLimit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LimitNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitSort(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SortNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitHaving(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, HavingNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitGroupBy(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, GroupbyNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitWindowAgg(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, WindowAggNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitDistinctGroupby(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, DistinctGroupbyNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitFilter(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, SelectionNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitJoin(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, JoinNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitUnion(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, UnionNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitExcept(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ExceptNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitIntersect(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, IntersectNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitTableSubQuery(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, TableSubQueryNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitScan(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitPartitionedTableScan(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block,
- PartitionedTableScanNode node, Stack<LogicalNode> stack) throws PlanningException;
+ PartitionedTableScanNode node, Stack<LogicalNode> stack) throws TajoException;
RESULT visitStoreTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, StoreTableNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitInsert(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, InsertNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitCreateDatabase(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateDatabaseNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitDropDatabase(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, DropDatabaseNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitCreateTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateTableNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitDropTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, DropTableNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitAlterTablespace(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, AlterTablespaceNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitAlterTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, AlterTableNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
RESULT visitTruncateTable(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, TruncateTableNode node,
- Stack<LogicalNode> stack) throws PlanningException;
+ Stack<LogicalNode> stack) throws TajoException;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/SimpleAlgebraVisitor.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/SimpleAlgebraVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/SimpleAlgebraVisitor.java
index ad4ef18..989af88 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/SimpleAlgebraVisitor.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/visitor/SimpleAlgebraVisitor.java
@@ -19,6 +19,7 @@
package org.apache.tajo.plan.visitor;
import org.apache.tajo.algebra.*;
+import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.algebra.BaseAlgebraVisitor;
@@ -29,7 +30,7 @@ import java.util.Stack;
*/
public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraVisitor<CONTEXT, RESULT> {
- public RESULT visit(CONTEXT ctx, Stack<Expr> stack, Expr expr) throws PlanningException {
+ public RESULT visit(CONTEXT ctx, Stack<Expr> stack, Expr expr) throws TajoException {
RESULT result = null;
if (expr instanceof UnaryOperator) {
preHook(ctx, stack, expr);
@@ -46,14 +47,14 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
return result;
}
- public RESULT visitUnaryOperator(CONTEXT ctx, Stack<Expr> stack, UnaryOperator expr) throws PlanningException {
+ public RESULT visitUnaryOperator(CONTEXT ctx, Stack<Expr> stack, UnaryOperator expr) throws TajoException {
stack.push(expr);
RESULT result = visit(ctx, stack, expr.getChild());
stack.pop();
return result;
}
- public RESULT visitBinaryOperator(CONTEXT ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException {
+ public RESULT visitBinaryOperator(CONTEXT ctx, Stack<Expr> stack, BinaryOperator expr) throws TajoException {
stack.push(expr);
visit(ctx, stack, expr.getLeft());
RESULT result = visit(ctx, stack, expr.getRight());
@@ -66,46 +67,46 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitProjection(CONTEXT ctx, Stack<Expr> stack, Projection expr) throws PlanningException {
+ public RESULT visitProjection(CONTEXT ctx, Stack<Expr> stack, Projection expr) throws TajoException {
return super.visitProjection(ctx, stack, expr);
}
@Override
- public RESULT visitLimit(CONTEXT ctx, Stack<Expr> stack, Limit expr) throws PlanningException {
+ public RESULT visitLimit(CONTEXT ctx, Stack<Expr> stack, Limit expr) throws TajoException {
return super.visitLimit(ctx, stack, expr);
}
@Override
- public RESULT visitSort(CONTEXT ctx, Stack<Expr> stack, Sort expr) throws PlanningException {
+ public RESULT visitSort(CONTEXT ctx, Stack<Expr> stack, Sort expr) throws TajoException {
return super.visitSort(ctx, stack, expr);
}
@Override
- public RESULT visitHaving(CONTEXT ctx, Stack<Expr> stack, Having expr) throws PlanningException {
+ public RESULT visitHaving(CONTEXT ctx, Stack<Expr> stack, Having expr) throws TajoException {
return super.visitHaving(ctx, stack, expr);
}
@Override
- public RESULT visitGroupBy(CONTEXT ctx, Stack<Expr> stack, Aggregation expr) throws PlanningException {
+ public RESULT visitGroupBy(CONTEXT ctx, Stack<Expr> stack, Aggregation expr) throws TajoException {
return super.visitGroupBy(ctx, stack, expr);
}
- public RESULT visitFilter(CONTEXT ctx, Stack<Expr> stack, Selection expr) throws PlanningException {
+ public RESULT visitFilter(CONTEXT ctx, Stack<Expr> stack, Selection expr) throws TajoException {
return super.visitFilter(ctx, stack, expr);
}
@Override
- public RESULT visitJoin(CONTEXT ctx, Stack<Expr> stack, Join expr) throws PlanningException {
+ public RESULT visitJoin(CONTEXT ctx, Stack<Expr> stack, Join expr) throws TajoException {
return super.visitJoin(ctx, stack, expr);
}
@Override
- public RESULT visitTableSubQuery(CONTEXT ctx, Stack<Expr> stack, TablePrimarySubQuery expr) throws PlanningException {
+ public RESULT visitTableSubQuery(CONTEXT ctx, Stack<Expr> stack, TablePrimarySubQuery expr) throws TajoException {
return super.visitTableSubQuery(ctx, stack, expr);
}
@Override
- public RESULT visitRelationList(CONTEXT ctx, Stack<Expr> stack, RelationList expr) throws PlanningException {
+ public RESULT visitRelationList(CONTEXT ctx, Stack<Expr> stack, RelationList expr) throws TajoException {
return super.visitRelationList(ctx, stack, expr);
}
@@ -114,17 +115,17 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitCreateTable(CONTEXT ctx, Stack<Expr> stack, CreateTable expr) throws PlanningException {
+ public RESULT visitCreateTable(CONTEXT ctx, Stack<Expr> stack, CreateTable expr) throws TajoException {
return super.visitCreateTable(ctx, stack, expr);
}
@Override
- public RESULT visitDropTable(CONTEXT ctx, Stack<Expr> stack, DropTable expr) throws PlanningException {
+ public RESULT visitDropTable(CONTEXT ctx, Stack<Expr> stack, DropTable expr) throws TajoException {
return super.visitDropTable(ctx, stack, expr);
}
@Override
- public RESULT visitAlterTable(CONTEXT ctx, Stack<Expr> stack, AlterTable expr) throws PlanningException {
+ public RESULT visitAlterTable(CONTEXT ctx, Stack<Expr> stack, AlterTable expr) throws TajoException {
return super.visitAlterTable(ctx, stack, expr);
}
@@ -132,7 +133,7 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
// Insert or Update Section
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitInsert(CONTEXT ctx, Stack<Expr> stack, Insert expr) throws PlanningException {
+ public RESULT visitInsert(CONTEXT ctx, Stack<Expr> stack, Insert expr) throws TajoException {
return super.visitInsert(ctx, stack, expr);
}
@@ -142,17 +143,17 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitBetween(CONTEXT ctx, Stack<Expr> stack, BetweenPredicate expr) throws PlanningException {
+ public RESULT visitBetween(CONTEXT ctx, Stack<Expr> stack, BetweenPredicate expr) throws TajoException {
return super.visitBetween(ctx, stack, expr);
}
@Override
- public RESULT visitCaseWhen(CONTEXT ctx, Stack<Expr> stack, CaseWhenPredicate expr) throws PlanningException {
+ public RESULT visitCaseWhen(CONTEXT ctx, Stack<Expr> stack, CaseWhenPredicate expr) throws TajoException {
return super.visitCaseWhen(ctx, stack, expr);
}
@Override
- public RESULT visitValueListExpr(CONTEXT ctx, Stack<Expr> stack, ValueListExpr expr) throws PlanningException {
+ public RESULT visitValueListExpr(CONTEXT ctx, Stack<Expr> stack, ValueListExpr expr) throws TajoException {
return super.visitValueListExpr(ctx, stack, expr);
}
@@ -160,24 +161,24 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
// Functions and General Set Function Section
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitFunction(CONTEXT ctx, Stack<Expr> stack, FunctionExpr expr) throws PlanningException {
+ public RESULT visitFunction(CONTEXT ctx, Stack<Expr> stack, FunctionExpr expr) throws TajoException {
return super.visitFunction(ctx, stack, expr);
}
@Override
public RESULT visitCountRowsFunction(CONTEXT ctx, Stack<Expr> stack, CountRowsFunctionExpr expr)
- throws PlanningException {
+ throws TajoException {
return super.visitCountRowsFunction(ctx, stack, expr);
}
@Override
public RESULT visitGeneralSetFunction(CONTEXT ctx, Stack<Expr> stack, GeneralSetFunctionExpr expr)
- throws PlanningException {
+ throws TajoException {
return super.visitGeneralSetFunction(ctx, stack, expr);
}
@Override
- public RESULT visitWindowFunction(CONTEXT ctx, Stack<Expr> stack, WindowFunctionExpr expr) throws PlanningException {
+ public RESULT visitWindowFunction(CONTEXT ctx, Stack<Expr> stack, WindowFunctionExpr expr) throws TajoException {
return super.visitWindowFunction(ctx, stack, expr);
}
@@ -186,27 +187,27 @@ public abstract class SimpleAlgebraVisitor<CONTEXT, RESULT> extends BaseAlgebraV
///////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
- public RESULT visitDataType(CONTEXT ctx, Stack<Expr> stack, DataTypeExpr expr) throws PlanningException {
+ public RESULT visitDataType(CONTEXT ctx, Stack<Expr> stack, DataTypeExpr expr) throws TajoException {
return super.visitDataType(ctx, stack, expr);
}
@Override
- public RESULT visitLiteral(CONTEXT ctx, Stack<Expr> stack, LiteralValue expr) throws PlanningException {
+ public RESULT visitLiteral(CONTEXT ctx, Stack<Expr> stack, LiteralValue expr) throws TajoException {
return super.visitLiteral(ctx, stack, expr);
}
@Override
- public RESULT visitNullLiteral(CONTEXT ctx, Stack<Expr> stack, NullLiteral expr) throws PlanningException {
+ public RESULT visitNullLiteral(CONTEXT ctx, Stack<Expr> stack, NullLiteral expr) throws TajoException {
return super.visitNullLiteral(ctx, stack, expr);
}
@Override
- public RESULT visitTimestampLiteral(CONTEXT ctx, Stack<Expr> stack, TimestampLiteral expr) throws PlanningException {
+ public RESULT visitTimestampLiteral(CONTEXT ctx, Stack<Expr> stack, TimestampLiteral expr) throws TajoException {
return super.visitTimestampLiteral(ctx, stack, expr);
}
@Override
- public RESULT visitTimeLiteral(CONTEXT ctx, Stack<Expr> stack, TimeLiteral expr) throws PlanningException {
+ public RESULT visitTimeLiteral(CONTEXT ctx, Stack<Expr> stack, TimeLiteral expr) throws TajoException {
return super.visitTimeLiteral(ctx, stack, expr);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
index 52e223d..f8883b0 100644
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
+++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
@@ -18,11 +18,9 @@
package org.apache.tajo.storage;
-import com.google.common.base.Optional;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.ExecutionBlockId;
import org.apache.tajo.OverridableConf;
-import org.apache.tajo.QueryVars;
import org.apache.tajo.TaskAttemptId;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.SortSpec;
@@ -30,9 +28,9 @@ import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.catalog.TableMeta;
import org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto;
import org.apache.tajo.conf.TajoConf;
+import org.apache.tajo.exception.TajoException;
import org.apache.tajo.exception.UnsupportedException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.logical.LogicalNode;
import org.apache.tajo.plan.logical.ScanNode;
import org.apache.tajo.storage.fragment.Fragment;
@@ -338,7 +336,7 @@ public abstract class Tablespace {
/**
* Rewrite the logical plan. It is assumed that the final plan will be given in this method.
*/
- public void rewritePlan(OverridableConf context, LogicalPlan plan) throws PlanningException {
+ public void rewritePlan(OverridableConf context, LogicalPlan plan) throws TajoException {
// nothing to do by default
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/4841c656/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java b/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
index 18bb7ed..00cac77 100644
--- a/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
+++ b/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
@@ -42,8 +42,8 @@ import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.datum.TextDatum;
+import org.apache.tajo.exception.TajoException;
import org.apache.tajo.plan.LogicalPlan;
-import org.apache.tajo.plan.PlanningException;
import org.apache.tajo.plan.expr.*;
import org.apache.tajo.plan.logical.CreateTableNode;
import org.apache.tajo.plan.logical.LogicalNode;
@@ -1090,7 +1090,7 @@ public class HBaseTablespace extends Tablespace {
}
@Override
- public void rewritePlan(OverridableConf context, LogicalPlan plan) throws PlanningException {
+ public void rewritePlan(OverridableConf context, LogicalPlan plan) throws TajoException {
if (REWRITE_RULE.isEligible(context, plan)) {
REWRITE_RULE.rewrite(context, plan);
}