Releases: FirebirdSQL/jaybird
Jaybird 5.0.0-beta-1
IMPORTANT
This version is provided for testing purposes only. We'd appreciate your feedback, but we'd like to emphasize that this version is not intended for production.
What's new
Jaybird 5 is - from a JDBC perspective - an incremental change from Jaybird 4. However, internally, Jaybird underwent some major changes, the biggest was the removal of JCA (Java Connector Architecture) support.
The major changes and new features in Jaybird 5 are:
- Java 7 support dropped
- Java Connector Architecture (JCA) support removed
- ChaCha wire protocol encryption support (Java 11 and higher only)
- Changes to properties
- Unification of database and service addressing
- Changes to JDBC URL syntax
- Removal of LOCAL protocol implementation
- Stream blobs are now the default
- New parser for generated keys handling (back-ported to Jaybird 4.0.8)
- Firebird 4.0 server-side batch updates
- Firebird 5.0 multi-row RETURNING support
- Firebird Embedded locator service provider (experimental)
- Table statistics of a connection (experimental)
Upgrading from Jaybird 4 to 5 should be simple, but please make sure to read Compatibility changes before using Jaybird 5. See also Upgrading from Jaybird 4 to Jaybird 5.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 5.0.0-beta-1 release notes.
Maven
The release is also available on maven(*):
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.0.java11-beta-1</version>
</dependency>
* The version depends on your target Java version: 5.0.0.java11-beta-1
or 5.0.0.java8-beta-1
.
Jaybird 4.0.8
What's new
The following has been changed or fixed since Jaybird 4.0.7:
- Improvement: Backported new generated keys parser from Jaybird 5 to remove dependency on ANTLR (jaybird#718)
With this change, Jaybird no longer relies onantlr-runtime-4.7.2.jar
, if you don't need it yourself, you can remove this library from the classpath. See New parser for generated keys handling for more information.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java Google Group or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.8.java11</version>
* The version depends on your target Java version: 4.0.8.java7
, 4.0.8.java8
, or 4.0.8.java11
(for Java 11 and higher)
Jaybird 4.0.7
What's new
The following has been changed or fixed since Jaybird 4.0.6:
- Improvement:
(VAR)CHAR
is now sent to the server withblr_varying2
orblr_text2
which includes the character set information (jaybird#692) - Changed: Usages of
String.toUpperCase
andString.toLowerCase
now useLocale.ROOT
to prevent locale-sensitivity issues (jaybird#697) - New feature: Support for NBackup "clean history" option (jaybird#706)
Theorg.firebirdsql.management.NBackupManager
interface has three new methods:setCleanHistory(boolean)
to enable (or disable) cleaning of history during backup, andsetKeepDays(int)
andsetKeepRows(int)
to specify the number of days or rows to keep history. These options require Firebird 4.0.3 or higher.
This feature was backported from Jaybird 5. - Fixed: Calling
PreparedStatement.setClob
orPreparedStatement.setBlob
with anull
Clob
,Reader
,Blob
, orInputStream
would result in aNullPointerException
(jaybird#712)
As part of this change the behaviour ofsetClob
methods accepting aReader
was changed to be identical tosetCharacterStream
, andsetBlob
accepting anInputStream
tosetBinaryStream
. The end result before and after this change is identical, but it can result in different memory and performance characteristics, as the stream is now consumed on execute, and not on set.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java Google Group or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.7.java11</version>
* The version depends on your target Java version: 4.0.7.java7
, 4.0.7.java8
, or 4.0.7.java11
(for Java 11 and higher)
Jaybird 4.0.6
What's new
The following has been changed or fixed since Jaybird 4.0.5
- Improvement:
Connection.isValid(int)
now uses the timeout as a network timeout, if possible (jaybird#685)
This is only supported for pure Java connections. For native connections, the timeout is ignored (and aSQLWarning
is registered). NativeResourceUnloadWebListener
would fail in Servlet containers with aNoClassDefFoundError
if JNA wasn't on the classpath (jaybird#686)- Fixed: Calling
isBeforeFirst()
,isAfterLast()
,isFirst()
, orisLast()
on a closed result set resulted in aNullPointerException
instead of aSQLException
(jaybird#689)
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java Google Group or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.6.javaXX</version>
* The version depends on your target Java version: 4.0.6.java7
, 4.0.6.java8
, or 4.0.6.java11
(for Java 11 and higher)
Jaybird 4.0.5
What's new
The following has been changed or fixed since Jaybird 4.0.4
- Fixed:
JnaService
implementation call toisc_service_query
incorrectly includes type (jaybird#678)
This could lead to service requests not completing successfully for native connections.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java Google Group or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 4.0.5 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.5.javaXX</version>
* The version depends on your target Java version: 4.0.5.java7
, 4.0.5.java8
, or 4.0.5.java11
(for Java 11 and higher)
Jaybird 3.0.12
Jaybird 3.0.12 is the last release of Jaybird 3. Jaybird 3 is now end-of-life, and we recommend upgrading to Jaybird 4.
The following has been changed or fixed since Jaybird 3.0.11:
- Jaybird 3 is now end-of-life. Please upgrade to Jaybird 4.
- Fixed:
JnaService
implementation call toisc_service_query
incorrectly includes type (jaybird#678)
This could lead to service requests not completing successfully for native connections.
See the full release notes for more information.
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.12</version>
* The artifactId depends on your target Java version: jaybird-jdk18
for Java 8 and higher, or jaybird-jdk17
for Java 7
Jaybird 4.0.4
What's new
The following has been changed or fixed since Jaybird 4.0.3
- Fixed:
ResultSet.updateRow()
sets fields tonull
in result set only (jaybird#37)
TheupdateRow()
method did not correctly update local data of the result set. As a result, callinggetXXX
for that row after the update would returnnull
for the updated rows. The update was correctly persisted to the database. - New feature: Support for NBackup GUID-based backup and in-place restore (jaybird#672)
Theorg.firebirdsql.management.NBackupManager
interface has two new methods:setBackupGuid(String)
expecting the brace-enclosed GUID of a previous backup to use as the starting point for this backup, andsetInPlaceRestore(boolean)
to enable (or disable) in-place restore. These options require Firebird 4.0 or higher.
This feature was backported from Jaybird 5. - Fixed: Logic error could lead to incorrect logging of "Specified statement was not created by this connection" (jaybird#674)
- Changed: Updated Firebird 4.0 reserved words based on 4.0.0.2496 (jaybird#597)
- Fixed: Protocol 15 and 16 had same priority, so Firebird 4.0 might select protocol 15, leading to timeout support not available. (jaybird#676)
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java Google Group or reported on the issue tracker https://github.com/FirebirdSQL/jaybird/issues.
See also the full Jaybird 4.0.4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.4.javaXX</version>
* The version depends on your target Java version: 4.0.4.java7
, 4.0.4.java8
or 4.0.4.java11
.
Jaybird 4.0.3
What's new
The following has been changed or fixed since Jaybird 4.0.2
- Changed: Closing a statement will now be sent to the server immediately (JDBC-638)
For the v11 protocol and up (Firebird 2.1 or higher), Jaybird applied an optimization copied from Firebird to not flush 'free' packets that are used to close a cursor or close a statement. The packet will then be sent at a later time when something else is sent to the server.
Unfortunately, this has the side effect that if the statement close is the last thing to happen in a long time (e.g. the connection is idle, or returned to a pool), then the statement may retain locks on metadata objects longer than necessary, which can prevent DDL from succeeding.
This change only affects Jaybird's implementation of the Firebird wire protocol; connections with the 'native' protocol will still delay sending the 'free' packet.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.
See also the full Jaybird 4.0.3 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.3.javaXX</version>
* The version depends on your target Java version: 4.0.3.java7
, 4.0.3.java8
or 4.0.3.java11
.
Jaybird 3.0.11
The following has been changed or fixed since Jaybird 3.0.10:
- Changed: Closing a statement will now be sent to the server immediately (JDBC-638)
For the v11 protocol and up (Firebird 2.1 or higher), Jaybird applied an optimization copied from Firebird to not flush 'free' packets that are used to close a cursor or close a statement. The packet will then be sent at a later time when something else is sent to the server.
Unfortunately, this has the side effect that if the statement close is the last thing to happen in a long time (e.g. the connection is idle, or returned to a pool), then the statement may retain locks on metadata objects longer than necessary, which can prevent DDL from succeeding.
This change only affects Jaybird's implementation of the Firebird wire protocol; connections with the 'native' protocol will still delay sending the 'free' packet.
See the full release notes for more information.
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.11</version>
* The artifactId depends on your target Java version: jaybird-jdk18
for Java 8 and higher, or jaybird-jdk17
for Java 7
Jaybird 4.0.2
What's new
The following has been changed or fixed since Jaybird 4.0.1
- Fixed: First letter of JDBC escape was case-sensitive (JDBC-632)
This was a regression compared to 2.2.x. Fix was also back-ported to 3.0.10. - Fixed: Some usernames cannot authenticate using SRP (JDBC-635)
Fix was also back-ported to 3.0.10. - Fixed:
ServiceConfigurationError
while loading plugins could prevent Jaybird from loading (JDBC-636)
Fix was also back-ported to 3.0.10.
Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.
See also the full Jaybird 4.0.2 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.2.javaXX</version>
* The version depends on your target Java version: 4.0.2.java7
, 4.0.2.java8
or 4.0.2.java11
.