Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • External lib registration. The requirements come from the hive integration that enhances the adoption of Flink batch. HQL supports syntax like:

    CREATE FUNCTION addfunc AS 'com.example.hiveserver2.udf.add' USING JAR 'hdfs:///path/to/jar'


  • Language distinction. Due to bytecode language specifics in Scala, there are some limitations to extract type information from scala function. At

           At the same time, support python UDF in table runtime is another ongoing effort. Thus, the SQL syntax needs to consider supporting multiple languages.

           Mysql create function syntax support language in this way

CREATE FUNCTION hello (s CHAR(20))RETURNS CHAR(50)DETERMINISTIC RETURN CONCAT('Hello, ',s,'!')LANGUAGE SQL


  • Temporary Function Support. FLIP-57 proposes to distinguish temporary and non-temporary functions for both catalog and system. As Temporary

           As a temporary function will be registered only for the current session. It requires a flag from DDL to distinguish the function resolution order.

 CREATE TEMPORARY FUNCTION addfunc AS 'com.example.hiveserver2.udf.add' USING JAR 'hdfs:///path/to/jar'


  • Function Qualifier. Functions identifiers resolution consider object scopes whether in particular catalog, database or just current catalog and database.

    Thus, all of the function DDL needs to support 3-part path.

    CREATE FUNCTION catalog1.addfunc AS 'com.example.hiveserver2.udf.add' LANGUAGE JVM


...