Bugs Fixed
Issue exception on
ResultSet.get
on empty result set (wasn't caught in some cases).
(Bug #848)XXX()
Made databaseName,
portNumber, and serverName
optional parameters for
MysqlDataSourceFactory.
(Bug #1246)
ResultSet.get/setString mashing char 127.
(Bug #1247)
Double-escaping of '\' when charset is SJIS
or GBK and '\' appears in nonescaped input.
(Bug #879)
Don't hide messages from exceptions thrown in I/O layers. (Bug #848)
Support InnoDB constraint names when
extracting foreign key information in
DatabaseMetaData (implementing ideas from
Parwinder Sekhon).
(Bug #664, Bug #517)
Fixed CLOB.truncate().
(Bug #1130)
Fixed ResultSet.previous() behavior to move
current position to before result set when on first row of
result set.
(Bug #496)
Backported 4.1 protocol changes from 3.1 branch (server-side SQL states, new field information, larger client capability flags, connect-with-database, and so forth). (Bug #664, Bug #517)
Fixed Statement and
PreparedStatement issuing bogus queries when
setMaxRows() had been used and a
LIMIT clause was present in the query.
(Bug #496)
Added property to “clobber” streaming results, by
setting the clobberStreamingResults property
to true (the default is
false). This will cause a
“streaming” ResultSet to be
automatically closed, and any outstanding data still streaming
from the server to be discarded if another query is executed
before all the data has been read from the server.
(Bug #1247)
When emptying input stream of unused rows for
“streaming” result sets, have the current thread
yield() every 100 rows to not monopolize CPU
time.
(Bug #879)
Fixed deadlock issue with
Statement.setMaxRows().
(Bug #1099)
Don't wrap SQLExceptions in
RowDataDynamic.
(Bug #688)
Added com.mysql.jdbc.util.BaseBugReport to
help creation of testcases for bug reports.
(Bug #1247)
Clip +/- INF (to smallest and largest representative values for
the type in MySQL) and NaN (to 0) for
setDouble/setFloat(), and
issue a warning on the statement when the server does not
support +/- INF or NaN.
(Bug #884)
Don't try and reset isolation level on reconnect if MySQL doesn't support them. (Bug #688)
DatabaseMetaData.getColumns() getting
confused about the keyword “set” in character
columns.
(Bug #1099)
Fixed regression in large split-packet handling. (Bug #848)
Fixed test for end of buffer in
Buffer.readString().
The insertRow in an
UpdatableResultSet is now loaded with the
default column values when moveToInsertRow()
is called.
(Bug #688)
Better diagnostic error messages in exceptions for “streaming” result sets. (Bug #848)
Backported authentication changes for 4.1.1 and newer from 3.1 branch. (Bug #1247)
DatabaseMetaData.getColumns() wasn't
returning NULL for default values that are
specified as NULL.
(Bug #688)
Don't change timestamp TZ twice if
useTimezone==true.
(Bug #774)
refreshRow didn't work when primary key
values contained values that needed to be escaped (they ended up
being doubly escaped).
(Bug #661)
Fix UpdatableResultSet to return values for
get when on
insert row.
(Bug #675)XXX()
Don't fire connection closed events when closing pooled
connections, or on
PooledConnection.getConnection() with already
open connections.
(Bug #884)
Change default statement type/concurrency to
TYPE_FORWARD_ONLY and
CONCUR_READ_ONLY (spec compliance).
(Bug #688)
Faster date handling code in ResultSet and
PreparedStatement (no longer uses
Date methods that synchronize on static
calendars).
Optimized CLOB.setChracterStream().
(Bug #1131)
