[
https://issues.apache.org/jira/browse/IGNITE-18762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov updated IGNITE-18762:
--------------------------------------
Description:
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}
was:
In some cases CASE WHEN .. END expressions may have incorrect types.
> Sql. Incorrect types can be inferred for 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)