[ 
https://issues.apache.org/jira/browse/FLINK-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15241241#comment-15241241
 ] 

Fabian Hueske edited comment on FLINK-3723 at 4/14/16 3:55 PM:
---------------------------------------------------------------

I am still unsure about this proposal:

Pros of splitting {{select}} into {{agg}} for aggregations and {{select}} 
projections:
- simplified (Flink internal) code because this representation is closer to 
Calcite's internal representation
- better separation of functionality, e.g., for Table API on streams
- might be easier to use

Cons:
- select-only is closer to standard SQL
- requires an additional Table API operator in certain situations

What do you think [~twalthr], [~vkalavri], [~chengxiang li], [~aljoscha]?
Any pros or cons if forgot to mention [~yijieshen]?


was (Author: fhueske):
I am still unsure about this proposal:

Pros of splitting {{select}} into {{agg}} for aggregations and {{select}} 
projections:
- simplified code because this representation is closer to Calcite's internal 
representation
- better separation of functionality, e.g., for Table API on streams
- might be easier to use

Cons:
- select-only is closer to standard SQL
- requires an additional Table API operator in certain situations
- rather complex code to separate expressions from aggregations

What do you think [~twalthr], [~vkalavri], [~chengxiang li], [~aljoscha]?
Any pros or cons if forgot to mention [~yijieshen]?

> Aggregate Functions and scalar expressions shouldn't be mixed in select
> -----------------------------------------------------------------------
>
>                 Key: FLINK-3723
>                 URL: https://issues.apache.org/jira/browse/FLINK-3723
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API
>    Affects Versions: 1.0.1
>            Reporter: Yijie Shen
>
> When we type {code}select deptno, name, max(age) from dept group by 
> deptno;{code} in calcite or Oracle, it will complain {code}Expression 'NAME' 
> is not being grouped{code} or {code}Column 'dept.name' is invalid in the 
> select list because it is not contained in either an aggregate function or 
> the GROUP BY clause.{code} because of the nondeterministic result.
> Therefore, I suggest to separate the current functionality of `select` into 
> two api, the new `select` only handle scalar expressions, and an `agg` accept 
> Aggregates.
> {code}
> def select(exprs: Expression*)
> def agg(aggs: Aggregation*)
> ....
> tbl.groupBy('deptno)
>    .agg('age.max, 'age.min)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to