Some time ago I started a new implementation of JDOQL for RDBMS, to replace the legacy (TJDO) JDOQL implementation. The legacy implementation had problems with generation of SQL for many queries, particularly involving “contains”, “!contains” and use of unbound variables. As described here the replacement implementation builds on the generic query compilation used for all other datastores.
With the release of AccessPlatform 2.0.2 “JDOQL2” is ready for use in the vast majority of situations. It fixes various issues with the legacy implementation, successfully generating SQL for many queries that failed with legacy. It still doesn’t compile every complicated query perfectly, but it is at least understood what parts it is failing on now, and none of those parts in general work in the legacy implementation.
In AccessPlatform 2.1 “JDOQL2” will be renamed to “JDOQL”, and the legacy implementation will become “JDOQL-Legacy” so you will get this new implementation by default, and have to explicitly select the legacy implementation if you wish to use it.
By AccessPlatform 2.2 we intend to remove the legacy JDOQL and just move forwards with this new implementation.