MySQL Connector/J 8.0.18 has been released

Dear MySQL users,

MySQL Connector/J 8.0.18 is the latest General Availability release of
the MySQL Connector/J 8.0 series.  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.

This release includes the following new features and changes, also
described in more detail on

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8.0.18.html

As always, we recommend that you check the “CHANGES” file in the
download archive to be aware of changes in behavior that might affect
your application.

To download MySQL Connector/J 8.0.18 GA, see the “General Availability
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!

Changes in MySQL Connector/J 8.0.18 (2019-10-14, General
Availability)

Bugs Fixed


     * A minor code improvement has been put into
       DatabaseMetaDataUsingInfoSchema.getColumns(). (Bug #29898567,
       Bug #95741)

     * For a replication setup, when the connection property
       loadBalanceAutoCommitStatementThreshold was set to any values
       other than 0, load-balancing server switching failed. It was
       because in this case, LoadBalancedAutoCommitInterceptor did not
       have the required access to the parent connection proxy that
       had established the connection, and this fix enables such access.
       (Bug #25223123, Bug #84098)

     * An attempt to retrieve multiple result sets returned by
       asynchronous executions of stored procedures resulted in an
       ExecutionException. With this fix, Connector/J now works properly
       when asynchronous executions return multiple result sets.
       (Bug #23721537)

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/J 5.1.48 GA has been released

Dear MySQL Users,

MySQL Connector/J 5.1.48, a maintenance release of the production 5.1

branch has been released. Connector/J is the Type-IV pure-Java JDBC

driver for MySQL.

MySQL Connector/J is available in source and binary form from the

Connector/J download pages at

http://dev.mysql.com/downloads/connector/j/5.1.html

and mirror sites as well as Maven repositories.

MySQL Connector/J (Commercial) is available for download on the My Oracle

Support (MOS) website. This release will shortly be available on

eDelivery (OSDC).

As always, we recommend that you check the “CHANGES” file in the

download archive to be aware of changes in behavior that might affect

your application.

MySQL Connector/J 5.1.48 includes the following general bug fixes and

improvements, also available in more detail on

https://dev.mysql.com/doc/relnotes/connector-j/5.1/en/news-5-1-48.html

Changes in MySQL Connector/J 5.1.48 (2019-07-29, General Availability)

   Version 5.1.48 is a maintenance release of the production 5.1

   branch. It is suitable for use with MySQL Server versions

   5.6, 5.7, and 8.0. It supports the Java Database Connectivity

   (JDBC) 4.2 API.

Functionality Added or Changed

     * Important Change: For MySQL Server 8.0.14 and later,

       5.7.25 and later, 5.6.43 and later, and 5.5.63 and later,

       minimal permissions on named pipes are granted to clients

       that use them to connect to the server. Connector/J,

       however, can only use named pipes when granted full

       access on them. As a workaround, the MySQL Server that

       Connector/J wants to connect to must be started with the

       system variable named_pipe_full_access_group; see the

       description for the system variable for more details.

       (Bug #28971500)

     * The collation utf8mb4_zh_0900_as_cs has been added to the

       CharsetMapping class. (Bug #29244101)

     * The list of MySQL Server reserved words, stored as the

       MYSQL_KEYWORDS string in the DatabaseMetaData class, has

       been updated. (Bug #28268619, Bug #91435)

     * A number of private parameters of ProfilerEvents (for

       example, hostname) had no getters for accessing them from

       outside of the class instance. Getter methods have now

       been added for all the parameters of the class. (Bug

       #20010454, Bug #74690)

     * Added support for the utf8mb4_0900_bin collation, which

       is now supported by MySQL Server 8.0.17.

Bugs Fixed

     * When a CallableStatement was used to call a stored

       procedure or function that did not exist on the server or

       that the client had no rights to access its parameters’

       metadata, Connector/J tried to infer the parameter

       metadata from the SQL call string itself, but did so

       wrongly. It was because Connector/J did not distinguish

       between a stored procedure and a stored function in its

       inference, and this fix makes Connector/J do so now. (Bug

       #29907618)

     * ResultSetMetaData.getTableName() returned null when no

       applicable results could be returned for a column.

       However, the JDBC documentation specified an empty string

       to be returned in that case. This fix makes the method

       behave as documented. The same correction has been made

       for getCatalogName() and getSchemaName(). (Bug #29452669,

       Bug #94585)

     * Because the SHOW PROCESSLIST

       (https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html)

       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)

     * Enabling logSlowQueries resulted in many unnecessary

       calls of LogUtils.findCallingClassAndMethod(). With this

       fix, LogUtils.findCallingClassAndMethod() is called only

       when profileSQL is true and even in that case, the number

       of calls are reduced to a minimal to avoid the excessive

       stack trace data the function used to generate. Thanks to

       Florian Agsteiner for contributing to the fix. (Bug

       #29277648, Bug #94101, Bug #17640628, Bug #70677)

     * For an SSL connection, after a client disconnected from a

       server by calling Connection.close(), the TCP connection

       remained in the TIME_WAIT

       (https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html)

       state on the server side. With this fix, the connection

       remains in the TIME_WAIT

       (https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html)

       state on the client side instead, in most cases.

       (Bug #29054329, Bug #93590)

     * A memory leak occurred if Connector/J was loaded via the

       bootstrap class path instead of the main application

       classpath. It was because

       AbandonedConnectionCleanupThread failed to initialize its

       internal thread in that case, so that references for

       closed connections were not cleaned up, and their number

       kept growing. This fix repairs the clean up process for

       closed connections and also makes the process thread

       safe. (Bug #28747636, Bug #92508)

     * PreparedStatement.setTimestamp threw a

       NullPointerException if getParameterMetaData() was called

       before the statement was executed. This fix adds the

       missing null checks to getParameterMetaData() to avoid

       the exception. (Bug #28529781, Bug #92089)

     * Setting the connection property characterEncoding to an

       encoding that maps to the MySQL character set latin1 or

       utf8mb4 did not result in the corresponding default

       connection collation (latin1_swedish_ci or

       utf8mb4_0900_ai_ci, respectively) to be used on the

       server. With this fix, the server default is used in the

       situation. (Bug #28207422)

     * Characters returned in a ResultSet were garbled when a

       server-side PreparedStatement was used, and the query

       involved concatenation of a number and a string with

       multi-byte characters. That was due to an issue with the

       number-to-string conversion involved, which has been

       corrected by this fix. (Bug #27453692)

     * ResultSet.updateRow() failed with a

       MySQLSyntaxErrorException when the server was in

       NO_BACKSLASH_ESCAPES SQL mode and some but not all text

       columns were updated. It was because Connector/J sent the

       strings as hex literals in that case and added to them

       unnecessary quotes for escapes. This fix add checks to

       avoid quotes for being added unnecessarily. (Bug

       #22850444, Bug #80441)

     * PreparedStatement.executeUpdate() failed with a

       MySQLSyntaxErrorException when the server was in

       NO_BACKSLASH_ESCAPES SQL mode and BLOB data types were

       involved in the statement. It was because Connector/J did

       not escape single quotes in BLOB value properly in

       NO_BACKSLASH_ESCAPES mode, and the problem has been

       corrected by this fix. (Bug #20913289)

     * When a procedure and a function with the same name

       existed in a database, Connector/J retrieved parameter

       information from both at the same time by default,

       causing various errors at statement executions. This fix

       leverages the JDBC 4 DatabaseMetaData methods to return

       parameter information only from the procedure or function

       of interest, so that statements are executed without

       errors. (Bug #19531305, Bug #73774)

     * Calling ProfilerEvent.pack() resulted in an

       ArrayIndexOutOfBoundsException. It was due to a

       mishandling of data types, which has been corrected by

       this fix. (Bug #11750577, Bug #41172)

On Behalf of Oracle/MySQL Release Engineering Team,

Hery Ramilison

MySQL Connector/J 8.0.17 has been released

Dear MySQL users,

MySQL Connector/J 8.0.17 is the latest General Availability
release of the MySQL Connector/J 8.0 series.  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.

This release includes the following new features and changes, also
described in more detail on

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-17.html

As always, we recommend that you check the “CHANGES” file in the
download archive to be aware of changes in behavior that might affect
your application.

To download MySQL Connector/J 8.0.17 GA, see the “Generally Available
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!

———————————————————————–

Changes in MySQL Connector/J 8.0.17 (2019-07-22, General
Availability)

Functionality Added or Changed

     * X DevAPI: The following methods have been deprecated:

          + Collection.find().where()

          + Collection.modify().where()

          + Collection.remove().where()

     * X DevAPI: Two new operators for JSON objects and arrays,
       overlaps and not_overlaps, are now supported. See the X
       DevAPI User Guide
       (https://dev.mysql.com/doc/x-devapi-userguide/en/) for
       details.

     * X DevAPI: Indexing for array fields is now supported. See
       Indexing Array Fields
       (https://dev.mysql.com/doc/x-devapi-userguide/en/collecti
       on-indexing.html#collection-indexing-array) in the X
       DevAPI User Guide
       (https://dev.mysql.com/doc/x-devapi-userguide/en/) for
       details.

     * The README and LICENSE files are now included inside the
       Connector/J JAR archive delivered in the
       platform-independent tarballs and zip files. (Bug
       #29591275)

     * A number of private parameters of ProfilerEvents (for
       example, hostname) had no getters for accessing them from
       outside of the class instance. Getter methods have now
       been added for all the parameters of the class. (Bug
       #20010454, Bug #74690)

     * A new connection property, databaseTerm, sets which of
       the two terms is used in an application to refer to a
       database. The property takes one of the two values
       CATALOG or SCHEMA and uses it to determine which
       Connection methods can be used to set/get the current
       database, which arguments can be used within the various
       DatabaseMetaData methods to filter results, and which
       fields in the ResultSet returned by DatabaseMetaData
       methods contain the database identification information.
       See the entry for databaseTerm in Configuration
       Properties
(https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html)
       for details. Also, the connection property
       nullCatalogMeansCurrent has been renamed to
       nullDatabaseMeansCurrent. The old name remains an alias
       for the connection property. Thanks to Harald Aamot for
       contributing to the patch.
       (Bug #11891000, Bug #27356869, Bug #89133)

     * A new CONTRIBUTING file has been added to the Connector/J
       repository on GitHub
       (https://github.com/mysql/mysql-connector-j), which
       provides guidelines for code contribution and bug
       reporting.

     * The MySQL Connector/J X DevAPI Reference can now be
       generated from the Connector/J source code as an Ant
       target, xdevapi-docs.

     * Added support for host names that are longer than 60
       characters (up to 255 characters), as they are now
       supported by MySQL Server 8.0.17.

     * Added support for the utf8mb4_0900_bin collation, which
       is now supported by MySQL Server 8.0.17.

     * A cached server-side prepared statement can no longer be
       effectively closed by calling Statement.close() twice. To
       close and de-cache the statement, do one of the
       following:

          + Close the connection (assuming the connection is
            tracking all open resources).

          + Use the implementation-specific method
            JdbcPreparedStatement.realClose().

          + Set the statement as non-poolable by calling the
            method Statement.setPoolable(false) before or after
            closing it.

Bugs Fixed

     * X DevAPI: The IN operator in X DevAPI expressions, when
       followed by a square bracket ([), got mapped onto the
       wrong operation in X Protocol. (Bug #29821029)

     * When using a replication connection, retrieving data from
       BlobFromLocator resulted in a ClassCastException. It was
       due to some wrong and unnecessary casting, which has been
       removed by this fix. (Bug #29807741, Bug #95210)

     * ResultSetMetaData.getTableName() returned null when no
       applicable results could be returned for a column.
       However, the JDBC documentation specified an empty string
       to be returned in that case. This fix makes the method
       behave as documented. The same correction has been made
       for getCatalogName() and getSchemaName(). (Bug #29452669,
       Bug #94585)

     * ResultSetImpl.getObject(), when autoboxing a value of a
       primitive type retrieved from a column, returned a
       non-null object when the retrieved value was null. (Bug
       #29446100, Bug #94533)

     * ResultSetImpl.getDouble() was very inefficient because it
       called FloatingPointBoundsEnforcer.createFromBigDecimal,
       which needlessly recreated BigDecimal objects for the
       fixed minimum and maximum bounds. With this fix, the
       objects BigDecimal.valueOf(min) and
       BigDecimal.valueOf(max) are cached after they are first
       created, thus avoiding their recreations. (Bug #29446059,
       Bug #94442)

     * Enabling logSlowQueries resulted in many unnecessary
       calls of LogUtils.findCallingClassAndMethod(). With this
       fix, LogUtils.findCallingClassAndMethod() is called only
       when profileSQL is true and even in that case, the number
       of calls are reduced to a minimal to avoid the excessive
       stack trace data the function used to generate. Thanks to
       Florian Agsteiner for contributing to the fix. (Bug
       #29277648, Bug #94101, Bug #17640628, Bug #70677)

     * Characters returned in a ResultSet were garbled when a
       server-side PreparedStatement was used, and the query
       involved concatenation of a number and a string with
       multi-byte characters. That was due to an issue with the
       number-to-string conversion involved, which has been
       corrected by this fix. (Bug #27453692)

     * Calling ProfilerEvent.pack() resulted in an
       ArrayIndexOutOfBoundsException. It was due to a
       mishandling of data types, which has been corrected by
       this fix. (Bug #11750577, Bug #41172)

Enjoy and thanks for the support!

On Behalf of MySQL/ORACLE RE Team
Sreedhar S