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