Jaybird News
by Roman Rokytskyy
19 July 2008
|
|
V.2.1.6 Release (Critical)
Jaybird 2.1.6 released, with the following fixes:
- JDBC-97: Blob.getBytes() method should not allow position below 1
- not critical
- JDBC-108: Problems with record resultset to call primary composite
- critical
- JDBC-119: updateRow() primary key violation issue
- critical
- JDBC-118: Remote PID and process name for FB 2.1 monitoring tables
- not critical
Due to critical fixes in JDBC-108 and JDBC-119, everybody using Jaybird versions between 2.1.2 and 2.1.5 is advised to upgrade to this new version to avoid data corruption when doing updates via ResultSet.updateRow() when the table has a composite primary key. Cases where table's primary key has only one column or there is no primary key at all are not affected.
Comments to JDBC-118:
The only platform independent solution turns out to be via the -D property, therefore two new properties are implemented: org.firebirdsql.jdbc.pid and org.firebirdsql.jdbc.processName. If they are specified, values are passed to Firebird 2.1. Also one can use "normal" properties passed via URL or data source configuration. In this case, the property names are process_id and process_name.
With versions of Firebird prior to Fb 2.1, using these properties will cause an exception while connecting to Firebird. A more intelligent solution will be implemented in Jaybird 2.2.
|
V.2.1.5 Bugfix Release
Jaybird 2.1.5 released, fixing a regression that appeared in v.2.1.4 concerning the Events port on Linux. Please upgrade your installations to this one.
|
V.2.1.4 Bugfix Release
Jaybird 2.1.4 released. This bugfix release
contains a fix to make events run with Firebird 2.1. Also some
some fixes to the test cases were made, since a bug with a constant
order for table reservation in TPB was fixed in Firebird 2.1 (CORE-1416).
|
V.2.1.3 Bugfix Release
Jaybird 2.1.3 released. This release fixes only one bug, JDBC-106, which
is related to the situation when developers use DatabaseMetaData class
with identifiers/patterns with case different to the one in the database.
The solution is to try to execute the query with the original case and
when nothing is found, another query with uppercased identifiers is
executed. This, in worst case will cause two queries to be executed
against the database, which can lead to performance loss.
|
V.2.1.2 Bugfix Release
Jaybird 2.1.2 is is a bugfix release that targets
two main issues:
- JDK 6.0 compatibility. There is a build for JDK 6.0.
All new methods are implemented but the implementation is trivial:
it either throws an FBDriverNotCapableException or returns empty result
sets (in DatabaseMetaData interface).
Complete support of JDK 6.0 is planned in Jaybird 2.2.
- Full support for Firebird 2 INSERT...RETURNING statements.
|
V.2.1.1 Bugfix Release
The Jaybird team has released a bugfix version of our JDBC driver. The
Jaybird 2.1.1 release includes fixes for the following issues:
- JDBC-92. DatabaseMetaData becomes unusable when the statement that serves
the result set is closed.
- JDBC-87. Backported feature of upcoming Jaybird 2.2 release that allows
specifying the octetsAsBytes connection property and receive byte[] when
using the ResultSet.getObject() method
- JDBC-85. Fixed returning of the error messages.
- Bug reported in Firebird-Java group. ClassCastException when obtaining
byte[] from BLOB fields in cached result set.
The next release, Jaybird 2.2, will contain improved support for XA
connections as well as a few other long-awaited features including support
for 64-bit platforms. First versions are expected in Q1/2007.
|
For more information please refer to
Jaybird v.2.1.0
Release candidate 1
By Roman Rokytskyy
What's new in Jaybird 2.1.0
- support for Firebird events
- new JNI code supporting multiple client libraries
- new property allowing to change the default result set holdability
- Feature #1428474. Implement record and tablename functionality from gstat
- Improved performance of ResultSet.getBytes() method for BLOB columns
Bugs fixed since Jaybird 2.0.1
- #1421579. Wrong result with Dialect 3 and FBDatabaseMetaData.getIndexInfo
- #1434183. Error from verifier on deploying JayBird as resource adapter
- #1449499. Incorrect DECIMAL_DIGITS value
- #1460163. "Could not obtain connection" hides original exception
- #1464522. JayBird: batch execution doesn't work with blob columns
- #1464795. getCrossReference returns wrong FK Column/Table Name
- #1067485. Data truncation when use PreparedStatement in CHAR fields
v.1.5.5, 5 December 2004
If no critical bug is discovered, this is the last point release of JayBird 1.5.x. The next version (1.6) will
support the Services API (backup/restore, user management, statistics, etc).
The driver requires at least JDK 1.3.1 to compile and run properly. Download HERE.
The V.1.5.5 driver
- fixes NPE when an error happens during reconnection
- allows calling commit/rollback in Oracle mode
- adds the setBlob() method for BLOB SUB_TYPE 1 fields
- fixes the issue with calendar in the PreparedStatement.setTime(Time, Calendar) method
- adds a fix for the "trying to reopen an open cursor" exception in the Type 2 driver
- improves memory usage within transactions
- fixes a bug in the write(byte[], int, int) method in FBBlob.java when a passed array was bigger than the
blob buffer size
- adds the keepStatements parameter
- fixes a bug in AbstractCallableStatement where not all params were being marked as set
JDK 5.0
Steven Jardine has adapted the build system for JDK 5.0, but his changes are committed only to HEAD.
Therefore there is no release of JayBird 1.5.5 for JDK 5.0.
If there is reasonable public interest, the changes will be ported to Branch_1_5 and a version for JDK 5.0
will be released.
64-bit Solaris
Bill Oliver sent a compiled binary of libjaybird.so for 64-bit Solaris. Because this quite a big file,
(1.6 MB), it is not included in the release package. It will be made available for download soon.
Our build_native.xml does not work for Solaris, unfortunately, but Bill has supplied his own build script.
v.1.5.4, 26 October 2004
Contains the following fixes:
- Fixed an issue when prepared statement was left in an incorrect
state when an exception happened in the setter, original patch provided by Gabriel
Reid.
- Fixed an issue with local encodings when connection is obtained
via the JCA framework
- Applied a patch (by Gabriel
Reid) for the ArrayIndexOutOfBoundsException
- Added support for dialect 1
- Fixed a bug with encodings in pool
v.1.5.3, 11 October 2004
This release contains the fix for the ClassFormatException reported today.
v.1.5.2, 10 October 2004
Contains fixes to some reported issues with v.1.5.1.
- There should be no more "invalid statement handles"
- Result sets should be correctly released when using the connection pool.
- Some more fixes should remove the "cannot start transaction, local transaction active".
A
- It is now possible to specify both isc_dpb_lc_ctype and charSet
encodings. In this case lc_ctype is passed to the database, charSet is used
to convert bytes to characters. The most useful case is when lc_ctype=NONE.
Previously the driver used the default JVM encoding to convert bytes into
strings. Now you can enforce the encoding you like and do not need to depend on the
regional settings of the host OS.
Attempts to build it with JDK 1.5, were not successful. The build
system cannot run with 1.5 (the target="1.2" part in build.xml and the used
version of Ant does not understand 1.5), and at least the JNDI code from the
pool does not compile due to use of generics in the JNDI API.
Most likely one
can build driver by using the "compatibility" mode of the compiler, but the
build system must be fixed (probably requires upgrade of Ant). I think we
would need to split the code bases the same way I did it for JDK 1.3 and JDK
1.4. Are there any volunteers for this task?
v 1.5.1, 17 September 2004
New features in JayBird 1.5.1 include
- full JDBC 2.0 compatibility (passed JDBC CTS 1.3.1 suite)
- full callable statement support
- batch updates
- support of ResultSet.TYPE_SCROLL_INSENSITIVE
- X/Open SQL states are reported by SQLException
- escaped syntax support for stored procedures and functions
- fixed JDBC specs deviations from 1.0.1 release
-
Type 2 JDBC driver support
Now you can use gds32.dll/libgds.so,
fbclient.dll/libfbclient.so/libfbembed.so and
fbembed.dll (requires native library, available as separate
package). It allows you to
- connect locally when the application runs on localhost
- use the Win32 embedded version of the engine
- use the driver with InterBase 6.5, 7.0.
- multi-thread safety: now you can use one connection from multiple threads
- introduces Firebird-specific interfaces to enable you to utilize Firebird-specific
features: FirebirdConnection, FirebirdStatement, FirebirdPreparedStatement and FirebirdBlob
- completely rewritten JDBC connection pool with prepared statement caching,
more properties to control DataSource and
ConnectionPoolDataSource objects.
- savepoint support for Firebird 1.5 (JDBC 3.0 only, hence for JDK 1.4.x
only)
Back to Developer's Corner.
|
|