You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Shaoxuan Wang (JIRA)" <ji...@apache.org> on 2017/07/19 12:16:00 UTC

[jira] [Comment Edited] (FLINK-7194) Add getResultType and getAccumulatorType to AggregateFunction

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

Shaoxuan Wang edited comment on FLINK-7194 at 7/19/17 12:15 PM:
----------------------------------------------------------------

[~fhueske], I am ok with your proposal for the changes to the {{AggregateFunction}}


was (Author: shaoxuanwang):
[~fhueske], I am ok with your proposal for the changes to the AggregateFunction

> Add getResultType and getAccumulatorType to AggregateFunction
> -------------------------------------------------------------
>
>                 Key: FLINK-7194
>                 URL: https://issues.apache.org/jira/browse/FLINK-7194
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>    Affects Versions: 1.4.0
>            Reporter: Fabian Hueske
>
> FLINK-6725 and FLINK-6457 proposed to remove methods with default implementations such as {{getResultType()}}, {{toString()}}, or {{requiresOver()}} from the base classes of user-defined methods (UDF, UDTF, UDAGG) and instead offer them as contract methods which are dynamically 
> In PR [#3993|https://github.com/apache/flink/pull/3993] I argued that these methods have a fixed signature (in contrast to the {{eval()}}, {{accumulate()}} and {{retract()}} methods) and should be kept in the classes. For users that don't need these methods, this doesn't make a difference because the methods are not abstract and have a default implementation. For users that need to override the methods it makes a difference, because they get IDE and compiler support when overriding them and the cannot get the signature wrong.
> Consequently, I propose to add {{getResultType()}} and {{getAccumulatorType()}} as methods with default implementation to {{AggregateFunction}}. This will make the interface of {{AggregateFunction}} more consistent with {{ScalarFunction}} and {{TableFunction}}.
> What do you think [~shaoxuan], [~RuidongLi] and [~jark]?



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