flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-6242) codeGen DataSet Goupingwindow Aggregates
Date Tue, 18 Apr 2017 15:04:41 GMT

    [ https://issues.apache.org/jira/browse/FLINK-6242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15972869#comment-15972869

ASF GitHub Bot commented on FLINK-6242:

Github user fhueske commented on a diff in the pull request:

    --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/runtime/aggregate/GeneratedAggregations.scala
    @@ -36,6 +36,15 @@ abstract class GeneratedAggregations extends Function {
       def setAggregationResults(accumulators: Row, output: Row)
    +    * Calculates the results from accumulators, and set the results to the output (with
key offset)
    +    *
    +    * @param accumulators the accumulators (saved in a row) which contains the current
    +    *                     aggregated results
    +    * @param output       output results collected in a row
    +    */
    +  def setAggregationResultsWithKeyOffset(accumulators: Row, output: Row)
    --- End diff --
    I don't think we need to extend the `GeneratedAggregations` interface (except for `resetAccumulators()`)
    I would rather implement another code generation function that implements the existing
methods differently. This would mean to add another method to `CodeGenerator` that generates
the `GeneratedAggregations` interface suitable for the DataSet aggregations.
    - `setAggregationResultsWithKeyOffset` -> `setAggregationResults`
    - `setKeyToOutput` -> `setForwardedFields`
    - `accumulateWithKeyOffset` -> `accumulate`
    - `createAccumulatorsAndSetToOutput` could be replaced by `createAccumulators` (called
once to create a reusable accumulators), `resetAccumulators`, and `setAggregationResults`
(if it sets the accumulators instead of calling `AggFunction.getValue()`, see below)
    - `copyAccumulatorsToBuffer` -> `setAggregationResults` (the accumulators are partial
aggregation results). This would mean we have two behaviors, setting the final (`getValue()`)
or the partial result (accumulator) for `setAggregateResults()`. A simple flag during code
gen would go for either the final or the partial result.

> codeGen DataSet Goupingwindow Aggregates
> ----------------------------------------
>                 Key: FLINK-6242
>                 URL: https://issues.apache.org/jira/browse/FLINK-6242
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table API & SQL
>            Reporter: Shaoxuan Wang
>            Assignee: Shaoxuan Wang

This message was sent by Atlassian JIRA

View raw message