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:

Jaybird 5.0.1 and 4.0.9 released

31 January 2023

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

09 January 2023

We are happy to announce the first release of Jaybird 5.

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)

See also:

Jaybird 5.0.0-beta-1 released

03 January 2023

We are happy to announce the first beta for Jaybird 5.

We’d really appreciate it if you take the time to test this version of Jaybird with your applications. 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.

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)

Jaybird 5.0.0-beta-1 is for testing purposes only, and not intended for production use.

The 5.0.0-beta-1 will have a short life, and we plan to release the GA version mid-January.

See also:


Older posts are available in the archive.