バージョン5.1版でのメンテナンスリリースであるMySQL Connector/J 5.1.14が リリースされました。Connector/Jは、MySQL用のタイプ4のpure-Java JDBCドライバです。
- Fixed Bug#58706 - Failover connections didn't honor "failOverReadOnly=false", and in some situations would not fall back. - Added ability to load-balance while auto-commit is enabled. This introduces two new properties: loadBalanceAutoCommitStatementThreshold defines the number of matching statements which will trigger the driver to (potentially) swap physical server connections, loadBalanceAutoCommitStatementRegex defines the regular expression against which statements must match. The default values (0 and blank, respectively) retain the previously-established behavior that connections with auto-commit enabled are never balanced. Feature request documented in Bug#55723. - Added support for hosts specified in the URL of the form: address=(key=value), supported keys are: (protocol=tcp or pipe (for named pipes on Windows) (path= for named pipes) (host=) for TCP connections (port=) for TCP connections An example would be: jdbc:mysql://address=(protocol=tcp)(host=localhost)(port=3306)(user=test)/db Any other parameters are treated as host-specific properties that follow the conventions of the JDBC URL properties. This now allows per-host overrides of any configuration property for multi-host connections (failover, loadbalance, replication). We do recommend that the overrides are limited to user, password, network timeouts and statement and metadata cache sizes. Unexpected behavior may be observed with other per-host overrides. - Fix for Bug#56099 - Added support for JDBC4-specific functionality when using load-balanced connections. - Fix for Bug#56200 - Added diagnostic information to SQLException message thrown when a closed load-balanced connection is reused. This information will identify the conditions which caused the connection to be closed. - Fix for Bug#56429 - When using Connector/J configured for failover (jdbc:mysql://host1,host2,... URLs), the non-primary servers re-balance and spawned new idle connections when the transactions on the master were committed or rolled-back, eventually exceeding max_connections. It was also discovered that session state (autocommit, isolation level, catalog) wasn't being copied from the primary connection to secondary connections correctly because of the same changes that caused this bug, and this was fixed as well. - Fix for Bug#56706 - Ensure read-only state is synchronized when new load-balanced connections are selected. - Fixed Bug#56979 - Improper connection closing logic leads to TIME_WAIT sockets on server As well as the following general bug fixes and improvements: - Fix for Bug#58728, NPE in com.mysql.jdbc.jdbc2.optional.StatementWrappe.getResultSet() if rs is null. Regression test case added to Statement regression tests. - Fix for Bug#58751, DatabaseMetadata.getIndexInfo() CARDINALITY now clamped to Integer.MAX_VALUE. - Fix for BUG#58590 - Fix for Bug#58232 - CallableStatement fails to fetch OUT parameter against 5.5 server - Fix for Bug#57850 - Refresh SELECT statement doesn't use correct data type. Added Field.valueNeedsQuoting (private final boolean) and protected boolean getvalueNeedsQuoting(). UpdatableResultSet refresher and updater call upon this value now. - Fix for Bug#57697 - Metadata getTables() was not checking for table_name already been quoted. - Fix for Bug#57694 - 3byte UTF8 can not be used with 5.5.3+ server. - Fix for Bug#54756 - Cannot retrieve data from ResultSet by column name from a Sphinx daemon. We were relying only on "server version string" passed. Now, determining server version is done via protocol flags too, where applicable. - Fix for Bug#57022 - cannot execute a store procedure with output parameters, database parameter was ignored in db.sp notation. The fix is to "sanitize" db.sp call just like in patch for noAccessToProcedureBodies. BaseTestCase extended with createDatabase and dropDatabase. Regression test added. - Fix for Bug#57262 - "useOldUTF8Behavior" behavior was broken since 5.1.3, now explicitly sets connection character set to latin1 ("SET NAMES latin1") during connection post-handshake process. - Patch for problem where "noAccessToProcedureBodies=true" was causing "underprivileged" user not to have access to procedures created by him. - Patch for Bug#56305, unhandled NPE in DatabaseMetaData.java when calling wrong-cased function without access to mysql.proc. Although simple by itself, some more enhancements were needed for everything to function properly. So, along with catching potential NPE due to server bug, a guard against calling JDBC functions with db_name.proc_name notation was also added. Necessary changes added to StringUtils.java too. - Minor fix in getProcedureColumns() DisplaySize for Bug#51712. Fix for Bug#41269 is not complete without this. getColumnDisplaySize on a ResultSet already consisting of metadata is now functional thanks to Bogdan. - Minor fix for Bug#55217, return 4 as a result of DataBaseMetadata.getJDBCMajorVersion() as per manual. - Fixed Bug#56955 - Connection properties "trustCertificateKeyStoreType" and "clientCertificateKeyStoreType" have invalid defaults, therefore connections that specify "useSSL" will sometimes fail with exceptions from JSSE unless "JKS" has been specified for both of these properties. The default value for these properties is now "JKS", and thus it no longer has to be specified. - Fixed Bug#57380 - DatabaseMetaData.supportsMultipleResultSets() now returns true when connected to a 4.1 version or later server. - Removed logging integrations with log4j and apache-commons-logging due to license incompatibility. Replacing with SLF4J integration in next release.