Bugs fixed:
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 propertynullCatalogMeansCurrent
tofalse
(which will be the default value in C/J 3.2.x). (Bug#9917)Fixed driver not returning
true
for-1
whenResultSet.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)More tests in
Field.isOpaqueBinary()
to distinguish opaque binary (that is, fields with typeCHAR(n)
andCHARACTER SET BINARY
) from output of various scalar and aggregate functions that return strings. (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 propertynullNamePatternMatchesAll
tofalse
(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 propertycom.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 would fail. (Bug#9682)PreparedStatement.setObject(int, Object, int type, int scale)
now uses scale value forBigDecimal
instances. (Bug#9682)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'sconnectionTesterClassName
property to usecom.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)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)Connection.canHandleAsPreparedStatement()
now makes “best effort” to distinguishLIMIT
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)Fixed
build.xml
to not compilelog4j
logging iflog4j
not available. (Bug#9320)Added finalizers to
ResultSet
andStatement
implementations to be JDBC spec-compliant, which requires that if not explicitly closed, these resources should be closed upon garbage collection. (Bug#9319)Stored procedures with same name in different databases confuse the driver when it tries to determine parameter counts/types. (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 forRSMD.getColumnClassName()
andResultSet.getObject()
. (Bug#9236)Cannot use
UTF-8
for characterSetResults configuration property. (Bug#9206)PreparedStatement.addBatch()
doesn't work with server-side prepared statements and streamingBINARY
data. (Bug#9040)ServerPreparedStatements
now correctly “stream”BLOB
/CLOB
data to the server. You can configure the threshold chunk size using the JDBC URL propertyblobSendChunkSize
(the default is 1MB). (Bug#8868)DATE_FORMAT()
queries returned asBLOB
s fromgetObject()
. (Bug#8868)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)BlobFromLocator
now uses correct identifier quoting when generating prepared statements. (Bug#8868)Fixed regression in
ping()
for users usingautoReconnect=true
. (Bug#8868)Check for empty strings (
''
) when convertingCHAR
/VARCHAR
column data to numbers, throw exception ifemptyStringsConvertToZero
configuration property is set tofalse
(for backward-compatibility with 3.0, it is now set totrue
by default, but will most likely default tofalse
in 3.2). (Bug#8803)DATA_TYPE
column fromDBMD.getBestRowIdentifier()
causesArrayIndexOutOfBoundsException
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 returningtrue
for forward-only/read-only result sets (we obviously support this). (Bug#8792)Fixed
ResultSet.getTime()
on aNULL
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.