MySQL Connector/J 5.0.8がリリースされました

MySQL Connector/J 5.0.8(MySQL用のタイプ4のall-Java JDBCドライバの最新バージョン)が リリースされました。









- ------------------------------
Functionality added or changed
- ------------------------------

- - Added two configuration parameters (both default to "false")

* blobsAreStrings  - Should the driver always treat BLOBs as Strings
specifically to work around dubious metadata returned by the server for
GROUP BY clauses?

* functionsNeverReturnBlobs - Should the driver always treat data from
functions returning BLOBs as Strings - specifically to work around dubious
metadata returned by the server for GROUP BY clauses?

- - Specifying a "validation query" in your connection pool that starts
with "/* ping */" _exactly_ will cause the driver to instead send a ping
to the server and return a fake result set (much lighter weight), and
when using a ReplicationConnection or a LoadBalancedConnection,
will send the ping across all active connections.

- - XAConnections now start in auto-commit mode (as per JDBC-4.0
specification clarification).

- - Driver will now fall back to sane defaults for max_allowed_packet and
net_buffer_length if the server reports them incorrectly (and will log
this situation at WARN level, since it's actually an error condition).

- ----------
Bugs Fixed
- ----------

- - FixedBUG#27182- Connection.getServerCharacterEncoding() doesn't work
for servers with version >= 4.1.

- - FixedBug#27412- cached metadata with PreparedStatement.execute()
throws NullPointerException.

- - FixedBUG#27867- Schema objects with identifiers other than the
connection character aren't retrieved correctly in      ResultSetMetadata.

- - FixedBUG#27915- DatabaseMetaData.getColumns() doesn't contain

- - FixedBUG#27916- UNSIGNED types not reported via DBMD.getTypeInfo(),
and capitalization of type names is not consistent between
DBMD.getColumns(), RSMD.getColumnTypeName() and DBMD.getTypeInfo().

This fix also ensures that the precision of UNSIGNED MEDIUMINT and
UNSIGNED BIGINT is reported correctly via DBMD.getColumns().

- - FixedBUG#28689- CallableStatement.executeBatch() doesn't work when
connection property "noAccessToProcedureBodies" has been set to "true".
The fix involves changing the behavior of "noAccessToProcedureBodies",in
that the driver will now report all paramters as "IN" paramters but
allow callers to call registerOutParameter() on them without throwing
an exception.

- - FixedBUG#28972- DatabaseMetaData.getTypeInfo() for the types DECIMAL
and NUMERIC will return a precision of 254 for server versions
older than 5.0.3, 64 for versions 5.0.3-5.0.5 and 65 for versions newer
than 5.0.5.

- - FixedBUG#29106- Connection checker for JBoss didn't use same method
parameters via reflection, causing connections to always seem "bad".

- - FixedBUG#29852- Closing a load-balanced connection would cause a

- - FixedBUG#30550, executeBatch() would fail with an ArithmeticException
and/or NullPointerException when the batch had zero members and
"rewriteBatchedStatements" was set to "true" for the connection.

- - FixedBUG#30664- Note that this fix only works for MySQL server
versions 5.0.25 and newer, since earlier versions didn't consistently
return correct metadata for functions, and thus results from
subqueries and functions were indistinguishable from each other,
leading to type-related bugs.

- - FixedBUG#30851, NPE with null column values when "padCharsWithSpace"
is set to "true".

- FixedBug#30892setObject(int, Object, int, int) delegate in
PreparedStatmentWrapper delegates to wrong method.

- - FixedBUG#31053- Connections established using URLs of the form
"jdbc:mysql:loadbalance://" weren't doing failover if they tried to
connect to a MySQL server that was down. The driver now attempts
connections to the next "best" (depending on the load balance strategy
in use) server, and continues to attempt connecting to the next "best"
server every 250 milliseconds until one is found that is up and running
or 5 minutes has passed.
 If the driver gives up, it will throw the last-received SQLException.