Releases: FirebirdSQL/jaybird
Jaybird 2.2.13
The following has been changed or fixed in Jaybird 2.2.13:
- Improved: Support for Firebird 4 object name length of 63 characters (JDBC-467)
- Various improvements to thread safety and incomplete object validity checks. (JDBC-469) (JDBC-470)
Some methods did not throw anSQLExceptionwhen the object (ResultSet,Statement,Connection) was already closed. This sometimes lead to an unclearRuntimeExceptionat a later point. In other cases anSQLExceptionwas thrown, even though the object was valid. - Fixed: Generated keys query for table with space character (or any other character below
\u00A0that was nota-z,A-Z,0-9,$,_, or:) in its (quoted) name returns empty generated keys result set (JDBC-481)
Known issues in Jaybird 2.2.13
- Connecting to Firebird 2.5 and earlier with a Firebird 3
fbclient.dllmay 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 earlierfbclient.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.13</version>
* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.
Jaybird 3.0.0-beta-3
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-3 release notes for more information.
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.
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-2
- Improved: Support for Firebird 4 object name length of 63 characters (JDBC-467)
- Various improvements to thread safety and incomplete object validity checks. (JDBC-469) (JDBC-470)
Some methods did not throw anSQLExceptionwhen the object (ResultSet,Statement,Connection) was already closed. This sometimes lead to an unclearRuntimeExceptionat a later point. In other cases anSQLExceptionwas thrown, even though the object was valid. - Fixed: Unsupported or unexpected operation code 0 in processOperation when executing stored procedure (JDBC-472)
- Fixed: specifying
org.firebirdsql.jdbc.defaultConnectionEncodingdoes not set connection character set (JDBC-473)
As part of this fix we also removed the need to have the system property set before Jaybird was loaded. It will now be queried dynamically for each connection without a connection character set. - Fixed:
ClassCastExceptionon downgrade of result set concurrency (JDBC-474) - Improved:
Statement.setFetchDirectionandResultSet.setFetchDirectionnow allow the valuesResultSet.FETCH_REVERSEandResultSet.FETCH_UNKNOWN(JDBC-475)
These values are effectively ignored, and result set behavior is the same as with the default value ofResultSet.FETCH_FORWARD. - Updated
DatabaseMetaData.getSqlKeywords(JDBC-476)
The database metadata now returns the reserved words specific to the connected Firebird version. The reserved words, excluding those defined in SQL:2003, for versions 2.0, 2.1, 2.5 and 3.0 are available. - Improved: Calling
Blob.setBytesandClob.setStringis now supported for position1, on a new blob. (JDBC-478) - Upgrade
antlr-runtimedependency from 4.5.3 to 4.6 (JDBC-480)
If you tested with previous snapshot or beta versions of Jaybird 3.0, make sure to replaceantlr-runtime-4.5.3.jarwithantlr-runtime-4.6.jar. - Fixed: Generated keys query for table with space (or any other character below
\u0022) in its (quoted) name returns empty generated keys result set (JDBC-481)
Jaybird 3.0.0-beta-2
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.jarwas 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.getPrecisionof a numeric column when no
transaction is active throws an SQLException (JDBC-464)
As part of this fix, the handling of queries executed byFBDatabaseMetaData
has been changed. Most metadata queries are now kept prepared for reuse.
Jaybird 2.2.12
The following has been changed or fixed in Jaybird 2.2.12:
- Fixed:
ResultSetMetaDatareports precision0for computed columns in
Firebird 2.5 and earlier (JDBC-450)
If Firebird reports precision0, Jaybird will now estimate it to be
precision 19 (not 18). This will be improved in Jaybird 3 to report 18. - Calling
addBatch()orexecuteBatch()on a statement prepared with one of
the generated keys options will now throw anFBDriverNotCapableException,
instead of an unclearBatchUpdateExceptiononexecuteBatch. (JDBC-451)
Support for batch execution on a prepared statement withgetGeneratedKeys
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.getPrecisionof a numeric column when no
transaction is active throws an SQLException (JDBC-464)
As part of this fix, the handling of queries executed byFBDatabaseMetaData
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.dllmay
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 earlierfbclient.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
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
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
The following has been changed or fixed in Jaybird 2.2.11:
- Fixed: Dialect 1,
NUMERIC(15,2)andDatabaseMetadata.getColumnreturns
0forDECIMAL_DIGITS(JDBC-426) - Updated error messages from latest Firebird 3 to add missing messages
(JDBC-428) - Fixed:
ResultSet.getObject()returnsbyte[]instead ofStringfor
BLOB SUB_TYPE 1when usingoctetsAsBytes(JDBC-431) - Improvement: Support Firebird 3 48-bit transaction ids. (JDBC-432)
Note thatFBMaintenanceManager.commit/rollbackTransaction(long)with
longer than 32 bit transaction ids requires Firebird 3.0.1 because of
CORE-5224. - Fixed: Batch insert with
setBinaryStreaminserts an emptyBLOB 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.dllmay
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
The following has been changed or fixed in Jaybird 2.2.10:
- Improvement: Transmit encrypted password (
isc_dpb_password_enc
andisc_spb_password_enc) in pure java protocol (JDBC-406) - Improvement: Specify
isc_tpb_lock_timeoutin transaction mapping (JDBC-407) - Fixed:
DatabaseMetaData.supportsGetGeneratedKeysdoes not report real
availability of generated keys feature (JDBC-412) - Fixed:
FBCachedClobthrowsSQLExceptioninstead
ofSQLFeatureNotSupportedException(JDBC-414) - Fixed: Transaction mapping cannot be configured through JDBC URL (JDBC-421)
- Fixed:
FBSQLWarning.getMessage()could returnnullinstead of message (JDBC-423)
Known issues in Jaybird 2.2.10
- Connecting to Firebird 2.5 and earlier with a Firebird 3
fbclient.dllmay
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
The following has been changed or fixed in Jaybird 2.2.9:
- Fixed: Result set of type
CLOSE_CURSORS_AT_COMMITisn'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_autocommitin 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()andgetParameterMetaData()call throws exception when no input parameters provided when out parameter registered (JDBC-402) - Change:
ResultSetMetaDatawill now report(VAR)CHAR CHARACTER SET OCTETScolumns asTypes.BINARYorTypes.VARBINARYwhen usingoctetsAsBytes=trueconnection property. (JDBC-408)
Known issues in Jaybird 2.2.9
- Connecting to Firebird 2.5 and earlier with a Firebird 3
fbclient.dllmay 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
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_COMMITisn'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_autocommitin 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.dllmay 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.