[
https://issues.apache.org/jira/browse/CALCITE-3589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16994476#comment-16994476
]
bingfeng.guo commented on CALCITE-3589:
---------------------------------------
In addition, when conformance = LENIENT,there is a similar problem。
The following sql will throw column is ambiguous error,Because SELLER_ID in
group by does not know which expression to use as SELLER_ID
{color:#ff8b00}SELECT SELLER_ID, SELLER_ID{color}
{color:#ff8b00}FROM TEST_KYLIN_FACT{color}
{color:#ff8b00}GROUP BY SELLER_ID{color}
{color:#172b4d}But this error does not occur when conformance = DEFAULT,
Because when conformance = DEFAULT, aliases cannot be used on group by.
Therefore, the PRT_DT in group by will not look for the replacement of alias as
PRT_DT, but directly use PRT_DT, thus bypassing this problem.{color}
> SqlValidatorException when conformation is set to LENIENT
> ---------------------------------------------------------
>
> Key: CALCITE-3589
> URL: https://issues.apache.org/jira/browse/CALCITE-3589
> Project: Calcite
> Issue Type: Bug
> Reporter: bingfeng.guo
> Priority: Critical
> Attachments: 屏幕快照 2019-12-12 下午5.56.24.png
>
>
> error occurs conditions (all three conditions must be met):
> * conformance = LENIENT
> * The alias of the expression in select is the same as the column name of
> the column used in the expression
> * group by or having use the above expression
> {color:#172b4d}a simple example is as follows:{color}
> {color:#ff8b00}SELECT SELLER_ID + 1 AS SELLER_ID, sum(PRICE){color}
> {color:#ff8b00}FROM TEST_KYLIN_FACT{color}
> {color:#ff8b00}GROUP BY SELLER_ID + 1{color}
> {color:#172b4d}will change to {color}
> {color:#ff8b00}SELECT SELLER_ID + 1 AS SELLER_ID, sum(PRICE){color}
> {color:#ff8b00} FROM TEST_KYLIN_FACT{color}
> {color:#ff8b00} GROUP BY SELLER_ID + 1 + 1{color}
> {color:#172b4d}after
> org.apache.calcite.sql.validate.SqlValidatorImpl#expandGroupByOrHavingExpr{color}
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)