[
https://issues.apache.org/jira/browse/CALCITE-7293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mihai Budiu updated CALCITE-7293:
---------------------------------
Description:
The following test as a SqlValidatorTest fails with an exception:
{code:java}
expr("MAP['a', CAST('x' AS VARIANT), 'b', CAST(NULL AS VARIANT)]")
.columnType("(CHAR(1) NOT NULL, VARIANT) MAP NOT NULL");
{code}
Exception:
{code}
java.lang.UnsupportedOperationException: Unsupported type when
convertTypeToSpec: VARIANT
at
org.apache.calcite.sql.type.SqlTypeUtil.convertTypeToSpec(SqlTypeUtil.java:1368)
at
org.apache.calcite.sql.type.SqlTypeUtil.convertTypeToSpec(SqlTypeUtil.java:1391)
at
org.apache.calcite.sql.validate.SqlValidatorUtil.castTo(SqlValidatorUtil.java:1487)
at
org.apache.calcite.sql.validate.SqlValidatorUtil.adjustTypeForMultisetConstructor(SqlValidatorUtil.java:1468)
at
org.apache.calcite.sql.validate.SqlValidatorUtil.adjustTypeForMapConstructor(SqlValidatorUtil.java:1430)
at
org.apache.calcite.sql.fun.SqlMapValueConstructor.inferReturnType(SqlMapValueConstructor.java:56)
at
org.apache.calcite.sql.SqlOperator.validateOperands(SqlOperator.java:531)
at org.apache.calcite.sql.SqlOperator.deriveType(SqlOperator.java:631)
{code}
The fix should be easy: add VARIANT to the list of "atomic" types.
was:
The following test as a SqlValidatorTest fails with an exception:
{code:java}
expr("MAP['a', CAST('x' AS VARIANT), 'b', CAST(NULL AS VARIANT)]")
.columnType("(CHAR(1) NOT NULL, VARIANT) MAP NOT NULL");
{code}
Exception:
{code}
{code}
> MAP constructor cannot handle VARIANT values that need casts
> ------------------------------------------------------------
>
> Key: CALCITE-7293
> URL: https://issues.apache.org/jira/browse/CALCITE-7293
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.41.0
> Reporter: Mihai Budiu
> Assignee: Mihai Budiu
> Priority: Minor
> Fix For: 1.42.0
>
>
> The following test as a SqlValidatorTest fails with an exception:
> {code:java}
> expr("MAP['a', CAST('x' AS VARIANT), 'b', CAST(NULL AS VARIANT)]")
> .columnType("(CHAR(1) NOT NULL, VARIANT) MAP NOT NULL");
> {code}
> Exception:
> {code}
> java.lang.UnsupportedOperationException: Unsupported type when
> convertTypeToSpec: VARIANT
> at
> org.apache.calcite.sql.type.SqlTypeUtil.convertTypeToSpec(SqlTypeUtil.java:1368)
> at
> org.apache.calcite.sql.type.SqlTypeUtil.convertTypeToSpec(SqlTypeUtil.java:1391)
> at
> org.apache.calcite.sql.validate.SqlValidatorUtil.castTo(SqlValidatorUtil.java:1487)
> at
> org.apache.calcite.sql.validate.SqlValidatorUtil.adjustTypeForMultisetConstructor(SqlValidatorUtil.java:1468)
> at
> org.apache.calcite.sql.validate.SqlValidatorUtil.adjustTypeForMapConstructor(SqlValidatorUtil.java:1430)
> at
> org.apache.calcite.sql.fun.SqlMapValueConstructor.inferReturnType(SqlMapValueConstructor.java:56)
> at
> org.apache.calcite.sql.SqlOperator.validateOperands(SqlOperator.java:531)
> at org.apache.calcite.sql.SqlOperator.deriveType(SqlOperator.java:631)
> {code}
> The fix should be easy: add VARIANT to the list of "atomic" types.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)