Bugs Fixed
Added performance feature, re-writing of batched executes for
Statement.executeBatch() (for all DML
statements) and
PreparedStatement.executeBatch() (for INSERTs
with VALUE clauses only). Enable by using
"rewriteBatchedStatements=true" in your JDBC URL.
(Bug #18041)
DBMD.getColumns() returns wrong type for
BIT.
(Bug #15854)
PreparedStatement.setObject() serializes
BigInteger as object, rather than sending as
numeric value (and is thus not complementary to
.getObject() on an UNSIGNED
LONG type).
(Bug #15383)
Fixed aliased column names where length of name > 251 are corrupted. (Bug #18554)
Exception thrown for new decimal type when using updatable result sets. (Bug #14609)
Improved performance of retrieving
BigDecimal, Time,
Timestamp and Date values
from server-side prepared statements by creating fewer
short-lived instances of Strings when the
native type is not an exact match for the requested type.
(Bug #18496)
Fixed calling clearParameters() on a closed
prepared statement causes NPE.
(Bug #17587)
Driver now aware of fix for BIT
type metadata that went into MySQL-5.0.21 for server not
reporting length consistently .
(Bug #13601)
No "dos" character set in MySQL > 4.1.0. (Bug #15544)
Map "latin1" on MySQL server to CP1252 for MySQL > 4.1.0. (Bug #17587)
Fixed
CallableStatement.registerOutParameter() not
working when some parameters pre-populated. Still waiting for
feedback from JDBC experts group to determine what correct
parameter count from getMetaData() should be,
however.
(Bug #17898)
Fixed ResultSet.wasNull() not always reset
correctly for booleans when done using conversion for
server-side prepared statements.
(Bug #17450)
Added support for Apache Commons logging, use "com.mysql.jdbc.log.CommonsLogger" as the value for the "logger" configuration property. (Bug #13469)
Fixed ResultSet.wasNull() returns incorrect
value when extracting native string from server-side prepared
statement generated result set.
(Bug #19282)
Fixed updatable result set doesn't return
AUTO_INCREMENT values for
insertRow() when multiple column primary keys
are used. (the driver was checking for the existence of
single-column primary keys and an autoincrement value > 0
instead of a straightforward
isAutoIncrement() check).
(Bug #16841)
Fixed invalid classname returned for
ResultSetMetaData.getColumnClassName() for
BIGINT type.
(Bug #19282)
INOUT parameter does not store
IN value.
(Bug #15464)
Fixed issue with ReplicationConnection
incorrectly copying state, doesn't transfer connection context
correctly when transitioning between the same read-only states.
(Bug #15570)
Fixed case where driver wasn't reading server status correctly when fetching server-side prepared statement rows, which in some cases could cause warning counts to be off, or multiple result sets to not be read off the wire. (Bug #19282)
Fixed PreparedStatement.setObject(int, Object,
int) doesn't respect scale of BigDecimals.
(Bug #19615)
Fixed driver trying to call methods that don't exist on older and newer versions of Log4j. The fix is not trying to auto-detect presence of log4j, too many different incompatible versions out there in the wild to do this reliably.
If you relied on autodetection before, you will need to add "logger=com.mysql.jdbc.log.Log4JLogger" to your JDBC URL to enable Log4J usage, or alternatively use the new "CommonsLogger" class to take care of this. (Bug #13469)
Fixed Statement.getGeneratedKeys() throws
NullPointerException when no query has been
processed.
(Bug #17099)
ResultSet.getShort() for UNSIGNED
TINYINT returned wrong values.
(Bug #11874)
lib-nodist directory missing from package
breaks out-of-box build.
(Bug #15676)
Added additional accessor and mutator methods on ConnectionProperties so that DataSource users can use same naming as regular URL properties. (Bug #17587)
LogFactory now prepends com.mysql.jdbc.log to
the log class name if it cannot be found as specified. This
enables you to use “short names” for the built-in
log factories, for example,
logger=CommonsLogger instead of
logger=com.mysql.jdbc.log.CommonsLogger.
(Bug #13469)
Fixed data truncation and getWarnings() only
returns last warning in set.
(Bug #18740)
Fixed issue where server-side prepared statements don't cause truncation exceptions to be thrown when truncation happens. (Bug #18041)
Fixed issue where driver was unable to initialize character set
mapping tables. Removed reliance on
.properties files to hold this information,
as it turns out to be too problematic to code around class
loader hierarchies that change depending on how an application
is deployed. Moved information back into the
CharsetMapping class.
(Bug #14938)
