[CONJ-994] Version 3.x rejects previously accepted boolean string parameter for BOOLEAN field Created: 2022-07-17  Updated: 2022-07-26  Resolved: 2022-07-26

Status: Closed
Project: MariaDB Connector/J
Component/s: 2.7 compatibility
Affects Version/s: 3.0.3, 3.0.4, 3.0.5, 3.0.6
Fix Version/s: 3.0.7

Type: Bug Priority: Major
Reporter: Julian Halliwell Assignee: Diego Dupin
Resolution: Fixed Votes: 0
Labels: regression


 Description   

In version 2.x setting a SQL parameter value for a BOOLEAN field insert/update as follows was accepted:

try( final PreparedStatement update = connection.prepareStatement( "UPDATE tests.datatypes SET booleanField = ?" ) ) {
  update.setObject( 1, "true", Types.BOOLEAN );
  update.execute();
}

Note that the value is a quoted string.

In 3.x this results in:

Incorrect integer value: 'true' for column `tests`.`datatypes`.`booleanField` at row 1
java.sql.SQLSyntaxErrorException: (conn=11) Incorrect integer value: 'true' for column `tests`.`datatypes`.`booleanField` at row 1
        at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:280)
        at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:368)
        at org.mariadb.jdbc.message.ClientMessage.readPacket(ClientMessage.java:137)
        at org.mariadb.jdbc.client.impl.StandardClient.readPacket(StandardClient.java:824)
        at org.mariadb.jdbc.client.impl.StandardClient.readResults(StandardClient.java:763)
        at org.mariadb.jdbc.client.impl.StandardClient.readResponse(StandardClient.java:682)
        at org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:625)
        at org.mariadb.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:95)
        at org.mariadb.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:265)
...



 Comments   
Comment by Diego Dupin [ 2022-07-26 ]

This concerns not only boolean, but lots of combination when value class doesn't correspond to SQLType.
done with https://github.com/mariadb-corporation/mariadb-connector-j/commit/40e52c2ee88923c7ac6345b90086ff0258129c60

Generated at Thu Feb 08 03:19:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.