MySQL Connector/J Release Notes  /  Changes in MySQL Connector/J 3.1  /  Changes in MySQL Connector/J 3.1.7 (2005-02-18)

Changes in MySQL Connector/J 3.1.7 (2005-02-18)

Bugs Fixed

  • PreparedStatements not creating streaming result sets. (Bug #8487)

  • Don't pass NULL to String.valueOf() in ResultSet.getNativeConvertToString(), as it stringifies it (that is, returns null), which is not correct for the method in question. (Bug #8487)

  • Fixed NPE in ResultSet.realClose() when using usage advisor and result set was already closed. (Bug #8428)

  • ResultSet.getString() doesn't maintain format stored on server, bug fix only enabled when noDatetimeStringSync property is set to true (the default is false). (Bug #8428)

  • Added support for BIT type in MySQL-5.0.3. The driver will treat BIT(1-8) as the JDBC standard BIT type (which maps to java.lang.Boolean), as the server does not currently send enough information to determine the size of a bitfield when < 9 bits are declared. BIT(>9) will be treated as VARBINARY, and will return byte[] when getObject() is called. (Bug #8424)

  • Added useLocalSessionState configuration property, when set to true the JDBC driver trusts that the application is well-behaved and only sets autocommit and transaction isolation levels using the methods provided on java.sql.Connection, and therefore can manipulate these values in many cases without incurring round-trips to the database server. (Bug #8424)

  • Added enableStreamingResults() to Statement for connection pool implementations that check Statement.setFetchSize() for specification-compliant values. Call Statement.setFetchSize(>=0) to disable the streaming results for that statement. (Bug #8424)

  • ResultSet.getBigDecimal() throws exception when rounding would need to occur to set scale. The driver now chooses a rounding mode of half up if nonrounding BigDecimal.setScale() fails. (Bug #8424)

  • Fixed synchronization issue with ServerPreparedStatement.serverPrepare() that could cause deadlocks/crashes if connection was shared between threads. (Bug #8096)

  • Emulated locators corrupt binary data when using server-side prepared statements. (Bug #8096)

  • Infinite recursion when falling back to master in failover configuration. (Bug #7952)

  • Disable multi-statements (if enabled) for MySQL-4.1 versions prior to version 4.1.10 if the query cache is enabled, as the server returns wrong results in this configuration. (Bug #7952)

  • Removed dontUnpackBinaryResults functionality, the driver now always stores results from server-side prepared statements as is from the server and unpacks them on demand. (Bug #7952)

  • Fixed duplicated code in configureClientCharset() that prevented useOldUTF8Behavior=true from working properly. (Bug #7952)

  • Added holdResultsOpenOverStatementClose property (default is false), that keeps result sets open over statement.close() or new execution on same statement (suggested by Kevin Burton). (Bug #7715)

  • Detect new sql_mode variable in string form (it used to be integer) and adjust quoting method for strings appropriately. (Bug #7715)

  • Timestamps converted incorrectly to strings with server-side prepared statements and updatable result sets. (Bug #7715)

  • Timestamp key column data needed _binary stripped for UpdatableResultSet.refreshRow(). (Bug #7686)

  • Connector/J now supports the NO_BACKSLASH_ESCAPES server SQL mode. (Bug #7374, Bug #16730296)

  • Choose correct direction to apply time adjustments when both client and server are in GMT time zone when using ResultSet.get(..., cal) and PreparedStatement.set(...., cal). (Bug #4718)

  • Remove _binary introducer from parameters used as in/out parameters in CallableStatement. (Bug #4718)

  • Always return byte[]s for output parameters registered as *BINARY. (Bug #4718)

  • By default, the driver now scans SQL you are preparing using all variants of Connection.prepareStatement() to determine if it is a supported type of statement to prepare on the server side, and if it is not supported by the server, it instead prepares it as a client-side emulated prepared statement. You can disable this by passing emulateUnsupportedPstmts=false in your JDBC URL. (Bug #4718)

  • Added dontTrackOpenResources option (default is false, to be JDBC compliant), which helps with memory use for nonwell-behaved apps (that is, applications that don't close Statement objects when they should). (Bug #4718)

  • Send correct value for boolean true to server for PreparedStatement.setObject(n, "true", Types.BIT). (Bug #4718)

  • Fixed bug with Connection not caching statements from prepareStatement() when the statement wasn't a server-side prepared statement. (Bug #4718)

Download these Release Notes
PDF (US Ltr) - 484.4Kb
PDF (A4) - 484.2Kb
EPUB - 127.9Kb