[ https://issues.apache.org/jira/browse/FLINK-12711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated FLINK-12711: ----------------------------------- Labels: pull-request-available (was: ) > Separate function implementation and definition > ----------------------------------------------- > > Key: FLINK-12711 > URL: https://issues.apache.org/jira/browse/FLINK-12711 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API > Reporter: Timo Walther > Assignee: Timo Walther > Priority: Major > Labels: pull-request-available > > This issue continues the work that was started in FLINK-11449. It > distinguishes between function with implementation (UDFs) and function with > no implementation. > The rough design looks as follows: > {noformat} > 1. `interface FunctionDefinition` > --> general interface for describing a function > --> goal: separation of runtime and planning/optimization > --> long-term methods: `getKind()` (aggregate, scalar, table), > `getTypeInference()` > 2. `interface UserDefinedFunctionDefinition extends FunctionDefinition` > --> interface for describing a function with implementation > --> methods: `createImplementation(): UserDefinedFunction` > --> default: getTypeInference() = Util.DEFAULT_INFERENCE // future work > 3. `class BuiltInFunctionDefinition implements FunctionDefinition` > --> class for describing a function where the planner provides an > implementation > --> methods: `getName(): String` > 4. Add `getKind` to `AggregateFunction`, `ScalarFunction`, `TableFunction` > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)