Class OutputWidthVisitor
java.lang.Object
org.apache.drill.common.expression.visitors.AbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
org.apache.drill.exec.expr.AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
org.apache.drill.exec.physical.impl.project.OutputWidthVisitor
- All Implemented Interfaces:
ExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException>
public class OutputWidthVisitor
extends AbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState,RuntimeException>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitFixedLenExpr(OutputWidthExpression.FixedLenExpr fixedLenExpr, OutputWidthVisitorState state) visitFunctionCallExpr(OutputWidthExpression.FunctionCallExpr functionCallExpr, OutputWidthVisitorState state) Converts aOutputWidthExpression.FunctionCallExprto aOutputWidthExpression.FixedLenExprby passing the the args of the function to the width calculator for this function.visitFunctionHolderExpression(FunctionHolderExpression holderExpr, OutputWidthVisitorState state) Handles aFunctionHolderExpression.visitIfElseWidthExpr(OutputWidthExpression.IfElseWidthExpr ifElseWidthExpr, OutputWidthVisitorState state) Converts theOutputWidthExpression.IfElseWidthExprto aOutputWidthExpression.FixedLenExprby taking the max of the if-expr-width and the else-expr-width.visitIfExpression(IfExpression ifExpression, OutputWidthVisitorState state) Records theIfExpressionas aOutputWidthExpression.IfElseWidthExpr.visitNullConstant(TypedNullConstant nullConstant, OutputWidthVisitorState state) visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, OutputWidthVisitorState state) visitUnknown(LogicalExpression logicalExpression, OutputWidthVisitorState state) Handles implementation-specific expressions not known to the visitor structure.Records a variable width read expression as aOutputWidthExpression.VarLenReadExpr.visitValueVectorWriteExpression(ValueVectorWriteExpression writeExpr, OutputWidthVisitorState state) Records a variable width write expression.visitVarDecimalConstant(ValueExpressions.VarDecimalExpression varDecimalExpression, OutputWidthVisitorState state) visitVarLenReadExpr(OutputWidthExpression.VarLenReadExpr varLenReadExpr, OutputWidthVisitorState state) Converts theOutputWidthExpression.VarLenReadExprto aOutputWidthExpression.FixedLenExprby getting the size for the corresponding column from the RecordBatchSizer.Methods inherited from class org.apache.drill.exec.expr.AbstractExecExprVisitor
visitUnknownMethods inherited from class org.apache.drill.common.expression.visitors.AbstractExprVisitor
visitAnyValueExpression, visitBooleanConstant, visitBooleanOperator, visitCastExpression, visitConvertExpression, visitDateConstant, visitDecimal18Constant, visitDecimal28Constant, visitDecimal38Constant, visitDecimal9Constant, visitDoubleConstant, visitFloatConstant, visitFunctionCall, visitIntConstant, visitIntervalDayConstant, visitIntervalYearConstant, visitLongConstant, visitNullExpression, visitParameter, visitSchemaPath, visitTimeConstant, visitTimeStampConstant, visitTypedFieldExpr
-
Constructor Details
-
OutputWidthVisitor
public OutputWidthVisitor()
-
-
Method Details
-
visitVarDecimalConstant
public OutputWidthExpression visitVarDecimalConstant(ValueExpressions.VarDecimalExpression varDecimalExpression, OutputWidthVisitorState state) throws RuntimeException - Specified by:
visitVarDecimalConstantin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitVarDecimalConstantin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitIfExpression
public OutputWidthExpression visitIfExpression(IfExpression ifExpression, OutputWidthVisitorState state) throws RuntimeException Records theIfExpressionas aOutputWidthExpression.IfElseWidthExpr. IfElseWidthExpr will be reduced to aOutputWidthExpression.FixedLenExprby taking the max of the if-expr-width and the else-expr-width.- Specified by:
visitIfExpressionin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitIfExpressionin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitFunctionHolderExpression
public OutputWidthExpression visitFunctionHolderExpression(FunctionHolderExpression holderExpr, OutputWidthVisitorState state) throws RuntimeException Handles aFunctionHolderExpression. Functions that produce fixed-width output are trivially converted to aOutputWidthExpression.FixedLenExpr. For functions that produce variable width output, the output width calculator annotation is looked-up and recorded in aOutputWidthExpression.FunctionCallExpr. This calculator will later be used to convert the FunctionCallExpr to aOutputWidthExpression.FixedLenExprexpression- Specified by:
visitFunctionHolderExpressionin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitFunctionHolderExpressionin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitValueVectorWriteExpression
public OutputWidthExpression visitValueVectorWriteExpression(ValueVectorWriteExpression writeExpr, OutputWidthVisitorState state) throws RuntimeException Records a variable width write expression. This will be converted to aOutputWidthExpression.FixedLenExprexpression by walking the tree of expression attached to the write expression.- Overrides:
visitValueVectorWriteExpressionin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitValueVectorReadExpression
public OutputWidthExpression visitValueVectorReadExpression(ValueVectorReadExpression readExpr, OutputWidthVisitorState state) throws RuntimeException Records a variable width read expression as aOutputWidthExpression.VarLenReadExpr. This will be converted to aOutputWidthExpression.FixedLenExprexpression by getting the size for the corresponding column from theRecordBatchSizer.- Overrides:
visitValueVectorReadExpressionin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitQuotedStringConstant
public OutputWidthExpression visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, OutputWidthVisitorState state) throws RuntimeException - Specified by:
visitQuotedStringConstantin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitQuotedStringConstantin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitUnknown
public OutputWidthExpression visitUnknown(LogicalExpression logicalExpression, OutputWidthVisitorState state) Description copied from class:AbstractExprVisitorHandles implementation-specific expressions not known to the visitor structure. Since there are no "visitFoo" methods for these "unknown" expressions, subclassses should use the functionally-equivalentinstanceofapproach to parse out these "unknown" expressions.- Specified by:
visitUnknownin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitUnknownin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException>
-
visitNullConstant
public OutputWidthExpression visitNullConstant(TypedNullConstant nullConstant, OutputWidthVisitorState state) throws RuntimeException - Specified by:
visitNullConstantin interfaceExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Overrides:
visitNullConstantin classAbstractExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitFixedLenExpr
public OutputWidthExpression visitFixedLenExpr(OutputWidthExpression.FixedLenExpr fixedLenExpr, OutputWidthVisitorState state) throws RuntimeException - Overrides:
visitFixedLenExprin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitVarLenReadExpr
public OutputWidthExpression visitVarLenReadExpr(OutputWidthExpression.VarLenReadExpr varLenReadExpr, OutputWidthVisitorState state) throws RuntimeException Converts theOutputWidthExpression.VarLenReadExprto aOutputWidthExpression.FixedLenExprby getting the size for the corresponding column from the RecordBatchSizer.- Overrides:
visitVarLenReadExprin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitFunctionCallExpr
public OutputWidthExpression visitFunctionCallExpr(OutputWidthExpression.FunctionCallExpr functionCallExpr, OutputWidthVisitorState state) throws RuntimeException Converts aOutputWidthExpression.FunctionCallExprto aOutputWidthExpression.FixedLenExprby passing the the args of the function to the width calculator for this function.- Overrides:
visitFunctionCallExprin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-
visitIfElseWidthExpr
public OutputWidthExpression visitIfElseWidthExpr(OutputWidthExpression.IfElseWidthExpr ifElseWidthExpr, OutputWidthVisitorState state) throws RuntimeException Converts theOutputWidthExpression.IfElseWidthExprto aOutputWidthExpression.FixedLenExprby taking the max of the if-expr-width and the else-expr-width.- Overrides:
visitIfElseWidthExprin classAbstractExecExprVisitor<OutputWidthExpression,OutputWidthVisitorState, RuntimeException> - Throws:
RuntimeException
-