Skip to content

Releases: FirebirdSQL/jaybird

Jaybird 3.0.0-beta-2

18 Dec 15:26
Compare
Choose a tag to compare
Jaybird 3.0.0-beta-2 Pre-release
Pre-release

Jaybird 3.0 is a big change from Jaybird 2.2 and earlier. We have rewritten the entire low-level implementation to be able to support protocol improvements in newer Firebird versions, we have made changes with a stricter interpretation of the JDBC requirements, and we have removed some parts that were either obsolete or not functioning correctly.

See the Jaybird 3.0.0-beta-2 release notes for more information.

IMPORTANT

Jaybird 3.0 is still in development. This version is provided for testing purposes only. We'd appreciate your feedback, but we'd like to emphasize that this version is not ready for production.

The protocol implementation has been fundamentally rewritten and changes have been made for stricter JDBC conformance. As a result the driver might exhibit different behavior than previous versions. Read the release notes carefully to see if those differences are intentional.

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.

Changes since Jaybird 3.0.0-beta-1

The following has been changed or fixed since Jaybird 3.0.0-beta-1

  • Fixed: Authentication with legacy auth users fails when Firebird 3 uses
    AuthServer = Legacy_Auth (JDBC-460)
  • Fixed: jna-4.2.2.jar was not included in the distribution zip (JDBC-461)
  • Changed logging of Embedded library to only log on error if none of the
    libraries could be loaded.
  • Fixed: native protocol is 20x-30x slower than Jaybird 2.2 native (JDBC-463)
  • Fixed: ResultSetMetaData.getPrecision of a numeric column when no
    transaction is active throws an SQLException (JDBC-464)
    As part of this fix, the handling of queries executed by FBDatabaseMetaData
    has been changed. Most metadata queries are now kept prepared for reuse.

Jaybird 2.2.12

18 Dec 14:54
Compare
Choose a tag to compare

The following has been changed or fixed in Jaybird 2.2.12:

  • Fixed: ResultSetMetaData reports precision 0 for computed columns in
    Firebird 2.5 and earlier (JDBC-450)
    If Firebird reports precision 0, Jaybird will now estimate it to be
    precision 19 (not 18). This will be improved in Jaybird 3 to report 18.
  • Calling addBatch() or executeBatch() on a statement prepared with one of
    the generated keys options will now throw an FBDriverNotCapableException,
    instead of an unclear BatchUpdateException on executeBatch. (JDBC-451)
    Support for batch execution on a prepared statement with getGeneratedKeys
    support will be added in Jaybird 3.0 (see JDBC-452).
  • Fixed: ResultSet.absolute(0) should not throw an exception, but position
    the result set before the first row (JDBC-453)
  • Fixed: ResultSetMetaData.getPrecision of a numeric column when no
    transaction is active throws an SQLException (JDBC-464)
    As part of this fix, the handling of queries executed by FBDatabaseMetaData
    has been changed. Most metadata queries are now kept prepared for reuse.

Known issues in Jaybird 2.2.12

  • Connecting to Firebird 2.5 and earlier with a Firebird 3 fbclient.dll may
    be slow with native connections, see CORE-4658.
    Workaround is to connect to the IPv4 address instead of the hostname, or to
    use a Firebird 2.5 or earlier fbclient.dll.

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>2.2.12</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 3.0.0-beta-1

13 Nov 11:55
Compare
Choose a tag to compare
Jaybird 3.0.0-beta-1 Pre-release
Pre-release

Jaybird 3.0 is a big change from Jaybird 2.2 and earlier. We have rewritten the entire low-level implementation to be able to support protocol improvements in newer Firebird versions, we have made changes with a stricter interpretation of the JDBC requirements, and we have removed some parts that were either obsolete or not functioning correctly.

See the Jaybird 3.0.0-beta-1 release notes for more information.

IMPORTANT

Jaybird 3.0 is still in development. This version is provided for testing purposes only. We'd appreciate your feedback, but we'd like to emphasize that this version is not ready for production.

The protocol implementation has been fundamentally rewritten and changes have been made for stricter JDBC conformance. As a result the driver might exhibit different behavior than previous versions. Read the release notes carefully to see if those differences are intentional.

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.

Jaybird 3.0.0-alpha-1

