[ https://issues.apache.org/jira/browse/FLINK-7101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16088576#comment-16088576 ]
ASF GitHub Bot commented on FLINK-7101: --------------------------------------- GitHub user sunjincheng121 opened a pull request: https://github.com/apache/flink/pull/4348 [FLINK-7101][table] add condition of !stateCleaningEnabled is avoided… - [x] General - The pull request references the related JIRA issue (" [FLINK-7101][table] add condition of !stateCleaningEnabled is avoided non-grouped window state to be cleaned up too early") - The pull request addresses only one issue - Each commit in the PR has a meaningful commit message (including the JIRA id) - [ ] Documentation - Documentation has been added for new functionality - Old documentation affected by the pull request has been updated - JavaDoc for public methods has been added - [ ] Tests & Build - Functionality added by the pull request is covered by tests - `mvn clean verify` has been executed successfully locally or a Travis build has passed You can merge this pull request into a Git repository by running: $ git pull https://github.com/sunjincheng121/flink FLINK-7101-PR Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/4348.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4348 ---- commit 1c006299c8b8a169e346ef776cf9c5f5d7af20e0 Author: sunjincheng121 <sunjincheng...@gmail.com> Date: 2017-07-15T11:43:30Z [FLINK-7101][table] add condition of !stateCleaningEnabled is avoided non-grouped window state to be cleaned up too early ---- > Fix Non-windowed group-aggregate error when using `minIdleStateRetentionTime` > config and retract agg > ---------------------------------------------------------------------------------------------------- > > Key: FLINK-7101 > URL: https://issues.apache.org/jira/browse/FLINK-7101 > Project: Flink > Issue Type: Bug > Components: Table API & SQL > Affects Versions: 1.3.0, 1.3.1 > Reporter: sunjincheng > Assignee: sunjincheng > Fix For: 1.4.0 > > Attachments: screenshot-1.png > > > When Non-windowed group-aggregate using {{minIdleStateRetentionTime}} config > and retract AGG, Will emit "NULL" agg value which we do not expect. > For example: ({{IntSumWithRetractAggFunction}}) > 1. Receive: CRow(Row.of(6L: JLong, 5: JInt, "aaa"), true) > 2. Cleanup state > 3. Receive: CRow(Row.of(6L: JLong, 5: JInt, "aaa"), false) // acc.f1 = -1, > getValue= null > So, we must change the logic of {{GroupAggProcessFunction}} as follows: > {code} > if (inputCnt != 0) { > ... > } else { > ... > } > {code} > TO > {code} > if (inputCnt > 0) { > ... > } else { > if( null != prevRow.row){ > ... > } > } > {code} > In this case, the result will bigger than expected, but i think it's make > sense, because user want cleanup state.(they should know the impact) > What do you think? [~fhueske] [~hequn8128] -- This message was sent by Atlassian JIRA (v6.4.14#64029)