[ 
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)

Reply via email to