[ https://issues.apache.org/jira/browse/DRILL-7503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010732#comment-17010732 ]
ASF GitHub Bot commented on DRILL-7503: --------------------------------------- ihuzenko commented on pull request #1944: DRILL-7503: Refactor the project operator URL: https://github.com/apache/drill/pull/1944#discussion_r364210835 ########## File path: exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/OutputWidthVisitor.java ########## @@ -43,238 +43,213 @@ import java.util.ArrayList; -public class OutputWidthVisitor extends AbstractExecExprVisitor<OutputWidthExpression, OutputWidthVisitorState, - RuntimeException> { - - @Override - public OutputWidthExpression visitVarDecimalConstant(VarDecimalExpression varDecimalExpression, - OutputWidthVisitorState state) throws RuntimeException { - Preconditions.checkArgument(varDecimalExpression.getMajorType().hasPrecision()); - return new FixedLenExpr(varDecimalExpression.getMajorType().getPrecision()); - } - - - /** - * - * Records the {@link IfExpression} as a {@link IfElseWidthExpr}. IfElseWidthExpr will be reduced to - * a {@link FixedLenExpr} by taking the max of the if-expr-width and the else-expr-width. - * - * @param ifExpression - * @param state - * @return IfElseWidthExpr - * @throws RuntimeException - */ - @Override - public OutputWidthExpression visitIfExpression(IfExpression ifExpression, OutputWidthVisitorState state) - throws RuntimeException { - IfExpression.IfCondition condition = ifExpression.ifCondition; - LogicalExpression ifExpr = condition.expression; - LogicalExpression elseExpr = ifExpression.elseExpression; - - OutputWidthExpression ifWidthExpr = ifExpr.accept(this, state); - OutputWidthExpression elseWidthExpr = null; - if (elseExpr != null) { - elseWidthExpr = elseExpr.accept(this, state); - } - return new IfElseWidthExpr(ifWidthExpr, elseWidthExpr); +public class OutputWidthVisitor + extends AbstractExecExprVisitor<OutputWidthExpression, + OutputWidthVisitorState, + RuntimeException> { + + @Override + public OutputWidthExpression visitVarDecimalConstant(VarDecimalExpression varDecimalExpression, + OutputWidthVisitorState state) throws RuntimeException { + Preconditions.checkArgument(varDecimalExpression.getMajorType().hasPrecision()); + return new FixedLenExpr(varDecimalExpression.getMajorType().getPrecision()); + } + + /** + * Review comment: ```suggestion ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Refactor project operator > ------------------------- > > Key: DRILL-7503 > URL: https://issues.apache.org/jira/browse/DRILL-7503 > Project: Apache Drill > Issue Type: Improvement > Affects Versions: 1.17.0 > Reporter: Paul Rogers > Assignee: Paul Rogers > Priority: Minor > Fix For: 1.18.0 > > > Work on another ticket revealed that the Project operator ("record batch") > has grown quite complex. The setup phase lives in the operator as one huge > function. The function combines the "logical" tasks of working out the > projection expressions and types, the code gen for those expressions, and the > physical setup of vectors. > The refactoring breaks up the logic so that it is easier to focus on the > specific bits of interest. -- This message was sent by Atlassian Jira (v8.3.4#803005)