[ 
https://issues.apache.org/jira/browse/FLINK-10958?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16695704#comment-16695704
 ] 

ASF GitHub Bot commented on FLINK-10958:
----------------------------------------

sunjincheng121 commented on a change in pull request #7152: [FLINK-10958] 
[table] Add overload support for user defined function
URL: https://github.com/apache/flink/pull/7152#discussion_r235650315
 
 

 ##########
 File path: 
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/expressions/utils/userDefinedScalarFunctions.scala
 ##########
 @@ -310,6 +310,16 @@ class Func20 extends ScalarFunction {
   }
 }
 
+object Func21 extends ScalarFunction {
+  def eval(p: People): String = {
+    p.name
+  }
+
+  def eval(p: Student): String = {
 
 Review comment:
   If change the Test case `mutable.MutableList[Student]` to 
`mutable.MutableList[GraduatedStudent]` we can keep this eval method. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> 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)

Reply via email to