public class ExprAnnotator extends BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>
ExprAnnotator makes an annotated expression called EvalNode from an
Expr. It visits descendants recursively from a given expression, and finally
it returns an EvalNode.| Modifier and Type | Field and Description |
|---|---|
static Set<String> |
WINDOW_FUNCTIONS |
| Constructor and Description |
|---|
ExprAnnotator(CatalogService catalog) |
postHook, preHook, visit, visitAlterTable, visitAlterTablespace, visitCreateDatabase, visitCreateTable, visitDropDatabase, visitDropTable, visitExcept, visitExplain, visitFilter, visitGroupBy, visitHaving, visitInsert, visitIntersect, visitJoin, visitLimit, visitProjection, visitQualifiedAsterisk, visitRelation, visitRelationList, visitScalarSubQuery, visitSetSession, visitSimpleTableSubQuery, visitSort, visitTableSubQuery, visitTruncateTable, visitUnionpublic ExprAnnotator(CatalogService catalog)
public EvalNode createEvalNode(LogicalPlanner.PlanContext planContext, Expr expr, NameResolvingMode colRsvLevel) throws PlanningException
PlanningExceptionpublic static void assertEval(boolean condition,
String message)
throws PlanningException
PlanningExceptionpublic EvalNode visitAnd(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitAnd in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitAnd in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitOr(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitOr in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitOr in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitNot(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, NotExpr expr) throws PlanningException
visitNot in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitNot in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitEquals(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitEquals in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitEquals in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitNotEquals(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitNotEquals in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitNotEquals in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitLessThan(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitLessThan in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitLessThan in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitLessThanOrEquals(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitLessThanOrEquals in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitLessThanOrEquals in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitGreaterThan(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitGreaterThan in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitGreaterThan in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitGreaterThanOrEquals(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitGreaterThanOrEquals in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitGreaterThanOrEquals in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitCommonComparison(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
PlanningExceptionpublic EvalNode visitBetween(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BetweenPredicate between) throws PlanningException
visitBetween in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitBetween in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitCaseWhen(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, CaseWhenPredicate caseWhen) throws PlanningException
visitCaseWhen in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitCaseWhen in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitIsNullPredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, IsNullPredicate expr) throws PlanningException
visitIsNullPredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitIsNullPredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitInPredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, InPredicate expr) throws PlanningException
visitInPredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitInPredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitValueListExpr(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, ValueListExpr expr) throws PlanningException
visitValueListExpr in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitValueListExpr in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitExistsPredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, ExistsPredicate expr) throws PlanningException
visitExistsPredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitExistsPredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitLikePredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, PatternMatchPredicate expr) throws PlanningException
visitLikePredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitLikePredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitSimilarToPredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, PatternMatchPredicate expr) throws PlanningException
visitSimilarToPredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitSimilarToPredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitRegexpPredicate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, PatternMatchPredicate expr) throws PlanningException
visitRegexpPredicate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitRegexpPredicate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitConcatenate(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitConcatenate in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitConcatenate in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitPlus(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitPlus in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitPlus in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitMinus(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitMinus in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitMinus in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitMultiply(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitMultiply in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitMultiply in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitDivide(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitDivide in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitDivide in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitModular(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, BinaryOperator expr) throws PlanningException
visitModular in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitModular in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitSign(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, SignedExpr expr) throws PlanningException
visitSign in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitSign in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitColumnReference(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, ColumnReferenceExpr expr) throws PlanningException
visitColumnReference in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitColumnReference in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitTargetExpr(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, NamedExpr expr) throws PlanningException
visitTargetExpr in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitTargetExpr in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitFunction(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, FunctionExpr expr) throws PlanningException
visitFunction in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitFunction in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitCountRowsFunction(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, CountRowsFunctionExpr expr) throws PlanningException
visitCountRowsFunction in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitCountRowsFunction in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitGeneralSetFunction(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, GeneralSetFunctionExpr setFunction) throws PlanningException
visitGeneralSetFunction in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitGeneralSetFunction in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitWindowFunction(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, WindowFunctionExpr windowFunc) throws PlanningException
visitWindowFunction in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitWindowFunction in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitDataType(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, DataTypeExpr expr) throws PlanningException
visitDataType in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitDataType in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitCastExpr(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, CastExpr expr) throws PlanningException
visitCastExpr in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitCastExpr in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitLiteral(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, LiteralValue expr) throws PlanningException
visitLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitNullLiteral(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, NullLiteral expr) throws PlanningException
visitNullLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitNullLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitDateLiteral(org.apache.tajo.plan.ExprAnnotator.Context context, Stack<Expr> stack, DateLiteral expr) throws PlanningException
visitDateLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitDateLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitTimestampLiteral(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, TimestampLiteral expr) throws PlanningException
visitTimestampLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitTimestampLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitIntervalLiteral(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, IntervalLiteral expr) throws PlanningException
visitIntervalLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitIntervalLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic EvalNode visitTimeLiteral(org.apache.tajo.plan.ExprAnnotator.Context ctx, Stack<Expr> stack, TimeLiteral expr) throws PlanningException
visitTimeLiteral in interface AlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>visitTimeLiteral in class BaseAlgebraVisitor<org.apache.tajo.plan.ExprAnnotator.Context,EvalNode>PlanningExceptionpublic static int[] dateToIntArray(String years, String months, String days) throws PlanningException
PlanningExceptionpublic static int[] timeToIntArray(String hours, String minutes, String seconds, String fractionOfSecond) throws PlanningException
PlanningExceptionCopyright © 2015 Apache Software Foundation. All Rights Reserved.