MariaDB Java Client 1.1.1 Release Notes

You are viewing an old version of this article. View the current version here.

Download | Release Notes | Changelog

Release date: 01 Mar 2013

MariaDB Java Client 1.1.1 is a Stable (GA) release. In general this means that there are no known serious bugs, except for those marked as feature requests, that no bugs were fixed since last release that caused a notable code changes, and that we believe the code is ready for general usage (based on bug inflow).

For a description of the MariaDB Java Client see the About the MariaDB Java Client page.

For a list of changes made in this release, with links to detailed information on each push, see the changelog.

Here is a list of the important bugs fixes in this release

MySQLStatement will now to indicate that there are no more results by returning -1 from getUpdateCount() and null from getResultSet(),as mandated by the standard(CONJ-14)

Introduced nullCatalogMeansCurrent parameter, compatibly to ConnectorJ, and make it default(CONJ-16)

Prior to this change, DatabaseMetadata.getTables() or other method of DatabaseMetaData that accept catalog name and return result set would treat null as prescribed by the JDBC standard (null means no restriction which catalog is used). This behavior is now changed, for the sake of compatibility. Starting with 1.1.1 , null for catalog name will mean current catalog. To get JDBC standard behavior, one needs to set nullCatalogMeansCurrent=false.

DatabaseMedataData.getColumns() returned incorrect value in "COLUMN_SIZE" column for character data.(CONJ-15)

Prior to the change, octet size was returned (length in bytes).Dependent on character set used, can be 3 times bigger than length in characters that was specified by CREATE or ALTER table. This behavior is corrected in 1.1.1

DatabaseMetaData.getColumns() always handled MySQL YEAR datatype as SMALLINT. (CONJ-19)

The behavior is now fixed and getColumns returns either DATE or SMALLINT dependent on how 'yearIsDateType' parameter is set.

ResultSetMetaData.getColumnName() returned empty string in special cases (CONJ-17)

ResultSetMetaData.getColumnName() returned empty string for "non-columns" in result set (functions, aggregates like count(*), and so on). The fix is to return column label will be returned if column name is empty.

Ensure that getObject() returns byte array for CHAR BINARY.(CONJ-20)

Also make sure that getColumnType(),getColumnClassName(),getColumnTypeName() return values indicate BINARY for fixed binary type.

JVM does not exit if statement timeout is used.(CONJ-23)

Constructor for Timer was corrected, to ensure sure that Timer thread has type background thread. Thus Timer won't prevent JVM from exiting .

Calling first() on "streaming" result set and using the result set afterwards generated NullPointerException (CONJ-24)

Now SQLException is thrown early on, in the first() call, since streaming results set are not scrollable.

Connection.close() hangs if there is an open streaming result set, and next() was not called on this result set (CONJ-25)

  • New functionality*

Implement tcpAbortiveClose option, for "hard" socket close (CONJ-27)

This option can be used in environments where connections are created and closed in rapid succession. Often, it is not possible to create a socket in such environment after a while, since all local "ephemeral" ports are used up by TCP connections in TCP_WAIT state. Using tcpAbortiveClose workarounds this problem by resetting TCP connection rather (abortive or hard close), than doing an orderly close. It is accomplished by using socket.setSoLinger(true,0) for abortive close.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.