Bugs fixed:
PreparedStatements
not creating streaming result sets. (Bug#8487)Don't pass
NULL
toString.valueOf()
inResultSet.getNativeConvertToString()
, as it stringifies it (that is, returnsnull
), which is not correct for the method in question. (Bug#8487)Fixed NPE in
ResultSet.realClose()
when using usage advisor and result set was already closed. (Bug#8428)ResultSet.getString()
doesn't maintain format stored on server, bug fix only enabled whennoDatetimeStringSync
property is set totrue
(the default isfalse
). (Bug#8428)Added support for
BIT
type in MySQL-5.0.3. The driver will treatBIT(1-8)
as the JDBC standardBIT
type (which maps tojava.lang.Boolean
), as the server does not currently send enough information to determine the size of a bitfield when < 9 bits are declared.BIT(>9)
will be treated asVARBINARY
, and will returnbyte[]
whengetObject()
is called. (Bug#8424)Added
useLocalSessionState
configuration property, when set totrue
the JDBC driver trusts that the application is well-behaved and only sets autocommit and transaction isolation levels using the methods provided onjava.sql.Connection
, and therefore can manipulate these values in many cases without incurring round-trips to the database server. (Bug#8424)Added
enableStreamingResults()
toStatement
for connection pool implementations that checkStatement.setFetchSize()
for specification-compliant values. CallStatement.setFetchSize(>=0)
to disable the streaming results for that statement. (Bug#8424)ResultSet.getBigDecimal()
throws exception when rounding would need to occur to set scale. The driver now chooses a rounding mode of “half up” if nonroundingBigDecimal.setScale()
fails. (Bug#8424)Fixed synchronization issue with
ServerPreparedStatement.serverPrepare()
that could cause deadlocks/crashes if connection was shared between threads. (Bug#8096)Emulated locators corrupt binary data when using server-side prepared statements. (Bug#8096)
Infinite recursion when “falling back” to master in failover configuration. (Bug#7952)
Disable multi-statements (if enabled) for MySQL-4.1 versions prior to version 4.1.10 if the query cache is enabled, as the server returns wrong results in this configuration. (Bug#7952)
Removed
dontUnpackBinaryResults
functionality, the driver now always stores results from server-side prepared statements as is from the server and unpacks them on demand. (Bug#7952)Fixed duplicated code in
configureClientCharset()
that preventeduseOldUTF8Behavior=true
from working properly. (Bug#7952)Added
holdResultsOpenOverStatementClose
property (default isfalse
), that keeps result sets open over statement.close() or new execution on same statement (suggested by Kevin Burton). (Bug#7715)Detect new
sql_mode
variable in string form (it used to be integer) and adjust quoting method for strings appropriately. (Bug#7715)Timestamps converted incorrectly to strings with server-side prepared statements and updatable result sets. (Bug#7715)
Timestamp key column data needed
_binary
stripped forUpdatableResultSet.refreshRow()
. (Bug#7686)Choose correct “direction” to apply time adjustments when both client and server are in GMT time zone when using
ResultSet.get(..., cal)
andPreparedStatement.set(...., cal)
. (Bug#4718)Remove
_binary
introducer from parameters used as in/out parameters inCallableStatement
. (Bug#4718)Always return
byte[]
s for output parameters registered as*BINARY
. (Bug#4718)By default, the driver now scans SQL you are preparing using all variants of
Connection.prepareStatement()
to determine if it is a supported type of statement to prepare on the server side, and if it is not supported by the server, it instead prepares it as a client-side emulated prepared statement. You can disable this by passingemulateUnsupportedPstmts=false
in your JDBC URL. (Bug#4718)Added
dontTrackOpenResources
option (default isfalse
, to be JDBC compliant), which helps with memory use for nonwell-behaved apps (that is, applications that don't closeStatement
objects when they should). (Bug#4718)Send correct value for “boolean”
true
to server forPreparedStatement.setObject(n, "true", Types.BIT)
. (Bug#4718)Fixed bug with Connection not caching statements from
prepareStatement()
when the statement wasn't a server-side prepared statement. (Bug#4718)