Fixes bugs found since release 5.1.19.
Important Change: This fix corrects an issue introduced in Connector/J 5.1.19 that caused connection errors with MySQL 4.1 and earlier servers. A
java.lang.ClassCastException
exception occurred during connection initialization whencom.mysql.jdbc.ConnectionImpl.buildCollationMapping()
interpreted the output of theSHOW COLLATION
statement. (Bug #13958793)Using Connector/J 5.1.19 in combination with JBoss could result in an error while establishing a connection:
MySQLNonTransientConnectionException: Bad handshake
. This issue occurred when using the old-style password hash, which requires themysql_old_password
plugin during handshake. A workaround was to replace the 16-byte hash with a 41-byte one, as explained in Password Hashing in MySQL. (Bug #13990612, Bug #64983)A
java.lang.StringIndexOutOfBoundsException
exception could occur when manipulating date/time values with fractional seconds. (Bug #13960556)A
MySQLSyntaxErrorException
could occur when calling certain methods while connected to a MySQL 5.6.5 or higher server. Affected methods includedStatementImpl.execute()
andPreparedStatement.execute()
. The cause was the removal of theSET OPTION
syntax in the MySQL Server. The methods were modified to use the newerSET
syntax internally. (Bug #13955027)The savepoint identifier generated by the
java.sql.Connection#.setSavepoint()
function could be misinterpreted as a floating-point number, for example values such as123e10
or123e10foo
. Such values could cause replication errors on slave servers because the values are not quoted in the binary log. The fix ensures that the savepoint identifiers do not begin with digits. (Bug #11763271, Bug #55962)If the string
limit
was used in a column name, prepared statements incorrectly treated the statement as if it used aLIMIT
clause. For example, a prepared statement withmaxrows
set to 0 could incorrectly reuse the value from a previous call tosetMaxRows()
. This issue applied to both quoted and unquoted column names, and server-side and client-side prepared statements. (Bug #11748492, Bug #36478)