presto-jdbc-java6
presto-jdbc-java6 copied to clipboard
Unrecognized field "arguments" (class com.facebook.presto.jdbc.client.ClientTypeSignature)
Error on executing the query "SHOW CATALOGS".
Connection connection = DriverManager.getConnection(connectionUrl, username, password);
Statement statement = connection.createStatement();
statement.executeQuery("SHOW CATALOGS");
This project has the following three known properties in ClientTypeSignature.java:
@JsonCreator
public ClientTypeSignature(
@JsonProperty("rawType") String rawType,
@JsonProperty("typeArguments") List<ClientTypeSignature> typeArguments,
@JsonProperty("literalArguments") List<Object> literalArguments)
{
Whereas the main presto project has the additional field "arguments":
@JsonCreator
public ClientTypeSignature(
@JsonProperty("rawType") String rawType,
@JsonProperty("typeArguments") List<ClientTypeSignature> typeArguments,
@JsonProperty("literalArguments") List<Object> literalArguments,
@JsonProperty("arguments") List<ClientTypeSignatureParameter> arguments)
{
Stack trace:
java.sql.SQLException: Error executing query
at com.facebook.presto.jdbc.PrestoStatement.execute(PrestoStatement.java:211)
at com.facebook.presto.jdbc.PrestoStatement.executeQuery(PrestoStatement.java:55)
...
Caused by: java.lang.RuntimeException: Error parse result at http://<host>:<port>/v1/statement/20160801_172719_00019_9fisq/1 returned an invalid response: Unrecognized field "arguments" (class com.facebook.presto.jdbc.client.ClientTypeSignature), not marked as ignorable (3 known properties: "rawType", "typeArguments", "literalArguments"])
at [Source: com.facebook.presto.jdbc.internal.org.apache.http.nio.entity.ContentInputStream@2e412d4; line: 1, column: 479] (through reference chain: java.util.ArrayList[0]->com.facebook.presto.jdbc.client.ClientTypeSignature["arguments"])
at com.facebook.presto.jdbc.ApacheQueryHttpClient.requestFailedException(ApacheQueryHttpClient.java:186)
at com.facebook.presto.jdbc.ApacheQueryHttpClient.parseResult(ApacheQueryHttpClient.java:243)
at com.facebook.presto.jdbc.ApacheQueryHttpClient.execute(ApacheQueryHttpClient.java:148)
at com.facebook.presto.jdbc.client.UniversalStatementClient.advance(UniversalStatementClient.java:114)
at com.facebook.presto.jdbc.PrestoResultSet.getColumns(PrestoResultSet.java:1717)
at com.facebook.presto.jdbc.PrestoResultSet.<init>(PrestoResultSet.java:139)
at com.facebook.presto.jdbc.PrestoStatement.execute(PrestoStatement.java:179)
... 11 more
Caused by: com.facebook.presto.jdbc.internal.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "arguments" (class com.facebook.presto.jdbc.client.ClientTypeSignature), not marked as ignorable (3 known properties: "rawType", "typeArguments", "literalArguments"])
at [Source: com.facebook.presto.jdbc.internal.org.apache.http.nio.entity.ContentInputStream@2e412d4; line: 1, column: 479] (through reference chain: java.util.ArrayList[0]->com.facebook.presto.jdbc.client.ClientTypeSignature["arguments"])
at com.facebook.presto.jdbc.internal.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)
at com.facebook.presto.jdbc.internal.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:744)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:915)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1306)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1284)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:211)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:362)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1064)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:264)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:538)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:344)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1064)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:264)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:232)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:206)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:538)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:344)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1064)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:264)
at com.facebook.presto.jdbc.internal.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124)
at com.facebook.presto.jdbc.internal.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066)
at com.facebook.presto.jdbc.internal.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2207)
at com.facebook.presto.jdbc.ApacheQueryHttpClient.parseResult(ApacheQueryHttpClient.java:240)
I think the http client should ignore unknown fields to allow forward compatibility.