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

Julian Hyde commented on CALCITE-4512:
--------------------------------------

MySQL's "partial group by" feature is an outlier in the industry. For example, 
it will treat
{code}SELECT deptno, ename
FROM Emp
GROUP BY deptno{code} as valid and return an arbitrary employee name.

Thankfully you can turn that behavior off using {{ONLY_FULL_GROUP_BY}}, but 
MySQL added a bunch of such features in its early days (e.g. treating integers 
as booleans) that it has still not fully removed. Therefore I am still not 
inclined to trust MySQL when it comes to discerning "reasonable" and "industry 
standard" SQL semantics.

BigQuery is more trustworthy.

> group by expression has argument name same with select list item alias, 
> causes validation error
> -----------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4512
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4512
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.26.0
>         Environment: jvm: open-jdk8
>            Reporter: yanjing.wang
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> String sql = "select replace(name, 'a', 'b') as name from users group by 
> replace(name, 'a', 'b')";
>  
> when group by expression has argument name same with select list item alias, 
> the group by argument will be expanded to select list item when sql 
> conformance supports 'groupByAlias', so the above sql will be expanded to 
> String sql = "select replace(name, 'a', 'b') as name from users group by 
> replace(replace(name, 'a', 'b'), 'a', 'b')";
>  
> this is unexpected.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to