[
https://issues.apache.org/jira/browse/CALCITE-3589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16994476#comment-16994476
]
bingfeng.guo edited comment on CALCITE-3589 at 12/12/19 10:34 AM:
------------------------------------------------------------------
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 use which alias
{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 SELLER_ID in group by will not look for the replacement of alias
as SELLER_ID, but directly use SELLER_ID, thus bypassing this problem.{color}
was (Author: bingfeng):
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 use which alias
{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)