[ https://issues.apache.org/jira/browse/CALCITE-2216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16431019#comment-16431019 ]
Shuyi Chen commented on CALCITE-2216: ------------------------------------- Merged with [06080ff|https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=06080ff]. Thanks a lot for the PR, [~fhueske]. > Improve extensibility of AggregateReduceFunctionsRule > ----------------------------------------------------- > > Key: CALCITE-2216 > URL: https://issues.apache.org/jira/browse/CALCITE-2216 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.15.0 > Reporter: Fabian Hueske > Assignee: Julian Hyde > Priority: Minor > > I'm proposing to improve the extensibility of > {{AggregateReduceFunctionsRule}}. The purpose of the rule is to decompose > complex aggregation functions like {{VAR_POP}} and {{STDDEV_SAMP}} into > {{COUNT}} and {{SUM}} functions and compute the original functions in a > subsequent Calc operator. > Right now, the rule class provides a {{protected}} method that can be > overridden to create an {{Aggregate}} with the updated aggregate calls. > We are using the rule in Flink and have a special {{Aggregate}} Rel for > group-windowed aggregations ({{GROUP BY TUMBLE/HOP/SESSION}}). Our > implementation requires to forward some additional fields from the > {{Aggregate}} for window properties like {{TUMBLE_START}} or {{HOP_END}}. In > the current form, we cannot extend the rule, because these fields are striped > off by the {{Calc}} node that is automatically added by the rule. > I'm proposing to also move the code to create the {{Calc}} into a > {{protected}} method just like the code to create the new {{Aggregate}}. > I know, this is a fairly Flink-specific issue, but the code changes are > minimal (no change in functionality) and it would help us, because we would > not need to copy the rule and maintain it in Flink. > I'll open a PR for this. Looking forward to your comments. -- This message was sent by Atlassian JIRA (v7.6.3#76005)