Improved Hibernate ORM Firebird dialect support

Mark Rotteveel created a Ticket and Pull Request for Hibernate ORM to improve Firebird dialect with fixes to a number of issues.

Improve Firebird dialect to fix a number of issues:

  • Typing of aggregates when using parameters
  • Add cast to AVG of integral type
  • Quote identifiers starting with an underscore
  • Correct inverted version check for Boolean support
  • Add or update various supports methods to return correct information
  • Render datetime literals without using JDBC escape
  • Fix rendering of literals with offset at offset 00:00
  • Fix rendering of create index statement
  • Fix rendering of CASE where all when clauses have a parameter to identify type of result
  • Add missing rendering of virtual columns to select list
  • Fix rendering of IN against a parameter

Updated a number of tests so they are either passing for Firebird, or ignored for Firebird.

Elixir driver firebirdex status

This article is published on the 5th day of Firebird Advent Calendar 2022 https://qiita.com/advent-calendar/2022/firebird 

and continues from previus blog from Firebird Advent Calendar 2019 https://nakagami.blog.ss-blog.jp/2019-12-22 (article in Japanese language) .

Elixir’s Firebird driver firebirdex https://hex.pm/packages/firebirdex has some features and bug fixes reported and fixed by @hermanius this year.

Added function

– ping() now works https://github.com/nakagami/firebirdex/pull/1
– charset can be specified as connection parameter https://github.com/nakagami/firebirdex/issues/7

bug fix

– nil conversion error https://github. com/nakagami/firebirdex/pull/2
– tatement after query https://github.com/nakagami/firebirdex/pull/5
– Pending transactions https://github.com/nakagami/firebirdex/issues/6

Thanks to @hermanius for the help.

Jaybird 4.0.8 released

Jaybird 4.0.8 has been released

The following has been changed or fixed since Jaybird 4.0.7:

  • Improvement: Backported new generated keys parser from Jaybird 5 to remove dependency on ANTLR (jaybird#718) With this change, Jaybird no longer relies on antlr-runtime-4.7.2.jar, if you don’t need it yourself, you can remove this library from the classpath. See New parser for generated keys handling for more information.

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and 19 using the Java 11 version of the driver).

See also

Jaybird 4.0.7 released

Jaybird 4.0.7 has been released

The following has been changed or fixed since Jaybird 4.0.6:

  • Improvement: (VAR)CHAR is now sent to the server with blr_varying2 or blr_text2 which includes the character set information (jaybird#692)
  • Changed: Usages of String.toUpperCase and String.toLowerCase now use Locale.ROOT to prevent locale-sensitivity issues (jaybird#697)
  • New feature: Support for NBackup “clean history” option (jaybird#706)
    The org.firebirdsql.management.NBackupManager interface has three new methods: setCleanHistory(boolean) to enable (or disable) cleaning of history during backup, and setKeepDays(int) and setKeepRows(int) to specify the number of days or rows to keep history. These options require Firebird 4.0.3 or higher.
    This feature was backported from Jaybird 5.
  • Fixed: Calling PreparedStatement.setClob or PreparedStatement.setBlob with a null Clob, Reader, Blob, or InputStream would result in a NullPointerException (jaybird#712)
    As part of this change the behaviour of setClob methods accepting a Reader was changed to be identical to setCharacterStream, and setBlob accepting an InputStream to setBinaryStream. The end result before and after this change is identical, but it can result in different memory and performance characteristics, as the stream is now consumed on execute, and not on set.

Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and using the Java 11 version of the driver).

See also

1 7 8 9 10 11 200