I was doing some testing Firebird against wip/6.0 and I tripped over the
fact the list of keywords in AnsiSqlKeywords.java (introduced for
https://hibernate.atlassian.net/browse/HHH-9768) is incomplete.
For example, the keyword POSITION is missing from the list, while it is
listed in SQL:2003 <reserved word>, on the other hand ADD is in the
list, which is only listed as non-reserved in <non-reserved word>. I
also notice that most - if not all - other function names are missing.
Firebird is particular finicky about keywords. I see two approaches:
1) I add the difference between the current list in AnsiSqlKeywords +
DatabaseMetaData.getKeywords() (which only returns those not reserved in
SQL:2003) and Firebird's actual keywords explicitly in the dialect
2) I update the list in AnsiSqlKeywords to contain all reserved words
from SQL:2003 (+ retain any additional keywords currently in the list)
This last option would have compatibility consequences (as additional
keywords may get quoted, which could change case-sensitivity for some
databases), so that may not be desirable.
Your thoughts on this?
Mark
--
Mark Rotteveel