Jaybird 5.0.4 released

We are happy to announce the release of Jaybird 5.0.4.

The following has been fixed since Jaybird 5.0.3:

  • Firebird 5.0 is now formally supported
  • Fixed: Potential NPE when warningMessageCallback is null while reading operations or consuming packets (#778)
  • Fixed: FBRowUpdater incorrectly considers result set with only partial PK updatable — backported from Jaybird 6 (#780)
  • Fixed: Use of offset timezone names (e.g. +05:00) for sessionTimeZone would result in a warning being logged, and an incorrect conversion applied (in UTC instead of the offset) when using the legacy time types — backported from Jaybird 6 (#787)

Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 21 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 5.0.3 and 4.0.10 released

We are happy to announce the release of Jaybird 5.0.3 and Jaybird 4.0.10.

With this release, Jaybird 4 is end-of-life. We recommend upgrading to Jaybird 5.

Jaybird 5.0.3

The following has been changed or fixed since Jaybird 5.0.2:

  • Improvement: Do not reject attempts to read blob id 0 — backported from Jaybird 6 (#765)
  • Fixed: on CHAR fields, a too short value could be returned if the string contained one or more codepoints represented by surrogate pairs and the string length in char exceeded the maximum string length — backported from Jaybird 6 (#770)
  • Fixed: CallableStatement.getXXX(String) could return value from wrong column — backported from Jaybird 6 (#772)
  • Updated: error messages updated from Firebird 5.0.0.1272

Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17, and 21 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 4.0.10

Jaybird 4.0.10 is the last release of Jaybird 4, and Jaybird 4 is now end-of-life. We recommend upgrading to Jaybird 5.

The following has been changed or fixed since Jaybird 4.0.9

  • Fixed: Reconnect transaction with a transaction id exceeding 0x7FFF_FFFF did not work (#734)
  • Fixed: CallableStatement.getXXX(String) could return value from wrong column — backported from Jaybird 6 (#773)
  • Updated: error messages updated from Firebird 5.0.0.1272

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17, and 21 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 5.0.2 released

We are happy to announce the release of Jaybird 5.0.2.

The following has been fixed since Jaybird 5.0.1:

  • Fixed: Reconnect transaction with a transaction id exceeding 0x7FFF_FFFF did not work (jaybird#734)
  • New feature: add connection property parallelWorkers to set Firebird 5.0 isc_dpb_parallel_workers (jaybird#737)
  • New feature: add MaintenanceManager.upgradeOds() for the Firebird 5.0 gfix/service repair action to perform a minor ODS upgrade of a database (jaybird#738)
  • New feature: add parallel workers support for BackupManager (jaybird#739)
  • New feature: add parallel workers support for sweep in MaintenanceManager (jaybird#740)
  • Fixed: DatabaseConnectionProperties.setServerBatchBufferSize(int) ignored provided value and always set default (0, or “use server-side maximum”) (jaybird#741)
  • New feature: add MaintenanceManager.fixIcu() for the Firebird 3.0 gfix/service repair action “ICU” to update or rebuild collations and indexes when the ICU version changed (jaybird#744)
  • Fixed: The first call to getTableStatistics() of a FBTableStatisticsManager instance returned only a few or even no tables; if no tables were returned, subsequent calls would also return no tables (jaybird#747)

Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 20 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 5.0.1 and 4.0.9 released

We are happy to announce the release of Jaybird 5.0.1 and Jaybird 4.0.9.

Jaybird 5.0.1

The following has been fixed since Jaybird 5.0.0:

  • Fixed: Executing DML with a RETURNING clause containing a blob column would return the blob-id instead of the blob value (jaybird#728)
  • Fixed: CallableStatement.getString and CallableStatement.getObject would incorrectly trim string values (jaybird#729)
  • Fixed: ResultSetMetaData.getPrecision(int) of a connectionless result set could throw a NullPointerException if the column was of type FLOAT or DOUBLE PRECISION (jaybird#730)

Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 19 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 4.0.9

The following has been fixed since Jaybird 4.0.8:

  • Fixed: Some methods of FBClob threw NullPointerException when attempting to use after implicit or explicit free() (jaybird#719)
  • Improvement: If the default JVM time zone is a GMT offset, e.g. GMT-08:00, configure sessionTimeZone with offset only, e.g. -08:00 (jaybird#720)
  • Fixed: Executing DML with a RETURNING clause containing a blob column would return the blob-id instead of the blob value (jaybird#728)
  • Fixed: CallableStatement.getString would incorrectly trim string values (jaybird#729)
  • Fixed: ResultSetMetaData.getPrecision(int) of a connectionless result set could throw a NullPointerException if the column was of type FLOAT or DOUBLE PRECISION (jaybird#730)

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 11 and higher using the Java 11 version of the driver).

See also:

Jaybird 5.0.0 released

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:

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 release notes and Firebird Type 4 JDBC Driver Downloads.

Jaybird 5.0.0-beta-1 released for testing

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.

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:

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.

Improved Hibernate ORM Firebird dialect support

Mark Rotteveel created a Ticket and Pull Request for Hibernate ORM to improve Firebird dialect with fixes to a number of issues.

Improve Firebird dialect to fix a number of issues:

  • Typing of aggregates when using parameters
  • Add cast to AVG of integral type
  • Quote identifiers starting with an underscore
  • Correct inverted version check for Boolean support
  • Add or update various supports methods to return correct information
  • Render datetime literals without using JDBC escape
  • Fix rendering of literals with offset at offset 00:00
  • Fix rendering of create index statement
  • Fix rendering of CASE where all when clauses have a parameter to identify type of result
  • Add missing rendering of virtual columns to select list
  • Fix rendering of IN against a parameter

Updated a number of tests so they are either passing for Firebird, or ignored for Firebird.

Jaybird 4.0.8 released

Jaybird 4.0.8 has been released

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 on antlr-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.

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and 19 using the Java 11 version of the driver).

See also

Jaybird 4.0.7 released

Jaybird 4.0.7 has been released

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.

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and using the Java 11 version of the driver).

See also

Jaybird 4.0.6 released

Jaybird 4.0.6 has been released

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)

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 17 (support for Java 17 using the Java 11 version of the driver).

See also

1 2 3 6