20 Aug 12:26
Compare
Choose a tag to compare
Jaybird 3.0.0-alpha-1 Pre-release
Pre-release

Jaybird 3.0 is a big change from Jaybird 2.2 and earlier. We have rewritten the
entire low-level implementation to be able to support protocol improvements in
newer Firebird versions, we have made changes with a stricter interpretation of
the JDBC requirements, and we have removed some parts that were either obsolete
or not functioning correctly.

See the Jaybird 3.0.0-alpha-1 release notes for more information.

IMPORTANT

Jaybird 3.0 is still in development. This version is provided for testing
purposes only. We'd appreciate your feedback, but we'd like to emphasize that
this version is unstable and not ready for production.

The protocol implementation has been fundamentally rewritten and changes have
been made for stricter JDBC conformance. As a result the driver might exhibit
different behavior than previous versions. Read the release notes carefully to
see if those differences are intentional.

Bug reports about undocumented changes in behavior are appreciated.

Jaybird 2.2.11

07 Aug 08:28
Compare
Choose a tag to compare

The following has been changed or fixed in Jaybird 2.2.11:

  • Fixed: Dialect 1, NUMERIC(15,2) and DatabaseMetadata.getColumn returns
    0 for DECIMAL_DIGITS (JDBC-426)
  • Updated error messages from latest Firebird 3 to add missing messages
    (JDBC-428)
  • Fixed: ResultSet.getObject() returns byte[] instead of String for
    BLOB SUB_TYPE 1 when using octetsAsBytes (JDBC-431)
  • Improvement: Support Firebird 3 48-bit transaction ids. (JDBC-432)
    Note that FBMaintenanceManager.commit/rollbackTransaction(long) with
    longer than 32 bit transaction ids requires Firebird 3.0.1 because of
    CORE-5224.
  • Fixed: Batch insert with setBinaryStream inserts an empty BLOB SUB_TYPE TEXT
    (JDBC-433)
    This is the same issue as JDBC-312 that was fixed in Jaybird 2.2.4 for
    BLOB SUB_TYPE BINARY.
  • Changed locking to coarser blocks with - as far as possible - a single lock
    object per connection for all connection-derived objects (JDBC-435)
    This should prevent deadlocks on concurrent access as in some cases locks
    were obtained in different orders (eg (statement, connection), and
    (connection, statement)). The downside is reduced concurrency, but as using
    a connection from multiple threads concurrently is discouraged anyway, that
    is an acceptable price to pay.

Known issues in Jaybird 2.2.11

  • Connecting to Firebird 2.5 and earlier with a Firebird 3 fbclient.dll may
    be slow with native connections, see CORE-4658.
    Workaround is to connect to the IPv4 address instead of the hostname.

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>2.2.11</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 2.2.10

13 Mar 15:55
Compare
Choose a tag to compare

The following has been changed or fixed in Jaybird 2.2.10:

  • Improvement: Transmit encrypted password (isc_dpb_password_enc
    and isc_spb_password_enc) in pure java protocol (JDBC-406)
  • Improvement: Specify isc_tpb_lock_timeout in transaction mapping (JDBC-407)
  • Fixed: DatabaseMetaData.supportsGetGeneratedKeys does not report real
    availability of generated keys feature (JDBC-412)
  • Fixed: FBCachedClob throws SQLException instead
    of SQLFeatureNotSupportedException (JDBC-414)
  • Fixed: Transaction mapping cannot be configured through JDBC URL (JDBC-421)
  • Fixed: FBSQLWarning.getMessage() could return null instead of message (JDBC-423)

Known issues in Jaybird 2.2.10

  • Connecting to Firebird 2.5 and earlier with a Firebird 3 fbclient.dll may
    be slow with native connections, see CORE-4658.
    Workaround is to connect to the IPv4 address instead of the hostname.

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>2.2.10</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 2.2.9

19 Oct 15:10
Compare
Choose a tag to compare

