Fixes bugs found since release 5.1.21.
Performance: The
com.mysql.jdbc.getCharsetNameForIndex()
method was made more efficient, resulting in better performance for queries against tables containing many columns with string data types. (Bug #14236302, Bug #65508)-
The
LoadBalancingConnectionProxy.pickNewConnection()
method could incorrectly flag the current connection as invalid after testing another connection. The selection process could choose another (potentially offline) host, leading to a “connection is closed” error when trying to use a connection after re-balancing:No operations allowed after connection closed. Connection closed after inability to pick valid new connection during fail-over.
(Bug #14563127)
With
profileSQL=true
anduseNanosForElapsedTime=true
specified in the connection URL, query and fetch duration were not reported correctly. Thecom.mysql.jdbc.MysqlIO.sqlQueryDirect()
method always measured times in milliseconds rather than switching between milliseconds and nanoseconds. (Bug #14273046, Bug #57662)ResultSet
objects created by thegetGeneratedKeys()
method were not being automatically closed, leading to potential memory leaks if the application did not explicitly close theResultSet
objects. (Bug #14192873, Bug #65503)Implemented the
getVersionColumns()
method, which formerly always returned an empty result set. Now this method returns the timestamp columns that are updated every time a row is changed. (Bug #13636546, Bug #63800)-
Connecting to a server that used a
UCS2
character set would throw an exception:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??' at line 1
Now, Connector/J sets
characterEncoding
implicitly toUTF-8
when the server character set isUCS2
. Because the Connector/J UTF-8 implementation does not cover all UCS-2 characters, note that truncation might occur in some cases. (Bug #11751035, Bug #41752) Connector/J now avoids synchronization issues in terms of locking order and prepared statements.