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

Maksim Zhuravkov updated IGNITE-18762:
--------------------------------------
    Summary: Sql. Type inference errors some usages of dynamic parameters in 
CASE  WHEN .. END expressions  (was: Sql. Incorrect types can be inferred for 
CASE  WHEN .. END expressions)

> Sql. Type inference errors some usages of dynamic parameters in CASE  WHEN .. 
> END expressions
> ---------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18762
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18762
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Maksim Zhuravkov
>            Priority: Major
>              Labels: calcite2-required, calcite3-required, ignite-3
>
> In some cases CASE WHEN .. END expressions may have incorrect types or 
> runtime errors. Examples:
> {code:java}
> // CASE WHEN <condition> THEN .. WHEN <condition2> THEN ... END
> assertQuery("SELECT CASE ? "
>         + "WHEN '1' = ? "
>         + "THEN 'b' "
>         + "ELSE ? END")
>         .withParams(UUID.randomUUID().toString(), 
> UUID.randomUUID().toString(), UUID.randomUUID().toString())
>         .check();
> {code}
> Result:
> {code:java}
>     class org.apache.calcite.sql.SqlBasicCall: CAST(`T`.`C1` AS UNKNOWN)
>         java.lang.UnsupportedOperationException: class 
> org.apache.calcite.sql.SqlBasicCall: CAST(`T`.`C1` AS UNKNOWN)
>             at org.apache.calcite.util.Util.needToImplement(Util.java:1101)
>             at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.getValidatedNodeType(SqlValidatorImpl.java:1767)
>             at 
> org.apache.calcite.sql.SqlBinaryOperator.convertType(SqlBinaryOperator.java:137)
>             at 
> org.apache.calcite.sql.SqlBinaryOperator.adjustType(SqlBinaryOperator.java:132)
>      */
> {code}



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

Reply via email to