[ 
https://issues.apache.org/jira/browse/CALCITE-7501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-7501:
------------------------------------
    Labels: pull-request-available  (was: )

> Assertion error in alias expansion for LEFT JOIN USING
> ------------------------------------------------------
>
>                 Key: CALCITE-7501
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7501
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.41.0
>            Reporter: Mihai Budiu
>            Assignee: Mihai Budiu
>            Priority: Minor
>              Labels: pull-request-available
>
> The following legitimate query triggers an assertion error:
> {code:java}
> CREATE TABLE D(sk_cid INT, dt DATE, dm_sym VARCHAR, fhd DATE);
> CREATE TABLE F(sk_cid INT);
> CREATE TABLE S(sk_sid INT, sym VARCHAR);
>                 
> SELECT
>   d.dt as dtn,
>   fhd as sk_fhd
> FROM D
> JOIN S
> ON S.sym = D.dm_sym
> LEFT JOIN F USING (sk_cid);{code}
> The stack trace is as follows:
> {code:java}
> > java.lang.AssertionError
> >     at 
> > org.apache.calcite.sql.SqlIdentifier.getSimple(SqlIdentifier.java:333)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.getFieldAliases(SqlValidatorImpl.java:583)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.access$700(SqlValidatorImpl.java:189)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.expandExprFromJoin(SqlValidatorImpl.java:7523)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.expandCommonColumn(SqlValidatorImpl.java:7508)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$SelectExpander.visit(SqlValidatorImpl.java:7721)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$SelectExpander.visit(SqlValidatorImpl.java:7678)
> >     at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
> >     at 
> > org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:134)
> >     at 
> > org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:101)
> >     at 
> > org.apache.calcite.sql.SqlAsOperator.acceptCall(SqlAsOperator.java:129)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visitScoped(SqlValidatorImpl.java:7410)
> >     at 
> > org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:54)
> >     at 
> > org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:37)
> >     at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:175)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.go(SqlValidatorImpl.java:7350)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl$SelectExpander.go(SqlValidatorImpl.java:7717)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectExpr(SqlValidatorImpl.java:6913)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:490)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:5268)
> >     at 
> > org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:4260)
> >     at 
> > org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:62)
>  {code}
> The statement failing is here:
> {code:java}
>         fieldAliases.put(fieldIdentifier.getSimple(),
>             ((SqlIdentifier) call.operand(1)).getSimple()); {code}
> where fieldIdentifier is actually d.dt, so it is not a simple identifier.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to