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

Add a simplified UDF type extraction

    XMLWordPrintableJSON

    Details

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

      Description

      Currently, the input, accumulator, and output types of UDFs are partially defined within an UDF and outside of the UDF in language-specific table environments (Scala vs. Java). This makes UDFs environment-dependent and not modular. It also blocks the unified org.apache.flink.table.api.TableEnvironment.

      A better approach is to perform the type extraction Table API specific within the UDF and let users add additional information through UDF annotations.

      An exact annotation and extraction design will follow.

        Attachments

          Issue Links

          1.
          Add a utility for creating data types via reflection Sub-task Closed Timo Walther
          2.
          Add interfaces for input type inference Sub-task Closed Timo Walther
          3.
          Merge InputTypeStrategy and InputTypeValidator Sub-task Closed Timo Walther
          4.
          Add a utility for creating type inference logic via reflection Sub-task Closed Timo Walther
          5.
          Map Flink's TypeInference to Calcite's interfaces Sub-task Closed Timo Walther
          6.
          Implement a DataTypeLookup Sub-task Closed Timo Walther
          7.
          Expose the new type inference for scalar functions Sub-task Closed Timo Walther
          8.
          Expose the new type inference for table functions Sub-task Closed Timo Walther
          9.
          Avoid unnecessary casting in TypeInferenceOperandChecker Sub-task Resolved Timo Walther
          10.
          Support new type inference for temporal table functions Sub-task Closed Timo Walther
          11.
          Ensure deterministic type inference extraction Sub-task Closed Timo Walther  
          12.
          Use new type inference for SQL table and scalar functions Sub-task Closed Timo Walther  
          13.
          Add documentation for new scalar/table functions Sub-task Closed Timo Walther  
          14.
          Scala varargs cause exception for new inference Sub-task Closed Timo Walther  
          15.
          Update UNNEST to new type system Sub-task Closed Timo Walther  
          16.
          Invalid error message for overloaded methods with same parameter name Sub-task Closed Timo Walther  
          17.
          Expose the new type inference for aggregate functions Sub-task Closed Timo Walther  
          18.
          Update internal aggregate functions to new type system Sub-task Closed Timo Walther  
          19.
          Use new type inference for SQL DDL of aggregate functions Sub-task Closed Timo Walther  
          20.
          Update documentation about user-defined aggregate functions Sub-task Closed Timo Walther  
          21.
          Map views are deserialized multiple times Sub-task Closed Timo Walther  
          22.
          Support the new type inference in Scala Table API functions Sub-task Open Timo Walther  
          23.
          Update test utilities to FLIP-65 Sub-task Open CaoZhen  
          24.
          Use the new type inference for hive udf Sub-task Closed Rui Li  
          25.
          Use the new type inference for hive udtf Sub-task Open Rui Li  
          26.
          Use the new type inference for hive udaf Sub-task Open Unassigned  
          27.
          Support new type inference for Table#flatMap Sub-task Open Unassigned  
          28.
          Support implicit conversions of rows Sub-task Closed Timo Walther  
          29.
          Support @DataTypeHint for TableFunction output types Sub-task Closed Timo Walther  
          30.
          Update LookupTableSource to the new type system Sub-task Closed Timo Walther  
          31.
          Make implementing a built-in function straightforward Sub-task Closed Timo Walther  
          32.
          Overloaded aggregate functions cause converter errors Sub-task Closed Timo Walther  
          33.
          Drop old user-defined function stack Sub-task Open Timo Walther  

            Activity

              People

              • Assignee:
                twalthr Timo Walther
                Reporter:
                twalthr Timo Walther
              • Votes:
                0 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3.5h
                  3.5h