Lenny Hoffman, Objectivity engineer. Current query support added in 1992, and hasn't evolved a lot. Not initially a problem - most people were using the product as a persistent store. Customers who need query support either built their own or ran back to an RDBMS. The issue - sheer inertia held this areas back.
The big problem is that data size is growing. There's a growing demand from their customers for out of the box query support - they want the scalability that they've come to enjoy with the OODB, but with the kind of query support they know is available with an RDBMS.
- Higher Fidelity - relationship properties as query values, Set qualifiers, path based queries
- More customizable - Application defined calculated values, Application defined indices
- Better performance - primarily optimization
- Open - publish a public OQL with an independent predicate equation tree. Add a listener interface for monitoring, logging, and tuning
[ed] - interesting bit about OQL - will that be truly open, such that other ODB vendors could adopt it? Or is open in this sense just about having a defined API?
The Path query support is somewhat inspired by XPath, but without the reliance on an XML structure. This looks a lot like what you would do with a Smalltalk collection and one of #select:, #collect:, #reject:, or #detect:.
Calculated Values - this is what you get with Gemstone by having the code execute in the database instead of in the client, or in an RDBMS via stored procedures. With Indexing, the big changes are extensibility and the addition of a public API.
In summary - this is an enhancement to the existing query engine by opening it up and making it easier to access and extend. Another note here - this is not part of the current release. In answer toa question, it's not clear which release it will be part of.