Jaybird 5.0.4 released

10 March 2024

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

24 November 2023

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)

    Previously, Jaybird rejected attempts to read blobs with blob id 0 (not on all code paths, for some only when assertions are enabled). Formally, blob id 0 is not a valid blob id, but in practice they can occur (e.g. due to bugs, or access components/drivers explicitly setting a blob column to id 0). Other drivers and tools simply send the requests for blob id 0 to the server, which then treats it as an empty blob. For consistency, we decided to let Jaybird handle it the same.

  • 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)

    We now truncate the returned string if the codepoint count exceeds the maximum string length.

  • 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:

Firebird External Table Generator (ext-table-gen) 2.0 released

04 November 2023

I am happy to announce the release of version 2.0 of “Firebird External Table Generator” (ext-table-gen for short). (It was released back in September, but I forgot to put up a post on my own website.)

“Firebird External Table Generator” is a commandline tool to transform CSV files to Firebird external table files (a binary format for external table data).

Compared to version 1.0, a lot of new features have been added:

  • Support for additional data types:

    • Integral number types:

      • smallint

      • integer

      • bigint

      • int128

    • Exact numeric types (fixed point):

      • numeric

      • decimal

    • Datetime types:

      • date

      • time (without time zone)

      • timestamp (without time zone)

  • Customizing the CSV parser configuration (custom separators, quotes, escapes, etc.)

You can find the 2.0 release at ext-table-gen v2.0.

Documentation and release notes can be found on https://mrotteveel.github.io/ext-table-gen/.

The project itself is hosted on https://github.com/mrotteveel/ext-table-gen.

Firebird External Table Generator (ext-table-gen) 1.0 released

28 June 2023

I am happy to announce the release of “Firebird External Table Generator” (ext-table-gen for short).

“Firebird External Table Generator” is a commandline tool to transform RFC 4180 CSV files to Firebird external table files (a binary format for external table data).

External tables are a good way for bulk-loading data into Firebird. Unfortunately, external tables use a fixed-width binary format, and not (more) standard formats like CSV. It is not always easy to create an appropriate external table file, and this is where ext-table-gen can be used.

At a high level, ext-table-gen provides the following features:

  • Derive a CHAR-based external table definition (i.e. a CREATE TABLE statement and a configuration for ext-table-gen) from a CSV file

  • Transform a CSV file to an external table file (either based on the CSV file itself, or based on a configuration file)

The current version only supports CHAR columns, which makes the generated file essentially a fixed-width text format. Future versions may introduce support for additional column types.

You can find the 1.0 release at ext-table-gen v1.0.

Documentation and release notes can be found on https://mrotteveel.github.io/ext-table-gen/.

The project itself is hosted on https://github.com/mrotteveel/ext-table-gen.

Jaybird 5.0.2 released

07 June 2023

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:


Older posts are available in the archive.