flink-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabian Hueske (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLINK-7194) Add getResultType and getAccumulatorType to AggregateFunction
Date Fri, 14 Jul 2017 10:06:03 GMT
Fabian Hueske created FLINK-7194:

             Summary: 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

View raw message