Bugs fixed:
Should accept
nullfor catalog (meaning use current) in DBMD methods, even though it is not JDBC-compliant for legacy's sake. Disable by setting connection propertynullCatalogMeansCurrenttofalse(which will be the default value in C/J 3.2.x). (Bug#9917)Fixed driver not returning
truefor-1whenResultSet.getBoolean()was called on result sets returned from server-side prepared statements. (Bug#9778)Added a
Manifest.MFfile with implementation information to the.jarfile. (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
nullfor name patterns in DBMD (meaning “%”), even though it isn't JDBC compliant, for legacy's sake. Disable by setting connection propertynullNamePatternMatchesAlltofalse(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
loggeror 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
STDERRlogging.
(Bug#9704)
Statement.getMoreResults()could throw NPE when existing result set was.close()d. (Bug#9704)Stored procedures with
DECIMALparameters with storage specifications that contained “,” in them would fail. (Bug#9682)PreparedStatement.setObject(int, Object, int type, int scale)now uses scale value forBigDecimalinstances. (Bug#9682)Added support for the c3p0 connection pool's (http://c3p0.sf.net/) validation/connection checker interface which uses the lightweight
COM_PINGcall to the server if available. To use it, configure your c3p0 connection pool'sconnectionTesterClassNameproperty 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
LIMITinside/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 distinguishLIMITclauses 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.xmlto not compilelog4jlogging iflog4jnot available. (Bug#9320)Added finalizers to
ResultSetandStatementimplementations 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 BINARYto return correct/matching classes forRSMD.getColumnClassName()andResultSet.getObject(). (Bug#9236)Cannot use
UTF-8for characterSetResults configuration property. (Bug#9206)PreparedStatement.addBatch()doesn't work with server-side prepared statements and streamingBINARYdata. (Bug#9040)ServerPreparedStatementsnow correctly “stream”BLOB/CLOBdata 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 asBLOBs 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)BlobFromLocatornow 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/VARCHARcolumn data to numbers, throw exception ifemptyStringsConvertToZeroconfiguration property is set tofalse(for backward-compatibility with 3.0, it is now set totrueby default, but will most likely default tofalsein 3.2). (Bug#8803)DATA_TYPEcolumn fromDBMD.getBestRowIdentifier()causesArrayIndexOutOfBoundsExceptionwhen 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 returningtruefor forward-only/read-only result sets (we obviously support this). (Bug#8792)Fixed
ResultSet.getTime()on aNULLvalue for server-side prepared statements throws NPE.Made
Connection.ping()a public method.Added support for new precision-math
DECIMALtype 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.