The following has been changed or fixed in Jaybird 2.2.9:

  • Fixed: Result set of type CLOSE_CURSORS_AT_COMMIT isn't correctly closed on commit (JDBC-307)
  • Fixed: Open (output) blob in auto-commit prevents connection close. Fixed by fixing JDBC-307, see above. (JDBC-348)
  • New feature (experimental): Use isc_tpb_autocommit in auto commit mode (JDBC-399)
  • Fixed: "Exception. couldn't close blob: org.firebirdsql.gds.GDSException: invalid BLOB handle" on close of connection obtained from DBCP data source. Fixed by fixing JDBC-307, see above. (JDBC-400)
  • Fixed: CallableStatement.getMetaData() and getParameterMetaData() call throws exception when no input parameters provided when out parameter registered (JDBC-402)
  • Change: ResultSetMetaData will now report (VAR)CHAR CHARACTER SET OCTETS columns as Types.BINARY or Types.VARBINARY when using octetsAsBytes=true connection property. (JDBC-408)

Known issues in Jaybird 2.2.9

  • Connecting to Firebird 2.5 and earlier with a Firebird 3 fbclient.dll may be slow with native connections, see CORE-4658. Workaround is to connect to the IPv4 address instead of the hostname.

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>2.2.9</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 2.2.9-SNAPSHOT

24 Jul 11:28
Compare
Choose a tag to compare
Pre-release

This is a pre-release version for testing purposes!

The following has been changed or fixed since Jaybird 2.2.8:

  • Fixed: Result set of type CLOSE_CURSORS_AT_COMMIT isn't correctly closed on commit (JDBC-307)

    At commit the client side cursor is correctly closed; no explicit close is sent to the server as the commit will take care of this. This change may result in performance degradation if you use a lot of blobs as those are now properly closed again, we will address this in JDBC-401 for Jaybird 3.0.

  • New feature (experimental): Use isc_tpb_autocommit in auto commit mode (JDBC-399)

    This option is enabled with the connection property useFirebirdAutocommit, see Use isc_tpb_autocommit in auto commit mode (experimental) for further details.

  • Fixed: "Exception. couldn't close blob: org.firebirdsql.gds.GDSException: invalid BLOB handle" on close of connection obtained from DBCP data source. Fixed by fixing JDBC-307, see above. (JDBC-400)

Known issues in Jaybird 2.2.9

  • Connecting to Firebird 2.5 and earlier with a Firebird 3 fbclient.dll may be slow with native connections, see CORE-4658. Workaround is to connect to IPv4 address specifically.

See also the full release notes.

The release is also available on maven(*) on the Sonatype snapshot repository (https://oss.sonatype.org/content/repositories/snapshots):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.9-SNAPSHOT</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 2.2.8

31 May 12:22
Compare
Choose a tag to compare

The following has been changed or fixed since Jaybird 2.2.7:

  • Support for Java 5 has been dropped
  • Fixed: LibreOffice doesn't display tables with more than 41 records (JDBC-383)
  • Improvement: Don't use Firebird provided IP address for connecting event channel (JDBC-384)
  • Fixed: Connection.getMetaData().getColumns result set contains wrong (empty) COLUMN_DEF if column type was defined using domain (JDBC-388)
  • Fixed: Unable to retrieve update count after result set (JDBC-390)

    After executing a query that produces a result set, calling getMoreResults will allow getUpdateCount to actually return the update count where previously it always returned -1. This also allows obtaining the update count after a select query (even when executed using executeQuery). For selects the result will usually be 0.
  • Fixed: SELECT statements are processed for getGeneratedKeys by appending RETURNING (+ all columnnames) (JDBC-391)
  • Fixed: Generated key grammar does not correctly handle quoted table names (JDBC-392)
  • Fixed: Generated key grammar does not detect returning clause in update and delete (JDBC-393)

The following are known in issues in Jaybird 2.2.8 (and earlier):

  • ResultSets opened with CLOSE_CURSORS_AT_COMMIT aren't correctly closed on commit when auto-commit is off (JDBC-307)
  • Using FBEventManager with Firebird 3, NATIVE (or EMBEDDED) protocol and a Firebird 3 fbclient/fbembed can crash the JVM with an access violation (JDBC-398)

This list is not exhaustive, see the Jaybird tracker for a full list of open bugs.

See also the full release notes.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.8</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Jaybird 2.2.7

31 May 09:34
Compare
Choose a tag to compare

The following has been changed or fixed in Jaybird 2.2.7:

  • Fixed: blob return value of executable procedure obtained through getters on CallableStatement is 8 byte blob id, instead of expected blob content (JDBC-381)

    This was a regression caused by the changes of JDBC-350.

See also the full release notes