MySQL Connector/J 5.1.8 Has Been Released!

Mark Matthews <[email protected]> Wed, 15 Jul 2009 16:10:01 -0500
Newsgroups gmane.comp.db.mysql.java
Message-ID <[email protected]>
Hi,

MySQL Connector/J 5.1.8, a maintenance release of the production  
5.1branch has been released. Connector/J is the Type-IV pure-Java JDBC
driver for MySQL.

Version 5.1.8 is suitable for use with any MySQL version including  
MySQL-4.1, MySQL-5.0, MySQL-5.1 or the MySQL-5.4 performance
release.

It is now 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 (note that not all mirror sites may be up to date at  
this point of time - if you can't find this version on some mirror,  
please try again later or choose another download site.)

As always, we recommend that you check the change log

  http://dev.mysql.com/doc/refman/5.1/en/cj-news.html

and "Upgrading" sections

  http://dev.mysql.com/doc/refman/5.1/en/cj-upgrading.html

in the manual before upgrading as well as the "CHANGES" file in the  
download archive to be aware of changes in behavior that might affect
your application.

I'd also like to take a minute to welcome and thank Jess Balint (on  
the CC) to the development team for Connector/J. He's handled a good  
chunk of bug fixes for this release, as well as doing the qa and  
release engineering work. Thanks Jess!

We welcome and appreciate your feedback, bug reports, bug fixes,  
patches etc.:

  http://forge.mysql.com/wiki/Contributing

MySQL Connector/J 5.1.8 includes the following changes targeted at  
scalability and performance:

     - Fixed a performance regression (Bug#41532) in rewritten batched  
inserts when "ON DUPLICATE KEY"
       was present.

       Fixes include an improvement to token searching in the  
statement, and the ability for the driver
       to rewrite prepared statements that include "ON DUPLICATE KEY  
UPDATE" into multi-valued inserts as
       long as there is no use of LAST_INSERT_ID() in the update  
clause (as this would render
       getGeneratedKey() values incorrect).

     - Fixed BUG#43421 - Made doPing() global blacklist-aware, so that  
it does not
       throw Exceptions when at least a single load-balanced server is  
available.

     - The driver will automatically disable elideSetAutoCommit and  
useLocalTransactionState
       if it detects a MySQL server version older than 6.0.10 with the  
query cache enabled, due
       to Bug#36326 which can cause the server to report bogus  
transaction state.

     - Fixed Bug#44056 - Statement.getGeneratedKeys() retains result  
set instances until statement is closed,
       thus causing memory leaks for long-lived statements, or  
statements used in tight loops.

     - Fixed issues with server-side prepared statement batch re- 
writing caused by the fix to Bug#41532.
       Rewriting of batched statements now works the same between  
normal prepared statements and server-side
       prepared statements.

As well as the following general bug fixes and improvements:

     - Fixed BUG#44588 - Fixed error message for connection exceptions  
when
       streaming result sets are used.

     - Fixed BUG#43071 - Specifying ASCII encoding for converting seed  
String to
       byte array; allowing system default encoding to be used causes  
auth failures
       on EBCDIC platforms.

     - Fixed BUG#43070 - traceProtocol parameter isn't configured  
early enough to
       capture handshake protocol.

     - Fixed BUG#41161 - PreparedStatement.addBatch() doesn't check  
for all parameters
       being set, which leads to a NullPointerException when calling  
executeBatch() and
       rewriting batched statements into multi-value or multi- 
statement statements.

     - Fixed BUG#42055 - ConcurrentModificationException possible when  
removing items
       from global blacklist.

     - Fixed Bug #42309 - Statement.getGeneratedKeys() returns 2 keys  
when
       using ON DUPLICATE KEY UPDATE

     - Fixed some quoting of substituted parameter issues in localized  
error messages.

     - Added a version check around getting the variable  
'auto_increment_increment' for
       servers < 5.0.2, which quiets down a warning message that the  
driver would log
       when connecting to MySQL-4.1 or older.

     - Fixed Bug#44862 - getBestRowIdentifier does not return  
resultset as per JDBC API specifications

     - Fixed Bug#44683 - getVersionColumns does not return resultset  
as per JDBC API specifications

     - Fixed Bug#44865 - getColumns does not return resultset as per  
JDBC API specifications

     - Fixed Bug#44868 - getTypeInfo does not return resultset as per  
JDBC API specifications

     - Fixed Bug#44869 - getIndexInfo does not return resultset as per  
JDBC API specifications

     - Fixed Bug#44867 - getImportedKeys/exportedKeys/crossReference  
doesn't have correct type for DEFERRABILITY

     - Fixed Bug#41730 - SQL Injection when using U+00A5 and SJIS

     - Fixed Bug#43196 - Statement.getGeneratedKeys() doesn't return  
values for UNSIGNED BIGINTS with values > Long.MAX_VALUE.
       Unfortunately, because the server doesn't tell clients what  
TYPE the auto increment value is, the driver can't consistently
       return BigIntegers for the result set returned from  
getGeneratedKeys(), it will only return them if the value is >  
Long.MAX_VALUE.
       If your application needs this consistency, it will need to  
check the class of the return value from .getObject() on the
       ResultSet returned by Statement.getGeneratedKeys() and if it's  
not a BigInteger, create one based on the java.lang.Long that
       is returned.

     - Fixed Bug#38387 - "functionsNeverReturnBlobs=true" now works  
for SQL functions that return binary/binary collation VAR_STRINGS.

     - Fixed Bug#45171 - Connection.serverPrepareStatement() returns  
wrong default result set types

     - Fixed Bug #43714 - useInformationSchema with  
DatabaseMetaData.getExportedKeys() throws exception

     - Fixed Bug #42253 - multiple escaped quotes cause exception from  
EscapeProcessor

     - Fixed Bug #41566 - Quotes within comments not correctly ignored  
by statement parser

     - Fixed Bug #41269 - DatabaseMetadata.getProcedureColumns()  
returns  wrong value for column length

     - Fixed Bug #40439 - Error rewriting batched statement if table  
name ends with "values".

     - Fixed Bug #41484 Accessing fields by name after the ResultSet  
is closed throws NullPointerException.

     - Fixed Bug #39426 - executeBatch passes most recent  
PreparedStatement params to StatementInterceptor

     - Support use of INFORMATION_SCHEMA.PARAMETERS when  
"useInformationSchema" is set "true" and the view exists
       for DatabaseMetaData.getProcedureColumns() and  
getFunctionColumns().

     - When "logSlowQueries" is set to "true", and the driver has made  
a connection to a server that has suport
       for the SERVER_QUERY_WAS_SLOW flag in the protocol, the query  
will be logged if the server indicates the
       query has passed the slow query threshold.

     - Added new property, "maxAllowedPacket" to set maximum allowed  
packet size to send to server.


Enjoy!

	-Mark
-- 
Mark Matthews, Architect - Enterprise Tools
MySQL @ Sun Microsystems, Inc., http://www.sun.com/mysql/





-- 
MySQL Java Mailing List
For list archives: http://lists.mysql.com/java
To unsubscribe:    http://lists.mysql.com/[email protected]