calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabian Hueske (JIRA)" <>
Subject [jira] [Created] (CALCITE-2216) Improve extensibility of AggregateReduceFunctionsRule
Date Fri, 16 Mar 2018 14:46:00 GMT
Fabian Hueske created CALCITE-2216:

             Summary: Improve extensibility of AggregateReduceFunctionsRule
                 Key: CALCITE-2216
             Project: Calcite
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.15.0
            Reporter: Fabian Hueske
            Assignee: Julian Hyde

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

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

View raw message