Everything that keeps Firebird in “experimental” state. With a little help from @RobertG, I can handle the type errors when comparing parameters, very strange extra rules and barriers *.
However, these tripping hazards are incomprehensible for new users.
Whenever I feel the mood and click “Yes, convert embedded HSQL to Firebird”, I get a dysfunctional database. Literally every time.
WHERE ("Value" = :param OR :param IS NULL) fails, it needs to be rewritten as WHERE (:param IS NULL OR "Value" = :param)
WHERE :dateParam = "DateColumn" needs to be rewritten as WHERE :dateParam = CAST("DateColumn" AS DATE). Of course, “DateColumn” is a date column.
I do not complain of the differences between FB and HSQL. HSQL2 is just excellent and fully compatible with Base. The transition from HSQL1 to HSQL2 is a matter of minutes if you know how to do it.