Dian Fu created FLINK-10958: ------------------------------- Summary: 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
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)