public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>
org.apache.tajo.algebra)| Modifier and Type | Class and Description |
|---|---|
static class |
LogicalPlanner.PlanContext |
| Constructor and Description |
|---|
LogicalPlanner(CatalogService catalog) |
visit, visitAnd, visitBetween, visitCaseWhen, visitCastExpr, visitColumnReference, visitConcatenate, visitCountRowsFunction, visitDataType, visitDateLiteral, visitDivide, visitEquals, visitExistsPredicate, visitFunction, visitGeneralSetFunction, visitGreaterThan, visitGreaterThanOrEquals, visitInPredicate, visitIntervalLiteral, visitIsNullPredicate, visitLessThan, visitLessThanOrEquals, visitLikePredicate, visitLiteral, visitMinus, visitModular, visitMultiply, visitNot, visitNotEquals, visitNullLiteral, visitOr, visitPlus, visitQualifiedAsterisk, visitRegexpPredicate, visitScalarSubQuery, visitSign, visitSimilarToPredicate, visitSimpleTableSubQuery, visitTargetExpr, visitTimeLiteral, visitTimestampLiteral, visitValueListExpr, visitWindowFunctionpublic LogicalPlanner(CatalogService catalog)
public LogicalPlan createPlan(OverridableConf context, Expr expr) throws PlanningException
expr - A relational algebraic expression for a query.PlanningExceptionpublic LogicalPlan createPlan(OverridableConf queryContext, Expr expr, boolean debug) throws PlanningException
PlanningExceptionpublic ExprAnnotator getExprAnnotator()
public void preHook(LogicalPlanner.PlanContext context, Stack<Expr> stack, Expr expr) throws PlanningException
BaseAlgebraVisitorpreHook in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode postHook(LogicalPlanner.PlanContext context, Stack<Expr> stack, Expr expr, LogicalNode current) throws PlanningException
BaseAlgebraVisitorpostHook in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitSetSession(LogicalPlanner.PlanContext context, Stack<Expr> stack, SetSession expr) throws PlanningException
visitSetSession in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitSetSession in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitExplain(LogicalPlanner.PlanContext ctx, Stack<Expr> stack, Explain expr) throws PlanningException
visitExplain in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitExplain in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitProjection(LogicalPlanner.PlanContext context, Stack<Expr> stack, Projection projection) throws PlanningException
visitProjection in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitProjection in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic List<Integer> normalize(LogicalPlanner.PlanContext context, Projection projection, ExprNormalizer.ExprNormalizedResult[] normalizedExprList, org.apache.tajo.plan.LogicalPlanner.Matcher matcher) throws PlanningException
PlanningExceptionpublic static void verifyProjectedFields(LogicalPlan.QueryBlock block, Projectable projectable) throws PlanningException
block - QueryBlock which includes the Projectable nodeprojectable - Projectable node to be validPlanningExceptionpublic static void verifyIfEvalNodesCanBeEvaluated(Projectable projectable, EvalNode[] evalNodes) throws PlanningException
PlanningExceptionpublic static void verifyIfTargetsCanBeEvaluated(Schema baseSchema, Projectable projectable) throws PlanningException
PlanningExceptionpublic static void verifyIfColumnCanBeEvaluated(Schema baseSchema, Projectable projectable, Column[] columns) throws PlanningException
PlanningExceptionpublic static void throwCannotEvaluateException(Projectable projectable, String columnName) throws PlanningException
PlanningExceptionpublic LimitNode visitLimit(LogicalPlanner.PlanContext context, Stack<Expr> stack, Limit limit) throws PlanningException
visitLimit in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitLimit in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitSort(LogicalPlanner.PlanContext context, Stack<Expr> stack, Sort sort) throws PlanningException
visitSort in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitSort in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitHaving(LogicalPlanner.PlanContext context, Stack<Expr> stack, Having expr) throws PlanningException
visitHaving in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitHaving in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitGroupBy(LogicalPlanner.PlanContext context, Stack<Expr> stack, Aggregation aggregation) throws PlanningException
visitGroupBy in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitGroupBy in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic SelectionNode visitFilter(LogicalPlanner.PlanContext context, Stack<Expr> stack, Selection selection) throws PlanningException
visitFilter in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitFilter in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitJoin(LogicalPlanner.PlanContext context, Stack<Expr> stack, Join join) throws PlanningException
visitJoin in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitJoin in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitRelationList(LogicalPlanner.PlanContext context, Stack<Expr> stack, RelationList relations) throws PlanningException
visitRelationList in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitRelationList in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic ScanNode visitRelation(LogicalPlanner.PlanContext context, Stack<Expr> stack, Relation expr) throws PlanningException
visitRelation in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitRelation in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic TableSubQueryNode visitTableSubQuery(LogicalPlanner.PlanContext context, Stack<Expr> stack, TablePrimarySubQuery expr) throws PlanningException
visitTableSubQuery in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitTableSubQuery in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitUnion(LogicalPlanner.PlanContext context, Stack<Expr> stack, SetOperation setOperation) throws PlanningException
visitUnion in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitUnion in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitExcept(LogicalPlanner.PlanContext context, Stack<Expr> stack, SetOperation setOperation) throws PlanningException
visitExcept in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitExcept in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitIntersect(LogicalPlanner.PlanContext context, Stack<Expr> stack, SetOperation setOperation) throws PlanningException
visitIntersect in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitIntersect in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitInsert(LogicalPlanner.PlanContext context, Stack<Expr> stack, Insert expr) throws PlanningException
visitInsert in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitInsert in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitCreateDatabase(LogicalPlanner.PlanContext context, Stack<Expr> stack, CreateDatabase expr) throws PlanningException
visitCreateDatabase in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitCreateDatabase in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode visitDropDatabase(LogicalPlanner.PlanContext context, Stack<Expr> stack, DropDatabase expr) throws PlanningException
visitDropDatabase in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitDropDatabase in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic LogicalNode handleCreateTableLike(LogicalPlanner.PlanContext context, CreateTable expr, CreateTableNode createTableNode) throws PlanningException
PlanningExceptionpublic LogicalNode visitCreateTable(LogicalPlanner.PlanContext context, Stack<Expr> stack, CreateTable expr) throws PlanningException
visitCreateTable in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitCreateTable in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic static TajoDataTypes.DataType convertDataType(DataTypeExpr dataType)
public LogicalNode visitDropTable(LogicalPlanner.PlanContext context, Stack<Expr> stack, DropTable dropTable)
visitDropTable in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitDropTable in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>public LogicalNode visitAlterTablespace(LogicalPlanner.PlanContext context, Stack<Expr> stack, AlterTablespace alterTablespace)
visitAlterTablespace in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitAlterTablespace in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>public LogicalNode visitAlterTable(LogicalPlanner.PlanContext context, Stack<Expr> stack, AlterTable alterTable)
visitAlterTable in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitAlterTable in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>public LogicalNode visitTruncateTable(LogicalPlanner.PlanContext context, Stack<Expr> stack, TruncateTable truncateTable) throws PlanningException
visitTruncateTable in interface AlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>visitTruncateTable in class BaseAlgebraVisitor<LogicalPlanner.PlanContext,LogicalNode>PlanningExceptionpublic static boolean checkIfBeEvaluatedAtWindowAgg(EvalNode evalNode, WindowAggNode node)
public static boolean checkIfBeEvaluatedAtGroupBy(EvalNode evalNode, GroupbyNode node)
public static boolean checkIfBeEvaluatedAtJoin(LogicalPlan.QueryBlock block, EvalNode evalNode, JoinNode node, boolean isTopMostJoin)
public static boolean isOuterJoin(JoinType joinType)
public static boolean containsOuterJoin(LogicalPlan.QueryBlock block)
public static boolean checkIfBeEvaluatedAtRelation(LogicalPlan.QueryBlock block, EvalNode evalNode, RelationNode node)
public static boolean checkIfBeEvaluatedAtThis(EvalNode evalNode, LogicalNode node)
Copyright © 2015 Apache Software Foundation. All Rights Reserved.