public class OutputWidthVisitor extends AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
Constructor and Description |
---|
OutputWidthVisitor() |
visitUnknown
visitAnyValueExpression, visitBooleanConstant, visitBooleanOperator, visitCastExpression, visitConvertExpression, visitDateConstant, visitDecimal18Constant, visitDecimal28Constant, visitDecimal38Constant, visitDecimal9Constant, visitDoubleConstant, visitFloatConstant, visitFunctionCall, visitIntConstant, visitIntervalDayConstant, visitIntervalYearConstant, visitLongConstant, visitNullExpression, visitParameter, visitSchemaPath, visitTimeConstant, visitTimeStampConstant, visitTypedFieldExpr
public OutputWidthExpression visitVarDecimalConstant(ValueExpressions.VarDecimalExpression varDecimalExpression, OutputWidthVisitorState state) throws RuntimeException
visitVarDecimalConstant
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitVarDecimalConstant
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitIfExpression(IfExpression ifExpression, OutputWidthVisitorState state) throws RuntimeException
IfExpression
as a OutputWidthExpression.IfElseWidthExpr
.
IfElseWidthExpr will be reduced to a OutputWidthExpression.FixedLenExpr
by taking the max
of the if-expr-width and the else-expr-width.visitIfExpression
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitIfExpression
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitFunctionHolderExpression(FunctionHolderExpression holderExpr, OutputWidthVisitorState state) throws RuntimeException
FunctionHolderExpression
. Functions that produce
fixed-width output are trivially converted to a OutputWidthExpression.FixedLenExpr
. For
functions that produce variable width output, the output width calculator
annotation is looked-up and recorded in a OutputWidthExpression.FunctionCallExpr
. This
calculator will later be used to convert the FunctionCallExpr to a
OutputWidthExpression.FixedLenExpr
expressionvisitFunctionHolderExpression
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitFunctionHolderExpression
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitValueVectorWriteExpression(ValueVectorWriteExpression writeExpr, OutputWidthVisitorState state) throws RuntimeException
OutputWidthExpression.FixedLenExpr
expression by walking the tree of expression attached
to the write expression.visitValueVectorWriteExpression
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitValueVectorReadExpression(ValueVectorReadExpression readExpr, OutputWidthVisitorState state) throws RuntimeException
OutputWidthExpression.VarLenReadExpr
. This
will be converted to a OutputWidthExpression.FixedLenExpr
expression by getting the size
for the corresponding column from the RecordBatchSizer
.visitValueVectorReadExpression
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, OutputWidthVisitorState state) throws RuntimeException
visitQuotedStringConstant
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitQuotedStringConstant
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitUnknown(LogicalExpression logicalExpression, OutputWidthVisitorState state)
AbstractExprVisitor
instanceof
approach to parse out these "unknown"
expressions.visitUnknown
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitUnknown
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
public OutputWidthExpression visitNullConstant(TypedNullConstant nullConstant, OutputWidthVisitorState state) throws RuntimeException
visitNullConstant
in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
visitNullConstant
in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitFixedLenExpr(OutputWidthExpression.FixedLenExpr fixedLenExpr, OutputWidthVisitorState state) throws RuntimeException
visitFixedLenExpr
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitVarLenReadExpr(OutputWidthExpression.VarLenReadExpr varLenReadExpr, OutputWidthVisitorState state) throws RuntimeException
OutputWidthExpression.VarLenReadExpr
to a OutputWidthExpression.FixedLenExpr
by getting
the size for the corresponding column from the RecordBatchSizer.visitVarLenReadExpr
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitFunctionCallExpr(OutputWidthExpression.FunctionCallExpr functionCallExpr, OutputWidthVisitorState state) throws RuntimeException
OutputWidthExpression.FunctionCallExpr
to a OutputWidthExpression.FixedLenExpr
by passing
the the args of the function to the width calculator for this function.visitFunctionCallExpr
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
public OutputWidthExpression visitIfElseWidthExpr(OutputWidthExpression.IfElseWidthExpr ifElseWidthExpr, OutputWidthVisitorState state) throws RuntimeException
OutputWidthExpression.IfElseWidthExpr
to a OutputWidthExpression.FixedLenExpr
by taking
the max of the if-expr-width and the else-expr-width.visitIfElseWidthExpr
in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
RuntimeException
Copyright © 1970 The Apache Software Foundation. All rights reserved.