[ https://issues.apache.org/jira/browse/CALCITE-2362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16548663#comment-16548663 ]
Miles Spielberg commented on CALCITE-2362: ------------------------------------------ Exception from running the attached code: {code} java.lang.RuntimeException: Unhandled value: OBJECT class org.apache.calcite.avatica.util.ArrayImpl at org.apache.calcite.avatica.remote.TypedValue.writeToProtoWithType(TypedValue.java:653) at org.apache.calcite.avatica.remote.TypedValue.toProto(TypedValue.java:513) at org.apache.calcite.avatica.remote.Service$ExecuteRequest.serialize(Service.java:1081) at org.apache.calcite.avatica.remote.Service$ExecuteRequest.serialize(Service.java:1002) at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.serializeRequest(ProtobufTranslationImpl.java:314) at org.apache.calcite.avatica.remote.RemoteProtobufService._apply(RemoteProtobufService.java:45) at org.apache.calcite.avatica.remote.ProtobufService.apply(ProtobufService.java:97) at org.apache.calcite.avatica.remote.RemoteMeta$15.call(RemoteMeta.java:344) at org.apache.calcite.avatica.remote.RemoteMeta$15.call(RemoteMeta.java:342) at org.apache.calcite.avatica.AvaticaConnection.invokeWithRetries(AvaticaConnection.java:756) at org.apache.calcite.avatica.remote.RemoteMeta.execute(RemoteMeta.java:341) at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:511) at org.apache.calcite.avatica.AvaticaPreparedStatement.executeLargeUpdate(AvaticaPreparedStatement.java:146) at org.apache.calcite.avatica.AvaticaPreparedStatement.executeUpdate(AvaticaPreparedStatement.java:142) at Main.main(Main.java:12) Exception in thread "main" java.sql.SQLException: Unhandled value: OBJECT class org.apache.calcite.avatica.util.ArrayImpl at org.apache.calcite.avatica.Helper.createException(Helper.java:56) at org.apache.calcite.avatica.Helper.createException(Helper.java:41) at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:520) at org.apache.calcite.avatica.AvaticaPreparedStatement.executeLargeUpdate(AvaticaPreparedStatement.java:146) at org.apache.calcite.avatica.AvaticaPreparedStatement.executeUpdate(AvaticaPreparedStatement.java:142) at Main.main(Main.java:12) Caused by: java.lang.RuntimeException: Unhandled value: OBJECT class org.apache.calcite.avatica.util.ArrayImpl at org.apache.calcite.avatica.remote.TypedValue.writeToProtoWithType(TypedValue.java:653) at org.apache.calcite.avatica.remote.TypedValue.toProto(TypedValue.java:513) at org.apache.calcite.avatica.remote.Service$ExecuteRequest.serialize(Service.java:1081) at org.apache.calcite.avatica.remote.Service$ExecuteRequest.serialize(Service.java:1002) at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.serializeRequest(ProtobufTranslationImpl.java:314) at org.apache.calcite.avatica.remote.RemoteProtobufService._apply(RemoteProtobufService.java:45) at org.apache.calcite.avatica.remote.ProtobufService.apply(ProtobufService.java:97) at org.apache.calcite.avatica.remote.RemoteMeta$15.call(RemoteMeta.java:344) at org.apache.calcite.avatica.remote.RemoteMeta$15.call(RemoteMeta.java:342) at org.apache.calcite.avatica.AvaticaConnection.invokeWithRetries(AvaticaConnection.java:756) at org.apache.calcite.avatica.remote.RemoteMeta.execute(RemoteMeta.java:341) at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:511) ... 3 more {code} Does this help? > PreparedStatement.setObject does not handle Array > ------------------------------------------------- > > Key: CALCITE-2362 > URL: https://issues.apache.org/jira/browse/CALCITE-2362 > Project: Calcite > Issue Type: Bug > Components: avatica > Reporter: Miles Spielberg > Assignee: Julian Hyde > Priority: Major > Attachments: Main.java, build.gradle > > > Currently setObject() infers the type of the parameter by calling > TypedValue.ofJdbc, which delegates to Rep.of(value.getClass()) to do a lookup > in VALUE_MAP. VALUE_MAP containsĀ an entry for java.sql.Array, but this is an > interface type, which can never match the actual class of > avatica.util.ArrayImpl. > Instead the implementation falls back to OBJECT, which then fails during > serialization. -- This message was sent by Atlassian JIRA (v7.6.3#76005)