MySQL Connector/J Release Notes  /  Changes in MySQL Connector/J 3.1  /  Changes in MySQL Connector/J 3.1.8 (2005-04-14)

Changes in MySQL Connector/J 3.1.8 (2005-04-14)

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 property nullCatalogMeansCurrent to false (which will be the default value in C/J 3.2.x). (Bug #9917)

  • 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)

  • 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)

  • 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:

    1. Log4j, if it is available,

    2. Then JDK1.4 logging,

    3. 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)

  • Added support for the c3p0 connection pool's ( 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)

  • 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 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)

  • Fixed build.xml to not compile log4j logging if log4j not available. (Bug #9320)

  • 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)

  • 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 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)

  • 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)

  • DATE_FORMAT() queries returned as BLOBs from getObject(). (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 using autoReconnect=true. (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 a public method.

  • Fixed DatabaseMetaData.getTables() returning views when they were not asked for as one of the requested table types.

  • Added support for new precision-math DECIMAL type in MySQL 5.0.3 and up.

Download these Release Notes
PDF (US Ltr) - 482.1Kb
PDF (A4) - 482.3Kb
EPUB - 127.7Kb