Bugs fixed:
- Use 1MB packet for sending file for - LOAD DATA LOCAL INFILEif that is <- max_allowed_packeton server. (Bug#6537)
- SUM()on- DECIMALwith server-side prepared statement ignores scale if zero-padding is needed (this ends up being due to conversion to- DOUBLEby server, which when converted to a string to parse into- BigDecimal, loses all “padding” zeros). (Bug#6537)
- Use - DatabaseMetaData.getIdentifierQuoteString()when building DBMD queries. (Bug#6537)
- Use our own implementation of buffered input streams to get around blocking behavior of - java.io.BufferedInputStream. Disable this with- useReadAheadInput=false. (Bug#6399)
- Make auto-deserialization of - java.lang.Objectsstored in- BLOBcolumns configurable using- autoDeserializeproperty (defaults to- false). (Bug#6399)
- ResultSetMetaData.getColumnDisplaySize()returns incorrect values for multi-byte charsets. (Bug#6399)
- Re-work - Field.isOpaqueBinary()to detect- CHAR(to support fixed-length binary fields for- n) CHARACTER SET BINARY- ResultSet.getObject(). (Bug#6399)
- Failing to connect to the server when one of the addresses for the given host name is IPV6 (which the server does not yet bind on). The driver now loops through all IP addresses for a given host, and stops on the first one that - accepts()a- socket.connect(). (Bug#6348)
- Removed unwanted new - Throwable()in- ResultSetconstructor due to bad merge (caused a new object instance that was never used for every result set created). Found while profiling for Bug#6359. (Bug#6225)
- ServerSidePreparedStatementallocating short-lived objects unnecessarily. (Bug#6225)
- Use null-safe-equals for key comparisons in updatable result sets. (Bug#6225) 
- Fixed too-early creation of - StringBufferin- EscapeProcessor.escapeSQL(), also return- Stringwhen escaping not needed (to avoid unnecessary object allocations). Found while profiling for Bug#6359. (Bug#6225)
- UNSIGNED BIGINTunpacked incorrectly from server-side prepared statement result sets. (Bug#5729)
- Added experimental configuration property - dontUnpackBinaryResults, which delays unpacking binary result set values until they're asked for, and only creates object instances for nonnumeric values (it is set to- falseby default). For some usecase/jvm combinations, this is friendlier on the garbage collector. (Bug#5706)
- Don't throw exceptions for - Connection.releaseSavepoint(). (Bug#5706)
- Inefficient detection of pre-existing string instances in - ResultSet.getNativeString(). (Bug#5706)
- Use a per-session - Calendarinstance by default when decoding dates from- ServerPreparedStatements(set to old, less performant behavior by setting property- dynamicCalendars=true). (Bug#5706)
- Fixed batched updates with server prepared statements weren't looking if the types had changed for a given batched set of parameters compared to the previous set, causing the server to return the error “Wrong arguments to mysql_stmt_execute()”. (Bug#5235) 
- Handle case when string representation of timestamp contains trailing “ - .” with no numbers following it. (Bug#5235)
- Server-side prepared statements did not honor - zeroDateTimeBehaviorproperty, and would cause class-cast exceptions when using- ResultSet.getObject(), as the all-zero string was always returned. (Bug#5235)
- Fix comparisons made between string constants and dynamic strings that are converted with either - toUpperCase()or- toLowerCase()to use- Locale.ENGLISH, as some locales “override” case rules for English. Also use- StringUtils.indexOfIgnoreCase()instead of- .toUpperCase().indexOf(), avoids creating a very short-lived transient- Stringinstance.