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

Add a simplified UDF type extraction

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Table SQL / API
    • 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 scalar functions Sub-task Closed Timo Walther  
          23.
          Support the new type inference in Scala Table API table functions Sub-task Closed Timo Walther  
          24.
          Support the new type inference in Scala Table API aggregate functions Sub-task Open Timo Walther  
          25.
          Update test utilities to FLIP-65 Sub-task Open Unassigned  
          26.
          Use the new type inference for hive udf Sub-task Closed Rui Li  
          27.
          Use the new type inference for hive udtf Sub-task Closed luoyuxia  
          28.
          Use the new type inference for hive udaf Sub-task Closed luoyuxia  
          29.
          Support new type inference for Table#flatMap Sub-task Closed Timo Walther  
          30.
          Support implicit conversions of rows Sub-task Closed Timo Walther  
          31.
          Support @DataTypeHint for TableFunction output types Sub-task Closed Timo Walther  
          32.
          Update LookupTableSource to the new type system Sub-task Closed Timo Walther  
          33.
          Make implementing a built-in function straightforward Sub-task Closed Timo Walther  
          34.
          Add possibility to call built-in functions in SpecializedFunction Sub-task Closed Timo Walther  
          35.
          Overloaded aggregate functions cause converter errors Sub-task Closed Timo Walther  
          36.
          Drop old user-defined function stack Sub-task Open Unassigned  
          37.
          Use upper case name for all BuiltInFunctionDefinitions Sub-task Open Unassigned  
          38.
          TableEnvironment.createTemporarySystemFunction cause NPE when using leftOuterLateralJoin Sub-task Open Unassigned  
          39.
          Update max aggregate functions to new type system Sub-task Open Unassigned  

          Activity

            People

              twalthr Timo Walther
              twalthr Timo Walther
              Votes:
              0 Vote for this issue
              Watchers:
              14 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