Julian Hyde created CALCITE-2654:
------------------------------------
Summary: 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
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)