Skip to content

Releases: FirebirdSQL/jaybird

Jaybird 4.0.7

11 Nov 13:32
v4.0.7
Compare
Choose a tag to compare

What's new

The following has been changed or fixed since Jaybird 4.0.6:

  • Improvement: (VAR)CHAR is now sent to the server with blr_varying2 or blr_text2 which includes the character set information (jaybird#692)
  • Changed: Usages of String.toUpperCase and String.toLowerCase now use Locale.ROOT to prevent locale-sensitivity issues (jaybird#697)
  • New feature: Support for NBackup "clean history" option (jaybird#706)
    The org.firebirdsql.management.NBackupManager interface has three new methods: setCleanHistory(boolean) to enable (or disable) cleaning of history during backup, and setKeepDays(int) and setKeepRows(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 or PreparedStatement.setBlob with a null Clob, Reader, Blob, or InputStream would result in a NullPointerException (jaybird#712)
    As part of this change the behaviour of setClob methods accepting a Reader was changed to be identical to setCharacterStream, and setBlob accepting an InputStream to setBinaryStream. 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

27 Apr 15:11
v4.0.6
Compare
Choose a tag to compare

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 a SQLWarning is registered).
  • NativeResourceUnloadWebListener would fail in Servlet containers with a NoClassDefFoundError if JNA wasn't on the classpath (jaybird#686)
  • Fixed: Calling isBeforeFirst(), isAfterLast(), isFirst(), or isLast() on a closed result set resulted in a NullPointerException instead of a SQLException (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

30 Dec 09:58
v4.0.5
Compare
Choose a tag to compare

What's new

The following has been changed or fixed since Jaybird 4.0.4

  • Fixed: JnaService implementation call to isc_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

30 Dec 09:32
v3.0.12
Compare
Choose a tag to compare

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 to isc_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

02 Oct 07:51
v4.0.4
Compare
Choose a tag to compare

What's new

The following has been changed or fixed since Jaybird 4.0.3

  • Fixed: ResultSet.updateRow() sets fields to null in result set only (jaybird#37)
    The updateRow() method did not correctly update local data of the result set. As a result, calling getXXX for that row after the update would return null 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)
    The org.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, and setInPlaceRestore(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

20 Mar 14:09
v4.0.3
Compare
Choose a tag to compare

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

20 Mar 14:09
v3.0.11
Compare
Choose a tag to compare

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

17 Jan 12:26
v4.0.2
Compare
Choose a tag to compare

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.

Jaybird 3.0.10

17 Jan 09:55
v3.0.10
Compare
Choose a tag to compare

The following has been changed or fixed since Jaybird 3.0.9:

  • Added: A static utility method FBDriver.normalizeProperties which, given a JDBC url and a Properties object, returns a Map<String, String> containing the merged properties normalized to the common property name. (JDBC-627)
    The current implementation normalizes known property names to the long-form isc_dpb name, and removes the database property. These are both implementation details that might change in future versions.
    This feature was back-ported from Jaybird 4.0.1.
  • Fixed: Use of isc_dpb_no_db_triggers no longer logs a warning (JDBC-628)
  • Fixed: First letter of JDBC escape was case-sensitive (JDBC-632)
    This was a regression compared to 2.2.x.
  • Fixed: Some usernames cannot authenticate using SRP (JDBC-635)
  • Fixed: ServiceConfigurationError while loading plugins could prevent Jaybird from loading (JDBC-636)

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.10</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.1

11 Aug 13:57
v4.0.1
Compare
Choose a tag to compare

What's new

Jaybird 4.0.1 is the first maintenance release of Jaybird 4, and introduces support for INT128 (a new type in Firebird 4), improves support for the Firebird 4 WITH TIME ZONE types by adding support for java.time.ZonedDateTime and making some of the derivation rules more consistent with Firebird. It also provides some bug fixes and other changes.

The following has been changed or fixed since Jaybird 4.0.0

  • Fixed: Changes to the transaction configuration (transaction parameter buffer configuration) of one connection are no longer propagated to other connections with the same connection properties (JDBC-386)
    This change introduces a binary incompatibility as method setTransactionParameters(int, TransactionParameterBuffer) in FBManagedConnection can now throw ResourceException where previously it did not. Under the assumption that most users of Jaybird are not directly using this class, the change should not break anything.
  • Fixed: Search index of Javadoc in Java 11 version used incorrect links (JDBC-619)
  • Fixed: The cleanup of native resources didn't dispose the native library held by JNA, as a change in implementation no longer allowed directly access to the JNA NativeLibrary (JDBC-620)
  • Fixed: When updating a row through an updatable result set, selected but not updated blob fields were set to NULL (JDBC-623)
  • Added: Support for type INT128 (reported as JDBC type NUMERIC) (JDBC-624
    See also Firebird 4 INT128 support.
  • Added: A static utility method FBDriver.normalizeProperties which, given a JDBC url and a Properties object, returns a Map<String, String> containing the merged properties normalized to common property name. (JDBC-627)
    The current implementation normalizes known property names to the long-form isc_dpb name, and removes the database property. These are both implementation details that might change in future versions.
    This feature is also backported to Jaybird 3.0.10.
  • Fixed: Use of isc_dpb_no_db_triggers no longer logs a warning (JDBC-628)
  • Incompatible change: While making changes to time zone support, the API of org.firebirdsql.gds.ng.tz.TimeZoneDatatypeCoder was made almost entirely private. This should not affect normal user code.
    Although we try to avoid these types of incompatible changes in point releases, we explicitly allow them for the org.firebirdsql.gds.ng package and sub-packages.
  • Changed: conversions from TIME WITH TIME ZONE now use 2020-01-01 as base date for named zones (JDBC-629)
    There are some caveats with this conversion, especially between OffsetTime and OffsetDateTime for named zones. For OffsetTime, we will always use the offset as it was on 2020-01-01, while for OffsetDateTime we will first rebase the time in the named zone to the current date, and then derive the offset.
    See also jdp-2020-06 OffsetTime derivation for named zone
  • New feature: Added support for java.time.ZonedDateTime for the WITH TIME ZONE types (JDBC-630)
    To preserve named zones, we have added support for getting and setting both TIME WITH TIME ZONE and TIMESTAMP WITH TIME ZONE as a ZonedDateTime.
    For TIME WITH TIME ZONE, the returned value is rebased on the current date.
  • Fixed: Connection.setNetworkTimeout incorrectly used the provided Executor to set the timeout (JDBC-631)
    This caused a race condition where the timeout was possibly applied too late, and when connection.close() was called immediately after, this could trigger a NullPointerException that would bubble up into the executor.

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.1 release notes.

Maven

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.1.javaXX</version>

* The version depends on your target Java version: 4.0.1.java7, 4.0.1.java8 or 4.0.1.java11.