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

Julian Hyde commented on CALCITE-5089:
--------------------------------------

[~yanjing.wang], The draft looks pretty good. As I suspected, the code changes 
are fewer than your previous change. That's good because this is a relatively 
minor feature.

Minor changes:
* move {{GROUP_BY_DISTINCT}} to {{SqlInternalOperators}};
* in {{SqlKind}}, don't call it 'GROUP BY DISTINCT clause'; more accurate is 
the DISTINCT keyword of the GROUP BY clause;
* a couple of places you do effectively 'if (groupList.size() > 0 && 
groupList.get(0).kind == GROUP_BY_DISTINCT)'. Perhaps add a check that 
groupList.size() is 1, or otherwise make it clear that if the GROUP_BY_DISTINCT 
operator is present it can be the only item.

> Allow GROUP BY ALL or DISTINCT set quantifier on GROUPING SETS
> --------------------------------------------------------------
>
>                 Key: CALCITE-5089
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5089
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.30.0
>         Environment: jdk8
>            Reporter: yanjing.wang
>            Assignee: yanjing.wang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.31.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> GROUP BY DISTINCT will be used to remove duplicate GROUPING SETS, for example:
> {code:java}
> SELECT product_id, product_class_id, count(*) from product GROUP BY DISTINCT 
> CUBE (product_id, product_class_id), ROLLUP (product_id, 
> product_class_id){code}
> it's equivalent to 
> {code:java}
> SELECT product_id, product_class_id, count(*) from product GROUP BY GROUPING 
> SETS ((product_id, product_class_id), (product_id), (product_class_id), ()) 
> {code}
> GROUP BY ALL will remain the duplicate GROUPING SETS, it's equivalent to 
> GROUP BY, so most databases use ALL as the default set quantifier.
> As far as I know the PostgreSQL and Trino support this syntax.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to