MySQL Connector/J 5.1 Release Notes
Should accept null
for catalog (meaning use
current) in DBMD methods, even though it is not JDBC-compliant
for legacy's sake. Disable by setting connection property
nullCatalogMeansCurrent
to
false
(which will be the default value in C/J
3.2.x).
(Bug #9917)
More tests in Field.isOpaqueBinary()
to
distinguish opaque binary (that is, fields with type
CHAR(n)
and CHARACTER SET
BINARY
) from output of various scalar and aggregate
functions that return strings.
(Bug #9778)
Fixed driver not returning true
for
-1
when
ResultSet.getBoolean()
was called on result
sets returned from server-side prepared statements.
(Bug #9778)
Added a Manifest.MF
file with
implementation information to the .jar
file.
(Bug #9778)
DBMD.getTables()
shouldn't return tables if
views are asked for, even if the database version doesn't
support views.
(Bug #9778)
Should accept null
for name patterns in DBMD
(meaning “%
”), even though it
isn't JDBC compliant, for legacy's sake. Disable by setting
connection property nullNamePatternMatchesAll
to false
(which will be the default value in
C/J 3.2.x).
(Bug #9769)
The performance metrics feature now gathers information about number of tables referenced in a SELECT. (Bug #9704)
The logging system is now automatically configured. If the value
has been set by the user, using the URL property
logger
or the system property
com.mysql.jdbc.logger
, then use that,
otherwise, autodetect it using the following steps:
Log4j, if it is available,
Then JDK1.4 logging,
Then fallback to our STDERR
logging.
(Bug #9704)
Statement.getMoreResults()
could throw NPE
when existing result set was .close()
d.
(Bug #9704)
Stored procedures with DECIMAL
parameters with storage specifications that contained
“,
” in them failed.
(Bug #9682)
PreparedStatement.setObject(int, Object, int type, int
scale)
now uses scale value for
BigDecimal
instances.
(Bug #9682)
Fixed build.xml
to not compile
log4j
logging if log4j
not
available.
(Bug #9320)
Better detection of LIMIT
inside/outside of
quoted strings so that the driver can more correctly determine
whether a prepared statement can be prepared on the server or
not.
(Bug #9320)
Added support for the c3p0 connection pool's
(http://c3p0.sf.net/) validation/connection
checker interface which uses the lightweight
COM_PING
call to the server if available. To
use it, configure your c3p0 connection pool's
connectionTesterClassName
property to use
com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
.
(Bug #9320)
PreparedStatement.getMetaData()
inserts blank
row in database under certain conditions when not using
server-side prepared statements.
(Bug #9320)
Connection.canHandleAsPreparedStatement()
now
makes “best effort” to distinguish
LIMIT
clauses with placeholders in them from
ones without to have fewer false positives when generating
work-arounds for statements the server cannot currently handle
as server-side prepared statements.
(Bug #9320)
Stored procedures with same name in different databases confuse the driver when it tries to determine parameter counts/types. (Bug #9319)
Added finalizers to ResultSet
and
Statement
implementations to be JDBC
spec-compliant, which requires that if not explicitly closed,
these resources should be closed upon garbage collection.
(Bug #9319)
A continuation of Bug #8868, where functions used in queries
that should return nonstring types when resolved by temporary
tables suddenly become opaque binary strings (work-around for
server limitation). Also fixed fields with type of
CHAR(n) CHARACTER SET BINARY
to return
correct/matching classes for
RSMD.getColumnClassName()
and
ResultSet.getObject()
.
(Bug #9236)
Cannot use UTF-8
for characterSetResults
configuration property.
(Bug #9206)
PreparedStatement.addBatch()
doesn't work
with server-side prepared statements and streaming
BINARY
data.
(Bug #9040)
Server-side session variables can be preset at connection time
by passing them as a comma-delimited list for the connection
property sessionVariables
.
(Bug #8868)
Fixed regression in ping()
for users using
autoReconnect=true
.
(Bug #8868)
ServerPreparedStatements
now correctly
“stream”
BLOB
/CLOB
data
to the server. You can configure the threshold chunk size using
the JDBC URL property blobSendChunkSize
(the
default is 1MB).
(Bug #8868)
BlobFromLocator
now uses correct identifier
quoting when generating prepared statements.
(Bug #8868)
DATE_FORMAT()
queries returned as
BLOB
s from
getObject()
.
(Bug #8868)
Check for empty strings (''
) when converting
CHAR
/VARCHAR
column data to numbers, throw exception if
emptyStringsConvertToZero
configuration
property is set to false
(for
backward-compatibility with 3.0, it is now set to
true
by default, but will most likely default
to false
in 3.2).
(Bug #8803)
DATA_TYPE
column from
DBMD.getBestRowIdentifier()
causes
ArrayIndexOutOfBoundsException
when accessed
(and in fact, didn't return any value).
(Bug #8803)
DBMD.supportsMixedCase*Identifiers()
returns
wrong value on servers running on case-sensitive file systems.
(Bug #8800)
DBMD.supportsResultSetConcurrency()
not
returning true
for forward-only/read-only
result sets (we obviously support this).
(Bug #8792)
Fixed ResultSet.getTime()
on a
NULL
value for server-side prepared
statements throws NPE.
Made Connection.ping()
a public method.
Added support for new precision-math
DECIMAL
type in MySQL 5.0.3 and
up.
Fixed DatabaseMetaData.getTables()
returning
views when they were not asked for as one of the requested table
types.