MySQL Connector/J 5.1 Release Notes

2.13 Changes in MySQL Connector/J 5.1.37 (2015-10-15)

Version 5.1.37 is a maintenance release of the production 5.1 branch. It is suitable for use with MySQL Server versions 5.5, 5.6, and 5.7. It is also the first release of MySQL Connector/J to support the Java Database Connectivity (JDBC) 4.2 API.

Functionality Added or Changed

  • methodCompressedInputStream.getNextPacketFromServer() has been refactored to reduce memory use and garbage collection efforts caused by the use of the inflater. (Bug #21648826, Bug #78106)

  • The code for executing a REPLACE statement when rewriteBatchedStatements=true has been refactored by putting multiple batched statements into a single query, making it work more like an INSERT statement. This increases the efficiency for running REPLACE statements. Thanks to Jie Han for contributing the code. (Bug #21429909, Bug #77681)

  • A new connection property, sendFractionalSeconds=true|false, has been introduced. It controls whether fractional seconds in timestamps are to be truncated on the client side or to be sent to the server side for truncation there. See the entry for the new property in Configuration Properties for Connector/J for details. Thanks to Kwon Nam Son for contributing the code. (Bug #21304726, Bug #77449)

  • A new connection property, enableEscapeProcessing, has been introduced for supporting JDBC 4.2. It sets the default escape processing behavior for Statement objects. See the entry for the new property in Configuration Properties for Connector/J for details.

  • Connector/J now supports the JSON data type, which has been supported by the MySQL server since release 5.7.8.

Bugs Fixed

  • A ClassCastException resulted for a Fabric connection when rewriteBatchedStatements was true and a batch update was rewritten. (Bug #21876798)

  • A number of regression tests in the testsuite failed when they were run against MySQL 5.7, because the NO_AUTO_CREATE_USER SQL mode had become the default behavior of the server since MySQL 5.7.7, making some GRANT statements in the test fail when a new user had to be created. With this fix, CREATE USER statements have been added to the regressions tests when needed, to prevent the test failures. (Bug #21697684, Bug #78225)

  • Connecting to MySQL 5.0 and 5.1 using Connector/J 5.1.36 resulted in an SQLException, with a complaint for an Unknown system variable 'language'. (Bug #21415165, Bug #77665)

  • The IS_GENERATEDCOLUMN field was empty in the result returned by DatabaseMetaData.getColumns(). This fix corrects the field so that it contains a YES or NO according to whether the column is generated or not. (Bug #20969312, Bug #76859)

  • getTypeInfo() returned an incorrect PRECISION value of 255 for the data type of VARCHAR. The return value has been corrected to 65535. (Bug #20675539, Bug #76187)

  • When a connection is forcefully closed with abortInternal() in the ConnectionImpl class, a null point exception sometimes resulted. This is now avoided by putting the associated this.io.releaseResources() call inside a try block, so that the exception, unavoidable due to a race condition, can be properly caught and ignored. (Bug #20536592, Bug #75849)

  • If the MySQL server's default authentication method was SHA256 but neither one of the Connector/J connection properties allowPublicKeyRetrieval and serverRSAPublicKeyFile was set, the authentication failed with a TransientConnectionException, complaining that the public key could not be retrieved. With this fix, authentication continues in the situation, allowing other enabled authentication methods to be tried. (Bug #20433047, Bug #75670)

  • When a lock wait timeout occurred, an SQLException was thrown while an SQLTransientException should be thrown instead. It was due to a wrong SQLState number used in the code, which has now been fixed. (Bug #16634180)

  • When the time zone on the MySQL server was configured to GMT but the client was in a different time zone, Connector/J would make wrong adjustments for event timestamps when working with the server. (Bug #11758179, Bug #50348)