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

Rework of the Expression Design

    XMLWordPrintableJSON

Details

    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
          2.
          Refactor ExpressionConverter(RexNodeConverter) in blink Sub-task Resolved Jingsong Lee
          3.
          Introduce new interfaces to BuiltInFunctionDefinition Sub-task Closed Unassigned
          4.
          Introduce sql function wrappers and conversion to ExpressionConverter Sub-task Closed Unassigned  
          5.
          Introduce ExpressionConverter to legacy planner Sub-task Closed Unassigned  
          6.
          Use new Expression in RexNodeToExpressionConverter Sub-task Closed Unassigned  
          7.
          Implement type inference for logic functions Sub-task Closed Dawid Wysakowicz  
          8.
          Implement type inference for string functions Sub-task Closed Timo Walther  
          9.
          Implement type inference for math functions Sub-task Closed Timo Walther  
          10.
          Can not use index to convert FieldReferenceExpression to RexNode Sub-task Closed Unassigned  
          11.
          Implement type inference for ROW/ARRAY/MAP constructors Sub-task Closed Dawid Wysakowicz
          12.
          Implement type inference for AS Sub-task Closed Timo Walther  
          13.
          Add a new test base for evaluating expressions Sub-task Closed Timo Walther  
          14.
          Implement type inference for CAST Sub-task Closed Timo Walther  
          15.
          Implement type inference for agg functions Sub-task Closed Timo Walther  
          16.
          Implement type inference for time functions Sub-task Closed Francesco Guardiani  
          17.
          Implement type inference for functions on composite types Sub-task Closed Dawid Wysakowicz  
          18.
          Implement type inference for other functions Sub-task Closed Francesco Guardiani  
          19.
          Remove PlannerExpression and related Sub-task Closed Dawid Wysakowicz  
          20.
          Remove old expression stack leftovers for time functions Sub-task Closed Dawid Wysakowicz  
          21.
          Implement type inference for Over function Sub-task Closed Dawid Wysakowicz  
          22.
          Implement type inference for window properties functions Sub-task Closed Dawid Wysakowicz  
          23.
          Implement type inference for reinterpret_cast function Sub-task Closed Dawid Wysakowicz  
          24.
          Port PROCTIME/ROWTIME functions to the new inference stack Sub-task Closed Dawid Wysakowicz  
          25.
          Implement type inference for IN function Sub-task Closed Dawid Wysakowicz  
          26.
          Implement type inference for order(asc/desc) function Sub-task Closed Dawid Wysakowicz  
          27.
          Implement type inference for Agg functions Sub-task Closed Dawid Wysakowicz  

          Activity

            People

              dwysakowicz Dawid Wysakowicz
              lzljs3620320 Jingsong Lee
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

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