[ https://issues.apache.org/jira/browse/FLINK-10958?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated FLINK-10958: ----------------------------------- Labels: pull-request-available (was: ) > Add overload support for user defined function > ----------------------------------------------- > > Key: FLINK-10958 > URL: https://issues.apache.org/jira/browse/FLINK-10958 > Project: Flink > Issue Type: Task > Components: Table API & SQL > Reporter: Dian Fu > Assignee: Dian Fu > Priority: Major > Labels: pull-request-available > > Currently overload is not supported in user defined function and given the > following UDF > {code:java} > class Func21 extends ScalarFunction { > def eval(p: People): String = { > p.name > } > def eval(p: Student): String = { > "student#" + p.name > } > } > class People(val name: String) > class Student(name: String) extends People(name) > class GraduatedStudent(name: String) extends Student(name) > {code} > Queries such as the following will compile failed with error msg "Found > multiple 'eval' methods which match the signature." > > {code:java} > val udf = new Func21 > val table = ... > table.select(udf(new GraduatedStudent("test"))) {code} > That's because overload is not supported in user defined function currently. > I think it will make sense to support overload following the java language > specification in section > [15.2|https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12]. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)