5.3 Changes in MySQL Connector/J 3.0.15 (2004-09-04)

Bugs Fixed

ResultSet.getMetaData() should not return
incorrectly initialized metadata if the result set has been
closed, but should instead throw an
SQLException. Also fixed for
getRow() and getWarnings()
and traversal methods by calling
checkClosed() before operating on
instance-level fields that are nullified during
.close().
(Bug #5069)

Use _binary introducer for
PreparedStatement.setBytes() and
set*Stream() when connected to MySQL-4.1.x or
newer to avoid misinterpretation during character conversion.
(Bug #5069)

Parse new time zone variables from 4.1.x servers.
(Bug #5069)

ResultSet should release
Field[] instance in
.close().
(Bug #5022)

RSMD.getPrecision() returning 0 for
nonnumeric types (should return max length in chars for
nonbinary types, max length in bytes for binary types). This fix
also fixes mapping of RSMD.getColumnType()
and RSMD.getColumnTypeName() for the
BLOB types based on the length
sent from the server (the server doesn't distinguish between
TINYBLOB,
BLOB,
MEDIUMBLOB or
LONGBLOB at the network protocol
level).
(Bug #4880)

DBMD.getColumns() returns incorrect JDBC type
for unsigned columns. This affects type mappings for all numeric
types in the RSMD.getColumnType() and
RSMD.getColumnTypeNames() methods as well, to
ensure that “like” types from
DBMD.getColumns() match up with what
RSMD.getColumnType() and
getColumnTypeNames() return.
(Bug #4860, Bug #4138)

Failover for autoReconnect not using port
numbers for any hosts, and not retrying all hosts.

Warning

This required a change to the SocketFactoryconnect() method signature, which is now
public Socket connect(String host, int portNumber,
Properties props); therefore, any third-party socket
factories will have to be changed to support this signature.

(Bug #4334)

Logical connections created by
MysqlConnectionPoolDataSource will now issue
a rollback() when they are closed and sent
back to the pool. If your application server/connection pool
already does this for you, you can set the
rollbackOnPooledClose property to
false to avoid the overhead of an extra
rollback().
(Bug #4334)

StringUtils.escapeEasternUnicodeByteStream
was still broken for GBK.
(Bug #4010)