Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-13773

Rework of the Expression Design

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Table SQL / API
    • Labels:
      None

      Description

      This JIRA addresses several shortcomings of current:
         - New Expressions still use PlannerExpressions to type inference and
      to RexNode. Flnk-planner and blink-planner have a lot of repetitive code
       and logic.
         - Let TableApi and Cacite definitions consistent.
         - Reduce the complexity of Function development.
         - Powerful Function for user.
       
      Key changes can be summarized as follows:
         - Improve the interface of FunctionDefinition.
         - Introduce type inference for built-in functions.
         - Introduce ExpressionConverter to convert Expression to calcite
      RexNode.
         - Remove repetitive code and logic in planners.
       
      Details: https://cwiki.apache.org/confluence/display/FLINK/FLIP-51%3A+Rework+of+the+Expression+Design

        Attachments

        Issue Links

        1.
        Expression DSL use should resolve Expressions in blink Sub-task Resolved Jingsong Lee Actions
        2.
        Refactor ExpressionConverter(RexNodeConverter) in blink Sub-task Resolved Jingsong Lee Actions
        3.
        Introduce new interfaces to BuiltInFunctionDefinition Sub-task Closed Unassigned Actions
        4.
        Introduce sql function wrappers and conversion to ExpressionConverter Sub-task Closed Unassigned   Actions
        5.
        Introduce ExpressionConverter to legacy planner Sub-task Closed Unassigned   Actions
        6.
        Use new Expression in RexNodeToExpressionConverter Sub-task Open Unassigned   Actions
        7.
        Implement type inference for logic functions Sub-task Closed Dawid Wysakowicz   Actions
        8.
        Implement type inference for string functions Sub-task Closed Timo Walther   Actions
        9.
        Implement type inference for math functions Sub-task Closed Timo Walther   Actions
        10.
        Implement type inference for time functions Sub-task Open Unassigned   Actions
        11.
        Implement type inference for other functions Sub-task Open Unassigned   Actions
        12.
        Can not use index to convert FieldReferenceExpression to RexNode Sub-task Open Unassigned   Actions
        13.
        Implement type inference for ROW/ARRAY/MAP constructors Sub-task Closed Dawid Wysakowicz Actions
        14.
        Implement type inference for AS Sub-task Closed Timo Walther   Actions
        15.
        Add a new test base for evaluating expressions Sub-task Closed Timo Walther   Actions
        16.
        Implement type inference for CAST Sub-task Closed Timo Walther   Actions
        17.
        Implement type inference for functions on composite types Sub-task Open Unassigned   Actions
        18.
        Implement type inference for agg functions Sub-task Closed Timo Walther   Actions

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              lzljs3620320 Jingsong Lee

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h 10m
                1h 10m

                  Issue deployment