public class OutputWidthVisitor extends AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
| Constructor and Description |
|---|
OutputWidthVisitor() |
visitUnknownvisitAnyValueExpression, visitBooleanConstant, visitBooleanOperator, visitCastExpression, visitConvertExpression, visitDateConstant, visitDecimal18Constant, visitDecimal28Constant, visitDecimal38Constant, visitDecimal9Constant, visitDoubleConstant, visitFloatConstant, visitFunctionCall, visitIntConstant, visitIntervalDayConstant, visitIntervalYearConstant, visitLongConstant, visitNullExpression, visitParameter, visitSchemaPath, visitTimeConstant, visitTimeStampConstant, visitTypedFieldExprpublic OutputWidthExpression visitVarDecimalConstant(ValueExpressions.VarDecimalExpression varDecimalExpression, OutputWidthVisitorState state) throws RuntimeException
visitVarDecimalConstant in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>visitVarDecimalConstant in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>RuntimeExceptionpublic 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>RuntimeExceptionpublic 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>RuntimeExceptionpublic 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>RuntimeExceptionpublic 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>RuntimeExceptionpublic OutputWidthExpression visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, OutputWidthVisitorState state) throws RuntimeException
visitQuotedStringConstant in interface ExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>visitQuotedStringConstant in class AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>RuntimeExceptionpublic OutputWidthExpression visitUnknown(LogicalExpression logicalExpression, OutputWidthVisitorState state)
AbstractExprVisitorinstanceof 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>RuntimeExceptionpublic OutputWidthExpression visitFixedLenExpr(OutputWidthExpression.FixedLenExpr fixedLenExpr, OutputWidthVisitorState state) throws RuntimeException
visitFixedLenExpr in class AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>RuntimeExceptionpublic 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>RuntimeExceptionpublic 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>RuntimeExceptionpublic 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>RuntimeExceptionCopyright © 2021 The Apache Software Foundation. All rights reserved.