[
https://issues.apache.org/jira/browse/FLINK-2980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15834617#comment-15834617
]
ASF GitHub Bot commented on FLINK-2980:
---------------------------------------
Github user twalthr commented on a diff in the pull request:
https://github.com/apache/flink/pull/3026#discussion_r97312299
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/expressions/Expression.scala
---
@@ -86,3 +85,44 @@ abstract class UnaryExpression extends Expression {
abstract class LeafExpression extends Expression {
private[flink] val children = Nil
}
+
+class GroupedExpression(
+ private[flink] val children: Seq[Expression]
+ ) extends Expression {
+
+ def this(product: Product) {
+ this(
+ product.productIterator
+ .map {
+ case e: Expression => e
+ case s: Symbol => UnresolvedFieldReference(s.name)
+ case p: Product => new GroupedExpression(p)
+ case _ => throw new IllegalArgumentException()
+ }.toSeq
+ )
+ }
+
+ def flatChildren: Seq[Expression] = {
+ children.flatMap {
+ case g: GroupedExpression => g.flatChildren
+ case x => Seq(x)
+ }
+ }
+
+ /**
+ * Returns the [[TypeInformation]] for evaluating this expression.
+ * It's not applicable for grouped expressions.
+ */
+ override private[flink] def resultType = ???
--- End diff --
This should be a `UnsupportedOperationException` with a meaningful message.
> Add CUBE/ROLLUP/GROUPING SETS operator in Table API.
> ----------------------------------------------------
>
> Key: FLINK-2980
> URL: https://issues.apache.org/jira/browse/FLINK-2980
> Project: Flink
> Issue Type: New Feature
> Components: Documentation, Table API & SQL
> Reporter: Chengxiang Li
> Assignee: Alexander Chermenin
> Attachments: Cube-Rollup-GroupSet design doc in Flink.pdf
>
>
> Computing aggregates over a cube/rollup/grouping sets of several dimensions
> is a common operation in data warehousing. It would be nice to have them in
> Table API.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)