Bugs fixed:
ResultSet.getMetaData()should not return incorrectly initialized metadata if the result set has been closed, but should instead throw anSQLException. Also fixed forgetRow()andgetWarnings()and traversal methods by callingcheckClosed()before operating on instance-level fields that are nullified during.close(). (Bug#5069)Use
_binaryintroducer forPreparedStatement.setBytes()andset*Stream()when connected to MySQL-4.1.x or newer to avoid misinterpretation during character conversion. (Bug#5069)Parse new time zone variables from 4.1.x servers. (Bug#5069)
ResultSetshould releaseField[]instance in.close(). (Bug#5022)RSMD.getPrecision()returning 0 for nonnumeric types (should return max length in chars for nonbinary types, max length in bytes for binary types). This fix also fixes mapping ofRSMD.getColumnType()andRSMD.getColumnTypeName()for theBLOBtypes based on the length sent from the server (the server doesn't distinguish betweenTINYBLOB,BLOB,MEDIUMBLOBorLONGBLOBat the network protocol level). (Bug#4880)“Production” is now “GA” (General Availability) in naming scheme of distributions. (Bug#4860, Bug#4138)
DBMD.getColumns()returns incorrect JDBC type for unsigned columns. This affects type mappings for all numeric types in theRSMD.getColumnType()andRSMD.getColumnTypeNames()methods as well, to ensure that “like” types fromDBMD.getColumns()match up with whatRSMD.getColumnType()andgetColumnTypeNames()return. (Bug#4860, Bug#4138)Calling
.close()twice on aPooledConnectioncauses NPE. (Bug#4808)Added FLOSS license exemption. (Bug#4742)
Removed redundant calls to
checkRowPos()inResultSet. (Bug#4334)Failover for
autoReconnectnot using port numbers for any hosts, and not retrying all hosts.WarningThis required a change to the
SocketFactoryconnect()method signature, which is nowpublic Socket connect(String host, int portNumber, Properties props); therefore, any third-party socket factories will have to be changed to support this signature.(Bug#4334)
Logical connections created by
MysqlConnectionPoolDataSourcewill now issue arollback()when they are closed and sent back to the pool. If your application server/connection pool already does this for you, you can set therollbackOnPooledCloseproperty tofalseto avoid the overhead of an extrarollback(). (Bug#4334)StringUtils.escapeEasternUnicodeByteStreamwas still broken for GBK. (Bug#4010)