[
https://issues.apache.org/jira/browse/FLINK-6725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16027808#comment-16027808
]
ASF GitHub Bot commented on FLINK-6725:
---------------------------------------
Github user fhueske commented on the issue:
https://github.com/apache/flink/pull/3993
Hi @shaoxuan-wang and @sunjincheng121,
Ad 2) I think it is OK to have this as a method with a default
implementation. If we choose the contract function design, we have the same
default behavior as the default implementation if the method is not
implemented, so IMO there is not really a difference. Due to the default
implementation, a user does not need to implement the method unless it is
necessary. However in that case, it can be overridden in a safe way with IDE
support. A contract function, does not offer this safety because a user needs
to lookup the exact signature in the documentation.
Ad 3) I think it would indeed make sense to add `getAccumulatorType()` and
`getResultType()` to `AggregateFunction` and return `null` by default. This
would also be more consistent with `ScalarFunction` and `TableFunction`. This
would also help with type and compile safety, because we can enforce the type
of the returned `TypeInformation` as `T` and `ACC` without going through
reflection magic.
> make requiresOver as a contracted method in udagg
> -------------------------------------------------
>
> Key: FLINK-6725
> URL: https://issues.apache.org/jira/browse/FLINK-6725
> Project: Flink
> Issue Type: Improvement
> Components: Table API & SQL
> Reporter: Shaoxuan Wang
> Assignee: Shaoxuan Wang
>
> I realized requiresOver is defined in the udagg interface when I wrote up the
> udagg doc. I would like to put requiresOver as a contract method. This makes
> the entire udagg interface consistently and clean.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)