Skip to content

Commit ff5d00b

Browse files
committed
Add FAQ entries about JDBC 4.4 and 4.5 support
1 parent 2780284 commit ff5d00b

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

src/docs/asciidoc/faq.adoc

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ SPDX-License-Identifier: LicenseRef-PDL-1.0
3636
[#where-do-i-get-jaybird]
3737
== Where do I get Jaybird?
3838

39+
You can find the latest Jaybird releases on:
40+
41+
* https://firebirdsql.org/en/jdbc-driver/[Firebird website: Firebird Type 4 JDBC Driver Downloads]
42+
* {jaybird-repo}/releases[Jaybird GitHub Releases page]
43+
+
44+
The Jaybird GitHub Releases page is also an archive for all releases since JayBird _[sic]_ 1.0-beta-1.
45+
46+
We recommend using your favourite build tool -- like Maven or Gradle -- to get Jaybird from Maven Central instead of downloading it manually.
47+
3948
[#maven]
4049
=== Maven
4150

@@ -553,6 +562,8 @@ You can also fork the {jaybird-repo}[Jaybird repository] and create pull request
553562
[#connecting-to-firebird]
554563
= Connecting to Firebird
555564
565+
For more information on connecting to Firebird using Jaybird, see also chapter https://firebirdsql.github.io/jaybird-manual/jaybird_manual.html#connection[Obtaining a connection] in the _Jaybird JDBC Driver Java Programmer’s Manual_.
566+
556567
[[jdbc-urls-java.sql.DriverManager]]
557568
== JDBC URLs (`java.sql.DriverManager`)
558569
@@ -880,12 +891,53 @@ Be aware that the first two options may have legal implications depending on the
880891
[#jdbc-support]
881892
= JDBC Support
882893
894+
[#jdbc44-support]
895+
== Is JDBC 4.4 supported?
896+
897+
Yes, https://jcp.org/aboutJava/communityprocess/mrel/jsr221/index4.html[JDBC 4.4^] is supported by Jaybird 5 and Jaybird 6, with some minor caveats. +
898+
No -- for Jaybird 4 and older.
899+
900+
JDBC 4.4 was introduced with Java 24.
901+
The only change in JDBC 4.4 was the removal of the requirement for `SQLPermission` checks, given `SecurityManager` support was removed in Java 24.
902+
903+
There are two caveats to this support:
904+
905+
* Jaybird still has the code for performing the permission checks to be compliant with the https://jcp.org/aboutJava/communityprocess/mrel/jsr221/index3.html[JDBC 4.3 Specification^] on Java 23 and older.
906+
+
907+
As such, the JDBC 4.4 compliance of Jaybird currently relies on Java 24 and higher still having the `SQLPermission` class, and `System.getSecurityManager()` always returning `null`.
908+
This may break and need additional work once a Java version is released where this class or method are removed.
909+
* Jaybird 6.0.0 - 6.0.2 are broken on Java 24 and higher due to the way the permission check is performed in those versions.
910+
+
911+
This is fixed in Jaybird 6.0.3 and higher (see https://github.com/FirebirdSQL/jaybird/issues/890[#890]).
912+
913+
[#jdbc45-support]
914+
== Is JDBC 4.5 supported?
915+
916+
Not fully -- for Jaybird 5.0.11 and older, and Jaybird 6.0.4 and older. +
917+
No -- for Jaybird 4 and older.
918+
919+
Java 26 (expected in March 2026) will introduce https://jcp.org/aboutJava/communityprocess/maintenance/jsr221/index5.html[JDBC 4.5 (draft)^].
920+
Jaybird is not yet compatible with some of the specified changes.
921+
922+
Specifically affected are:
923+
924+
* Introduction of `java.sql.JDBCType.DECFLOAT` and `java.sql.Types.DECFLOAT` (value `2015`).
925+
+
926+
At this time, Jaybird still uses its own constants in `JaybirdType.DECFLOAT` and `JaybirdTypeCodes.DECFLOAT` (value `-6001`).
927+
* Introduction of new methods on `java.sql.Connection` -- `enquoteIdentifier`, `enquoteLiteral`, `enquoteNCharLiteral`, and `isSimpleIdentifier`
928+
+
929+
The default implementation provided is not sufficient for Firebird, especially not when connecting to a dialect 1 database.
930+
For the time being, we recommend using the equivalent JDBC 4.3 methods (with the same name) on a `java.sql.Statement` instance of the connection.
931+
* The JDBC escape to selectively disable escape processing ([.nowrap]`++{\ ... \}++`) is not yet implemented.
932+
933+
We plan to address these issues in Jaybird 5 and Jaybird 6 releases _after_ the release of Java 26 (tracked by https://github.com/FirebirdSQL/jaybird/issues/907[#907]).
934+
883935
[#how-much-of-jdbc-is-supported-by-jaybird]
884936
== How much of JDBC is supported by Jaybird?
885937
886938
*WARNING* The information in this section is not 100% up-to-date
887939
888-
Jaybird 4 follows the JDBC 4.3 specification with some features and methods not implemented as they are not supported by Firebird.
940+
Jaybird 4 follows the https://jcp.org/aboutJava/communityprocess/mrel/jsr221/index3.html[JDBC 4.3 Specification^] with some features and methods not implemented as they are not supported by Firebird.
889941
890942
Implemented features:
891943

0 commit comments

Comments
 (0)