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)