[
https://issues.apache.org/jira/browse/CALCITE-2654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde resolved CALCITE-2654.
----------------------------------
Resolution: Fixed
Fix Version/s: 1.18.0
Fixed in
[4cc46130|http://git-wip-us.apache.org/repos/asf/calcite/commit/4cc46130].
> In RelBuilder, add a fluent API for building complex aggregate calls
> --------------------------------------------------------------------
>
> Key: CALCITE-2654
> URL: https://issues.apache.org/jira/browse/CALCITE-2654
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Assignee: Julian Hyde
> Priority: Major
> Fix For: 1.18.0
>
>
> In RelBuilder, add a fluent API for building complex aggregate calls.
> Currently, the RelBuilder.aggregateCall has arguments aggFunction, distinct,
> approximate, filter, orderKeys, alias and operands, and in CALCITE-2224 we're
> adding orderKeys. You have to specify all of them, whether or not your
> function is DISTINCT or has a FILTER(WHERE) clause.
> The new API would be simple:
> * {{RelBuilder.aggregateCall(op, operands)}}
> * {{RelBuilder.sum(operand)}}
> * {{RelBuilder.count(operands)}}
> * {{RelBuilder.min(operands)}}
> and so forth. Each of these returns an AggCall, and we propose to add fluent
> methods to that:
> * {{AggCall.distinct(boolean)}}
> * {{AggCall.approximate(boolean)}}
> * {{AggCall.alias(String)}}
> * {{AggCall.filter(RexNode)}}
> * {{AggCall.sort(RexNode...)}} (for CALCITE-2224)
> Thus you can write
> {{builder.sum(builder.field("SAL)).distinct(true).alias("SUM_SAL")}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)