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

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

Github user sunjincheng121 commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4200#discussion_r124439457
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/UserDefinedFunction.scala
 ---
    @@ -40,6 +40,12 @@ abstract class UserDefinedFunction extends Serializable {
       @throws(classOf[Exception])
       def close(): Unit = {}
     
    +  /**
    +    * @return true iff a call to this function is guaranteed to always 
return
    +    *         the same result given the same parameters; true is assumed 
by default
    +    */
    +  def isDeterministic: Boolean = true
    --- End diff --
    
    I suggest explain when user need to overwrite the method, what the impact 
if not overwrite the method. 


> Expose isDeterministic interface to ScalarFunction and TableFunction
> --------------------------------------------------------------------
>
>                 Key: FLINK-7014
>                 URL: https://issues.apache.org/jira/browse/FLINK-7014
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>            Reporter: Ruidong Li
>            Assignee: Ruidong Li
>
> Currently, the `isDeterministic` method of implementations of `SqlFuntion` 
> are always returning true, which cause inappropriate optimization in Calcite, 
> such as taking user's stateful UDF as a pure functional procedure. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to