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