Bugs Fixed
Fixed PreparedStatement.setClob() not
accepting null as a parameter.
(Bug #11360)
Actually write manifest file to correct place so it ends up in the binary jar file. (Bug #10144)
Try to handle OutOfMemoryErrors more
gracefully. Although not much can be done, they will in most
cases close the connection they happened on so that further
operations don't run into a connection in some unknown state.
When an OOM has happened, any further operations on the
connection will fail with a “Connection closed”
exception that will also list the OOM exception as the reason
for the implicit connection close event.
(Bug #10850)
autoReconnect ping causes exception on
connection startup.
(Bug #11259)
Reorganized directory layout. Sources now are in
src folder. Don't pollute parent directory
when building, now output goes to ./build,
distribution goes to ./dist.
(Bug #10496)
Overhaul of character set configuration, everything now lives in a properties file.
Connection.setCatalog() is now aware of the
useLocalSessionState configuration property,
which when set to true will prevent the
driver from sending USE ... to the server if
the requested catalog is the same as the current catalog.
(Bug #11115)
Setting cachePrepStmts=true now causes the
Connection to also cache the check the driver
performs to determine if a prepared statement can be server-side
or not, as well as caches server-side prepared statements for
the lifetime of a connection. As before, the
prepStmtCacheSize parameter controls the size
of these caches.
(Bug #10850)
Don't send COM_RESET_STMT for each execution
of a server-side prepared statement if it isn't required.
(Bug #10850)
3-0-Compat: Compatibility with Connector/J
3.0.x functionality
(Bug #11115)
Production package doesn't include JBoss integration classes. (Bug #11411)
maxPerformance: Maximum performance without
being reckless
(Bug #11115)
Unsigned SMALLINT treated as
signed for ResultSet.getInt(), fixed all
cases for UNSIGNED integer values and
server-side prepared statements, as well as
ResultSet.getObject() for UNSIGNED
TINYINT.
(Bug #10156)
solarisMaxPerformance: Maximum performance
for Solaris, avoids syscalls where it can
(Bug #11115)
Added maintainTimeStats configuration
property (defaults to true), which tells the
driver whether or not to keep track of the last query time and
the last successful packet sent to the server's time. If set to
false, removes two syscalls per query.
(Bug #11115)
0-length streams not sent to server when using server-side prepared statements. (Bug #10850)
The data type returned for TINYINT(1) columns
when tinyInt1isBit=true (the default) can be
switched between Types.BOOLEAN and
Types.BIT using the new configuration
property transformedBitIsBoolean, which
defaults to false. If set to
false (the default),
DatabaseMetaData.getColumns() and
ResultSetMetaData.getColumnType() will return
Types.BOOLEAN for
TINYINT(1) columns. If
true, Types.BOOLEAN will
be returned instead. Regardless of this configuration property,
if tinyInt1isBit is enabled, columns with the
type TINYINT(1) will be returned as
java.lang.Boolean instances from
ResultSet.getObject(...), and
ResultSetMetaData.getColumnClassName() will
return java.lang.Boolean.
(Bug #10485)
VARBINARY data corrupted when
using server-side prepared statements and
ResultSet.getBytes().
(Bug #11115)
Added createDatabaseIfNotExist property
(default is false), which will cause the
driver to ask the server to create the database specified in the
URL if it doesn't exist. You must have the appropriate
privileges for database creation for this to work.
(Bug #10144)
SQLException thrown when retrieving
YEAR(2) with
ResultSet.getString(). The driver will now
always treat YEAR types as
java.sql.Dates and return the correct values
for getString(). Alternatively, the
yearIsDateType connection property can be set
to false and the values will be treated as
SHORTs.
(Bug #10485)
Connector/J dumping query into SQLException
twice.
(Bug #11360)
Made ServerPreparedStatement.asSql() work
correctly so auto-explain functionality would work with
server-side prepared statements.
(Bug #10155)
Double quotation marks not recognized when parsing client-side prepared statements. (Bug #10155)
Removed nonsensical “costly type conversion” warnings when using usage advisor. (Bug #11411)
com.mysql.jdbc.PreparedStatement.ParseInfo
does unnecessary call to toCharArray().
(Bug #9064)
Driver doesn't support {?=CALL(...)} for
calling stored functions. This involved adding support for
function retrieval to
DatabaseMetaData.getProcedures() and
getProcedureColumns() as well.
(Bug #10310)
Memory leak in ServerPreparedStatement if
serverPrepare() fails.
(Bug #10144)
Added support/bug hunting feature that generates
.sql test scripts to
STDERR when
autoGenerateTestcaseScript is set to
true.
(Bug #10496)
Driver detects if you're running MySQL-5.0.7 or later, and does
not scan for LIMIT ?[,?] in statements being
prepared, as the server supports those types of queries now.
(Bug #10850)
SQLException is thrown when using property
characterSetResults with
cp932 or eucjpms.
(Bug #10496)
Made JDBC2-compliant wrappers public to enable access to vendor extensions. (Bug #10155)
Added the following configuration bundles, use one or many using
the useConfigs configuration property:
maxPerformance: Maximum performance
without being reckless
solarisMaxPerformance: Maximum
performance for Solaris, avoids syscalls where it can
3-0-Compat: Compatibility with
Connector/J 3.0.x functionality
(Bug #11115)
DatabaseMetaData.supportsMultipleOpenResults()
now returns true. The driver has supported
this for some time, DBMD just missed that fact.
(Bug #10155)
Cleaned up logging of profiler events, moved code to dump a
profiler event as a string to
com.mysql.jdbc.log.LogUtils so that third
parties can use it.
(Bug #10155)
Made enableStreamingResults() visible on
com.mysql.jdbc.jdbc2.optional.StatementWrapper.
(Bug #10155)
Driver now correctly uses CP932 if available on the server for Windows-31J, CP932 and MS932 java encoding names, otherwise it resorts to SJIS, which is only a close approximation. Currently only MySQL-5.0.3 and newer (and MySQL-4.1.12 or .13, depending on when the character set gets backported) can reliably support any variant of CP932.
