Releases: FirebirdSQL/jaybird
Jaybird 6.0.0-beta-1
IMPORTANT
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.
What's new
The major changes and new features in Jaybird 6 are:
- Minimum supported Java version is Java 17.
See Java support for more information. - Minimum supported Firebird version is Firebird 3.0.
See Firebird support for more information. - The pure Java protocol — by default — no longer connects to Firebird 2.5 and older, as those versions are not supported.
See Pure Java will not connect to unsupported Firebird versions by default for more information. - The native and embedded protocols have been moved to a separate artifact, jaybird-native.
See NATIVE and EMBEDDED support moved to a separate artifact for more information. - OOREMOTE (OpenOffice/LibreOffice protocol) removed
- Modularization of Jaybird
- Connection property createDatabaseIfNotExist
- Report actual process ID (pid)
- Logging facade removed
- Support for ChaCha64 wire encryption
- Opt-in feature for package information in DatabaseMetaData
- Asynchronous fetching
- Blob performance improvements
- Support for executing transaction management statements
- Configurable buffer sizes for the wire protocol
- Broken connection detection for event manager
- Connection property to specify native library path
- Rewritten client info properties support
- TIMESTAMP fields now accept LocalDate and LocalTime
- ResultSet in auto-commit no longer closed after last row
- Changes to behaviour of updatable scrollable result sets
- … and Other fixes and changes
Upgrading from Jaybird 5 should be straightforward, but please make sure to read Compatibility changes before using Jaybird 6. If you’re using Jaybird with the native or embedded connections, you will need to make some additional changes. See also Upgrading from Jaybird 5 to Jaybird 6.
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 6.0.0-beta-1 release notes.
Maven
The release is also available on Maven:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>6.0.0-beta-1</version>
</dependency>
If you use the native or embedded protocol, you need to add the jaybird-native
dependency:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-native</artifactId>
<version>6.0.0-beta-1</version>
</dependency>
For ChaCha64 wire encryption support, add the chacha64-plugin
dependency:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>chacha64-plugin</artifactId>
<version>6.0.0-beta-1</version>
</dependency>
Jaybird 5.0.6
What's new
The following has been changed or fixed since Jaybird 5.0.5:
- Fixed: Exceptions during statement execution did not always complete the statement, which could delay transaction commit in auto-commit mode (#806)
- Fixed: Closing a connection when the database was shutdown, or the connection was otherwise broken, could result in a
NullPointerException
(#812) - Fixed: Error "Column unknown; IND.RDB$CONDITION_SOURCE" when calling
DatabaseMetaData.getIndexInfo
on Firebird 5.0 with a Firebird 4.0 (ODS 13.0) database (#813) - Fixed: Calling
ResultSet.wasNull()
when on the insert-row throws aSQLException
instead of reporting the null-state of the last retrieved column (#816) - Fixed: Inserting a row into a result set backed by a server-side scrollable cursor could include the inserted row twice (#819)
- Improvement: Updated JNA dependency to version 5.15.0 (#823)
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on Maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.6.java11</version>
* The version depends on your target Java version: 5.0.6.java11
for Java 11 and higher, or 5.0.6.java8
for Java 8.
Jaybird 5.0.5
What's new
The following has been changed or fixed since Jaybird 5.0.4:
- Fixed:
FBResultSetMetaData.getPrecision
would always estimate the precision ofNUMERIC
orDECIMAL
columns instead of obtaining the actual precision if the column position was 71 or higher (#731) - Optimized the query to retrieve extended field info for
ResultSetMetaData.getPrecision
to only retrieve columns of typeNUMERIC
orDECIMAL
(#732) - Fixed:
PreparedStatement.executeBatch()
of statement without parameters throws "Statement used in batch must have parameters [SQLState:07001, ISC error code:335545186]" on Firebird 4.0 or higher (#788) - New feature:
ResultSetMetaData.isAutoIncrement(int)
reportstrue
for identity columns if Jaybird can identify the underlying table and column (#793) - New feature: Boolean connection property
extendedMetadata
(defaulttrue
) to disable querying of extended metadata forgetPrecision(int)
andisAutoIncrement(int)
ofResultSetMetaData
(#795) - Improvement: The
FILTER_CONDITION
ofDatabaseMetaData.getIndexInfo
is populated for Firebird 5.0 partial indices (#797) - Fixed:
ResultSet.isBeforeFirst()
andResultSet.isAfterLast()
should always reportfalse
for an empty result set (#807) - Improvement:
Statement.getResultSet
no longer throws aSQLException
with message "Only one result set at a time/statement" if the current result set has already been returned byexecuteQuery
or a previous call togetResultSet
(#762) - Improvement: Updated JNA dependency to version 5.14.0 (#810)
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on Maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.5.java11</version>
* The version depends on your target Java version: 5.0.5.java11
(for Java 11 and higher), or 5.0.5.java8
(for Java 8)
Jaybird 5.0.4
What's new
The following has been changed or fixed since Jaybird 5.0.3:
- Firebird 5.0 is now formally supported
- Fixed: Potential NPE when
warningMessageCallback
isnull
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
) forsessionTimeZone
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)
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.4.java11</version>
* The version depends on your target Java version: 5.0.4.java11
(for Java 11 and higher), or 5.0.4.java8
(for Java 8)
Jaybird 5.0.3
What's new
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 id0
(not on all code paths, for some only when assertions are enabled). Formally, blob id0
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 id0
). Other drivers and tools simply send the requests for blob id0
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 inchar
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
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.3.java11</version>
* The version depends on your target Java version: 5.0.3.java11
(for Java 11 and higher), or 5.0.3.java8
Jaybird 4.0.10
What's new
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 (jaybird#734)
- Fixed:
CallableStatement.getXXX(String)
could return value from wrong column — backported from Jaybird 6 (jaybird#773) - Updated: error messages updated from Firebird 5.0.0.1272
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.
See also the full Jaybird 4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.10.java11</version>
* The version depends on your target Java version: 4.0.10.java11
(for Java 11 and higher), 4.0.10.java8
, or 4.0.10.java7
Jaybird 5.0.2
What's new
The following has been changed or 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.0isc_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 aFBTableStatisticsManager
instance returned only a few or even no tables; if no tables were returned, subsequent calls would also return no tables (jaybird#747)
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.2.java11</version>
* The version depends on your target Java version: 5.0.2.java11
(for Java 11 and higher), or 5.0.2.java8
Jaybird 5.0.1
What's new
The following has been changed or 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
andCallableStatement.getObject
would incorrectly trim string values (jaybird#729) - Fixed:
ResultSetMetaData.getPrecision(int)
of a connectionless result set could throw aNullPointerException
if the column was of typeFLOAT
orDOUBLE PRECISION
(jaybird#730)
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.
See also the full Jaybird 5 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.1.java11</version>
* The version depends on your target Java version: 5.0.1.java11
(for Java 11 and higher), or 5.0.1.java8
Jaybird 4.0.9
What's new
The following has been changed or fixed since Jaybird 4.0.8:
- Fixed: Some methods of
FBClob
threwNullPointerException
when attempting to use after implicit or explicitfree()
(jaybird#719) - Improvement: If the default JVM time zone is a GMT offset, e.g.
GMT-08:00
, configuresessionTimeZone
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 aNullPointerException
if the column was of typeFLOAT
orDOUBLE PRECISION
(jaybird#730)
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.
See also the full Jaybird 4 release notes.
Maven
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.9.java11</version>
* The version depends on your target Java version: 4.0.9.java11
(for Java 11 and higher), 4.0.9.java8
, or 4.0.9.java7
Jaybird 5.0.0
What's new
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)
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.
Maven
The release is also available on maven(*):
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>5.0.0.java11</version>
</dependency>
* The version depends on your target Java version: 5.0.0.java11
or 5.0.0.java8
.