[ https://issues.apache.org/jira/browse/FLINK-8689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16449244#comment-16449244 ]
ASF GitHub Bot commented on FLINK-8689: --------------------------------------- Github user walterddr commented on a diff in the pull request: https://github.com/apache/flink/pull/5555#discussion_r183222353 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/codegen/AggregationCodeGenerator.scala --- @@ -327,19 +392,41 @@ class AggregationCodeGenerator( for (i <- aggs.indices) yield if (partialResults) { - j""" - | output.setField( - | ${aggMapping(i)}, - | (${accTypes(i)}) accs.getField($i));""".stripMargin + if (isDistinctAggs(i)) { + + j""" + | $distinctAccType distinctAcc$i = ($distinctAccType) accs.getField($i); + | output.setField( + | ${aggMapping(i)}, + | (${accTypes(i)}) distinctAcc$i.getRealAcc());""".stripMargin + } else { + j""" + | output.setField( + | ${aggMapping(i)}, + | (${accTypes(i)}) accs.getField($i));""".stripMargin + } } else { - j""" - | org.apache.flink.table.functions.AggregateFunction baseClass$i = - | (org.apache.flink.table.functions.AggregateFunction) ${aggs(i)}; - | ${accTypes(i)} acc$i = (${accTypes(i)}) accs.getField($i); - | ${genDataViewFieldSetter(s"acc$i", i)} - | output.setField( - | ${aggMapping(i)}, - | baseClass$i.getValue(acc$i));""".stripMargin + if (isDistinctAggs(i)) { + j""" + | org.apache.flink.table.functions.AggregateFunction baseClass$i = + | (org.apache.flink.table.functions.AggregateFunction) ${aggs(i)}; + | $distinctAccType distinctAcc$i = ($distinctAccType) accs.getField($i); + | ${genDistinctDataViewFieldSetter(s"distinctAcc$i", i)} + | ${accTypes(i)} acc$i = (${accTypes(i)}) distinctAcc$i.getRealAcc(); + | ${genAccDataViewFieldSetter(s"acc$i", i)} + | output.setField( + | ${aggMapping(i)}, + | baseClass$i.getValue(acc$i));""".stripMargin + } else { --- End diff -- yeah, that's true. it will avoid a lot of typo possibility as well. +1 > Add runtime support of distinct filter using MapView > ----------------------------------------------------- > > Key: FLINK-8689 > URL: https://issues.apache.org/jira/browse/FLINK-8689 > Project: Flink > Issue Type: Sub-task > Reporter: Rong Rong > Assignee: Rong Rong > Priority: Major > > This ticket should cover distinct aggregate function support to codegen for > *AggregateCall*, where *isDistinct* fields is set to true. > This can be verified using the following SQL, which is not currently > producing correct results. > {code:java} > SELECT > a, > SUM(b) OVER (PARTITION BY a ORDER BY proctime ROWS BETWEEN 5 PRECEDING AND > CURRENT ROW) > FROM > MyTable{code} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)