Bugs fixed:
Fixed PreparedStatement.setObject(int, Object, int)
doesn't respect scale of BigDecimals. (Bug#19615)Fixed
ResultSet.wasNull()
returns incorrect value when extracting native string from server-side prepared statement generated result set. (Bug#19282)Fixed invalid classname returned for
ResultSetMetaData.getColumnClassName()
forBIGINT type
. (Bug#19282)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 data truncation and
getWarnings()
only returns last warning in set. (Bug#18740)Fixed aliased column names where length of name > 251 are corrupted. (Bug#18554)
Improved performance of retrieving
BigDecimal
,Time
,Timestamp
andDate
values from server-side prepared statements by creating fewer short-lived instances ofStrings
when the native type is not an exact match for the requested type. (Bug#18496)Added performance feature, re-writing of batched executes for
Statement.executeBatch()
(for all DML statements) andPreparedStatement.executeBatch()
(for INSERTs with VALUE clauses only). Enable by using "rewriteBatchedStatements=true" in your JDBC URL. (Bug#18041)Fixed issue where server-side prepared statements don't cause truncation exceptions to be thrown when truncation happens. (Bug#18041)
Fixed
CallableStatement.registerOutParameter()
not working when some parameters pre-populated. Still waiting for feedback from JDBC experts group to determine what correct parameter count fromgetMetaData()
should be, however. (Bug#17898)Fixed calling
clearParameters()
on a closed prepared statement causes NPE. (Bug#17587)Map "latin1" on MySQL server to CP1252 for MySQL > 4.1.0. (Bug#17587)
Added additional accessor and mutator methods on ConnectionProperties so that DataSource users can use same naming as regular URL properties. (Bug#17587)
Fixed
ResultSet.wasNull()
not always reset correctly for booleans when done using conversion for server-side prepared statements. (Bug#17450)Fixed
Statement.getGeneratedKeys()
throwsNullPointerException
when no query has been processed. (Bug#17099)Fixed updatable result set doesn't return
AUTO_INCREMENT
values forinsertRow()
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 straightforwardisAutoIncrement()
check). (Bug#16841)lib-nodist
directory missing from package breaks out-of-box build. (Bug#15676)Fixed issue with
ReplicationConnection
incorrectly copying state, doesn't transfer connection context correctly when transitioning between the same read-only states. (Bug#15570)No "dos" character set in MySQL > 4.1.0. (Bug#15544)
INOUT
parameter does not storeIN
value. (Bug#15464)PreparedStatement.setObject()
serializesBigInteger
as object, rather than sending as numeric value (and is thus not complementary to.getObject()
on anUNSIGNED LONG
type). (Bug#15383)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 theCharsetMapping
class. (Bug#14938)Exception thrown for new decimal type when using updatable result sets. (Bug#14609)
Driver now aware of fix for
BIT
type metadata that went into MySQL-5.0.21 for server not reporting length consistently . (Bug#13601)Added support for Apache Commons logging, use "com.mysql.jdbc.log.CommonsLogger" as the value for the "logger" configuration property. (Bug#13469)
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)
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 oflogger=com.mysql.jdbc.log.CommonsLogger
. (Bug#13469)ResultSet.getShort()
forUNSIGNED TINYINT
returned wrong values. (Bug#11874)