Yu Xu created CALCITE-7054:
------------------------------

             Summary: Runtime conversion of DECIMAL MULTISET to INT MULTISET or 
DECIMAL ARRAY to INT MULTISET fails with a ClassCastException
                 Key: CALCITE-7054
                 URL: https://issues.apache.org/jira/browse/CALCITE-7054
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.40.0
            Reporter: Yu Xu
            Assignee: Yu Xu
             Fix For: 1.41.0


test sql 1

multiset cast to multiset
{code:java}
SELECT CAST(CAST(MULTISET[CAST(1.1111 AS DECIMAL(2, 1)), CAST(3.06754 AS 
DECIMAL(2, 1))] AS INTEGER MULTISET) as INTEGER MULTISET); {code}
exception:
{code:java}
> java.lang.ClassCastException: java.math.BigDecimal cannot be cast to 
> java.lang.Integer
>     at 
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:522)
>     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1405)
>     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1386)
>     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1441)
>     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getString(AbstractCursor.java:1453)
>     at 
> org.apache.calcite.avatica.AvaticaResultSet.getString(AvaticaResultSet.java:241)
>     at net.hydromatic.quidem.Quidem.format(Quidem.java:786) {code}
test sql 2

array cast to multiset :
{code:java}
SELECT CAST(CAST(ARRAY[CAST(1.1111 AS DECIMAL(2, 1)), CAST(3.06754 AS 
DECIMAL(2, 1))] AS INTEGER ARRAY) as INTEGER MULTISET);  {code}
exception:
{code:java}
> java.lang.ClassCastException: java.math.BigDecimal cannot be cast to 
> java.lang.Integer >     at 
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:522)
>  >     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1405)
>  >     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1386)
>  >     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1441)
>  >     at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getString(AbstractCursor.java:1453)
>  >     at 
> org.apache.calcite.avatica.AvaticaResultSet.getString(AvaticaResultSet.java:241)
>  >     at net.hydromatic.quidem.Quidem.format(Quidem.java:786)  {code}



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

Reply via email to