[ https://issues.apache.org/jira/browse/CALCITE-6265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Nieradzik updated CALCITE-6265: ----------------------------------- Description: Given a column of type {{{}INT{}}}. When providing a {{short}} value as a placeholder in a prepared statement, a {{ClassCastException}} is thrown. h2. Test case {{final String sql =}} {{ "select \"empid\" from \"hr\".\"emps\" where \"empid\" in (?, ?)";}}{{ CalciteAssert.hr()}} {{ .query(sql)}} {{ .consumesPreparedStatement(p -> {}} {{ p.setShort(1, (short) 100);}} {{ p.setShort(2, (short) 110);}} {{ })}} {{ .returnsUnordered("empid=100", "empid=110");}} h2. Stack trace {{java.lang.ClassCastException: class java.lang.Short cannot be cast to class java.lang.Integer (java.lang.Short and java.lang.Integer are in module java.base of loader 'bootstrap')}} {{ at Baz$1$1.moveNext(Unknown Source)}} {{ at org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.<init>(Linq4j.java:679)}} was: Given a column of type {{{}INT{}}}. When providing a {{short}} value as a placeholder in a prepared statement, a {{ClassCastException}} is thrown. h2. Test case {{final String sql =}} {{ "select \"empid\" from \"hr\".\"emps\" where \"empid\" in (?, ?)";}}{{ CalciteAssert.hr()}} {{ .query(sql)}} {{ .consumesPreparedStatement(p -> {}} {{ }}{{p.setShort(1, (short) 100);}} {{ p.setShort(2, (short) 110);}} {{ })}} {{ .returnsUnordered("empid=100", "empid=110");}} h2. Stack trace {{java.lang.ClassCastException: class java.lang.Short cannot be cast to class java.lang.Integer (java.lang.Short and java.lang.Integer are in module java.base of loader 'bootstrap')}} {{ at Baz$1$1.moveNext(Unknown Source)}} {{ at org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.<init>(Linq4j.java:679)}} > Type coercion is failing for numeric values in prepared statements > ------------------------------------------------------------------ > > Key: CALCITE-6265 > URL: https://issues.apache.org/jira/browse/CALCITE-6265 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Tim Nieradzik > Assignee: Alessandro Solimando > Priority: Major > Labels: pull-request-available > Fix For: 1.37.0 > > > Given a column of type {{{}INT{}}}. When providing a {{short}} value as a > placeholder in a prepared statement, a {{ClassCastException}} is thrown. > h2. Test case > {{final String sql =}} > {{ "select \"empid\" from \"hr\".\"emps\" where \"empid\" in (?, ?)";}}{{ > CalciteAssert.hr()}} > {{ .query(sql)}} > {{ .consumesPreparedStatement(p -> {}} > {{ p.setShort(1, (short) 100);}} > {{ p.setShort(2, (short) 110);}} > {{ })}} > {{ .returnsUnordered("empid=100", "empid=110");}} > h2. Stack trace > {{java.lang.ClassCastException: class java.lang.Short cannot be cast to class > java.lang.Integer (java.lang.Short and java.lang.Integer are in module > java.base of loader 'bootstrap')}} > {{ at Baz$1$1.moveNext(Unknown Source)}} > {{ at > org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.<init>(Linq4j.java:679)}} -- This message was sent by Atlassian Jira (v8.20.10#820010)