[
https://issues.apache.org/jira/browse/FLINK-5956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15895906#comment-15895906
]
ASF GitHub Bot commented on FLINK-5956:
---------------------------------------
Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/3470#discussion_r104298517
--- Diff:
flink-libraries/flink-table/src/test/scala/org/apache/flink/table/functions/aggfunctions/AggFunctionTestBase.scala
---
@@ -36,14 +36,23 @@ abstract class AggFunctionTestBase[T] {
def aggregator: AggregateFunction[T]
+ def ifSupportRetraction: Boolean = true
+
@Test
- // test aggregate functions without partial merge
- def testAggregateWithoutMerge(): Unit = {
+ // test aggregate and retract functions without partial merge
+ def testAccumulateAndRetractWithoutMerge(): Unit = {
// iterate over input sets
for ((vals, expected) <- inputValueSets.zip(expectedResults)) {
- val accumulator = aggregateVals(vals)
- val result = aggregator.getValue(accumulator)
+ val accumulator = accumulateVals(vals)
+ var result = aggregator.getValue(accumulator)
validateResult(expected, result)
+
+ if (ifSupportRetraction) {
+ retractVals(accumulator, vals)
--- End diff --
We also need to check the retraction of a single value not all values (the
`SumAggregator` retraction of all values was correct because the count was `0`).
For that we can accumulate all values and retract one value and compare the
result against the result of accumulating all values except the retracted one.
Also check that retracting `null` does not have an effect.
> Add retract method into the aggregateFunction
> ---------------------------------------------
>
> Key: FLINK-5956
> URL: https://issues.apache.org/jira/browse/FLINK-5956
> Project: Flink
> Issue Type: Sub-task
> Components: Table API & SQL
> Reporter: Shaoxuan Wang
> Assignee: Shaoxuan Wang
>
> Retraction method is help for processing updated message. It will also very
> helpful for window Aggregation. This PR will first add retraction methods
> into the aggregateFunctions, such that on-going over window Aggregation can
> get benefit from it.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)