Jaybird 2.2 #JDBC #Java driver is Released with many fixes

The Firebird JDBC team is happy to announce the release of Jaybird 2.2.0.

This release contains the following changes:

  • Enhanced support for JDBC 4.0 (Java 6)
  • Support for JDBC 4.1 (Java 7) — including try-with-resources support,
  • Implementation of getGeneratedKeys(),
  • Enhanced support for the services API,
  • Support for 64 bit native libraries for Type 2 / Embedded,
  • A number of bug fixes.

Fixes since Jaybird 2.2.0-beta-1:
* ConcurrentModificationException when closing connection obtained from org.firebirdsql.ds.FBConnectionPoolDataSource with statements open (JDBC-250),
* Memory leak when obtaining multiple connections for the same URL (JDBC-249),
* CPU spikes to 100% when using events and Firebird Server is stopped or unreachable (JDBC-232),
* Events do not work on Embedded (JDBC-247),
* Provide workaround for characterset transliteration problems indatabase filenames and other connection properties (JDBC-253),
* FBBackupManager does not allow 16kb page size for restore (JDBC-255),
* Log warning and add warning on Connection when no explicit connectioncharacter set is specified (JDBC-257).

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.0</version>

The artifactId depends on your target Java version: jaybird-jdk15, jaybird-jdk16 or jaybird-jdk17.

Wiped out the legacy compatibility option OldSetClauseSemantics in Firebird 3.0

The option in the config is removed

 

Prior to Firebird 2.5 the SET clause of the UPDATE statement assigned columns in the user-defined order with the NEW column values being immediately accessible to the subsequent assignments. This did not conform to the SQL standard. Starting with Firebird 2.5, only OLD column values are accessible to all the assignments of the SET clause.

Example of the old vs new behaviour:

UPDATE T SET A = B, B = A

old result: A gets equal to B, B doesn’t change

new result: A and B get their values exchanged

Change this configuration option to 1 (true) only if your SQL code relies on the legacy semantics of the SET clause. It’s provided as a temporary solution for backward compatibility issues and is removed in Firebird 3.0
Type: boolean

OldSetClauseSemantics = 0

Fixed in Firebird 2.5.2 and 3.0.x CHAR_TO_UUID and GEN_UUID works different in big/little endian architectures

Important CHAR_TO_UUID CORE bug fix for for big-endian servers (ex: debian on IBM s390x or sparc64/powerpc) also that fixes GEN_UUID to return a compliant RFC-4122 UUID:

It has been discovered that before Firebird 2.5.2, CHAR_TO_UUID and UUID_TO_CHAR works incorrectly in big-endian servers. In these machines, bytes/characters are swapped and goes in wrong positions when converting. This bug was fixed in 2.5.2 and 3.0, but that means these functions now returns different values (for the same input parameter) than before.

ps: And here is Firebird development discussion and here is the full patch

If you want to know on what endian os you have you can check the Endianness Table

Firebird 2.0.x series discontinued End Of Life

Accordingly to its release lifetime policy, Firebird Project notifies that the Firebird v2.0 series has reached its end of life and thus will not be maintained anymore. The last official release in this series, Firebird 2.0.7, which has been announced this year, will be available from the “discontinued” section of the download area.

The Firebird roadmap is updated , we are waiting for Firebird 3.0.x Alpha 🙂

FlameRobin connection thread test on Windows

I have posted a test version of FlameRobin: http://mghie.users.sourceforge.net/flamerobin_win32_test.zip

(a ZIP file containing only the 32 bit executables for Windows in ANSI and Unicode version) that uses a thread to establish the database connection. That
means that the progress dialog can be moved and cancelled, and the progress bar is updated in indeterminate mode. To see it in action it’s
best to try to connect to a database on a server which is not available or which doesn’t exist, which so far blocks FlameRobin completely until
the connection call times out. It would be great if people could test this and write (to flamerobin-devel) whether anything

breaks for them (it didn’t for me, yet). I’m a little of unsure if I should clean this up and commit…

Thanks


Michael Hieke

1 105 106 107 108 109 296