Some info and main features:
1.I have focused on Firebird versions 1.5, 2.0 and 2.1. 2.1 is the latest version and 1.0 is no longer
supported by Firebird developers. I tested the dictionary with Firebird versions 1.5.5/Windows
and 2.1.1/Linux, JayBird 2.1.6 JDBC driver.
2.With the new dictionary the number of failed tests drops down from over 400 to
around 300. Still far from sliced bread but many errors come from using
reserved words in table and column names.
3.The dictionary no longer extends InterbaseDictionary, the databases now differ too
much to benefit from extension.
4.The Firebird documentation is available at their site . The most useful docs in this context are
Firebird 2.1 Release Notes, Firebird 2.0 Language Reference Update and
InterBase 6.0 Language Reference.
5.There are three properties users can set:
- firebirdVersion to force Firebird version,
- rangeSyntax to force the way queries involving range are handled (two syntaxes are possible),
- indexedVarcharMaxSizeFB15 to control the VARCHAR size when it is an
indexed column (version 1.5 has strong limits here).
If not set, these properties will be set by auto-detection.
6.When connected to Firebird 1.5, the dictionary assumes InterBase UDFs are available
(can be made available by running the ib_udf.sql script). They are needed
by some of JPQL functions.
7.I couldn't make indexOf method (LOCATE in JPQL) work. There is no suitable
function to use in versions 1.5 and 2.0. 2.1 has the POSITION function, which
seemed promising, but OpenJPA modifies the parameters by adding some
expressions (see JPQLExpressionBuilder) which Firebird does not accept here.