MySQL Connector/J 8.0 Release Notes  /  Changes in MySQL Connector/J 8.0.16 (2019-04-25, General Availability)

Changes in MySQL Connector/J 8.0.16 (2019-04-25, General Availability)

Version 8.0.16 is the latest General Availability release of the 8.0 series of MySQL Connector/J. It is suitable for use with MySQL Server versions 8.0, 5.7, and 5.6. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.

Functionality Added or Changed

  • X DevAPI: Added BigInteger, BigDecimal, and Character as supported classes whose instances can be passed as parameters to a X DevAPI Table statement. Also made the error message clearer when applications try to pass instances of unsupported classes. (Bug #25650912)

  • X DevAPI: Connector/J now supports the ability to send connection attributes (key-value pairs that application programs can pass to the server at connect time) for X Protocol connections. Connector/J defines a default set of attributes, which can be disabled or enabled. In addition, applications can specify attributes to be passed in addition to the default attributes. The default behavior is to send the default attribute set. See the description for the new configuration property xdevapi.connect-attributes for details.

    Note

    The aggregate size of connection attribute data sent by a client is limited by the value of the performance_schema_session_connect_attrs_size server variable. The total size of the data package should be less than the value of the server variable, or the attribute data will be truncated.

  • X DevAPI: When using X DevAPI, performance for statements that are executed repeatedly (two or more times) is improved by using server-side prepared statements for the second and subsequent executions. See Working with Prepared Statements in the X DevAPI User Guide for details.

  • The version number has been removed from the name of the Connector/J JAR archive within the RPM packages for Connector/J. That makes upgrading Connector/J with RPM packages easier. (Bug #29384853)

  • The collation utf8mb4_zh_0900_as_cs has been added to the CharsetMapping class. (Bug #29244101)

  • The following third-party libraries have been removed from the distribution bundles for Connector/J:

    • Google protobuf for Java (required for using X DevAPI and for building Connector/J from source)

    • C3P0 (required for building Connector/J from source)

    • JBoss common JDBC wrapper (required for building Connector/J from source)

    • Simple Logging Facade API (required for using the logging capabilities provided by the default implementation of org.slf4j.Logger.Slf4JLogger by Connector/J, and for building Connector/J from source)

    Users who need those libraries have to obtain them on their own. See Installing Connector/J from a Binary Distribution and Installing from Source for details.

Bugs Fixed

  • X DevAPI: The method unquoteWorkaround() has been removed from the ExprParser class, as the workaround is no longer needed, and it actually produced wrong results in some cases. (Bug #29257922)

  • X DevAPI: Connector/J threw an error when a JSON document contained only a field with an empty array as its value. With this fix, Connector/J now takes that as a valid JSON document. (Bug #28834959, Bug #92819)

  • X DevAPI: getByte() calls failed on table columns of the BINARY data type. This was due to issues with string conversion, which has been corrected with this fix. (Bug #25650385)

  • X DevAPI: Any statements sent after a failed procedure call caused Connector/J to hang. This was because after the failed call, Connector/J was not aware that the result streamer had already been closed by the server. With this fix, an error is thrown when the procedure call fails, and the result streamer is nullified. (Bug #22038729)

  • X DevAPI: Unary negative and positive operators inside expressions were parsed wrongly as binary minus and plus operators. (Bug #21921956)

  • Because the SHOW PROCESSLIST statement might cause the server to fail sometimes, Connector/J now avoids using the statement, but queries the performance scheme instead for the information it needs. (Bug #29329326)

  • Some unnecessary information has been removed from the Connector/J log. (Bug #29318273)

  • In the DatabaseMetaDataUsingInfoSchema interface, the getProcedureColumns() and getFunctionColumns() methods returned wrong results for the PRECISION column, and the getColumns() and getVersionColumns() methods returned wrong results for the COLUMN_SIZE column. The errors were due to the wrong handling of the temporal type precision by Connector/J, which has now been fixed. (Bug #29186870)

  • For an SSL connection, after a client disconnected from a server by calling Connection.close(), the TCP connection remained in the TIME_WAIT state on the server side. With this fix, the connection remains in the TIME_WAIT state on the client side instead, in most cases. (Bug #29054329, Bug #93590)

  • The function LoadBalancedConnectionProxy.getGlobalBlacklist() always returned an empty map, thus there was never a blacklist for load-balanced connections. (Bug #28860051, Bug #93007)

  • The redundant file, changelog.gz, has been removed from the Debian 9 package for Connector/J. The file repeated the contents of the CHANGES.gz file. (Bug #27786499)

  • Using getBytes() to retrieve TEXT data resulted in a NumberFormatException. With this fix, the proper exception (SQLDataException), is now thrown. (Bug #27784363)

  • A changeUser() call failed with a java.io.IOException when the configuration property enablePacketDebug was set to true for a connection. (Bug #25642021)

  • bindings.getBoolean() always returned false. It was due to a mishandling of data types, which has been corrected with this fix. (Bug #22931700)