Notes from a phone call with John related to Queries and Item Collections
We want to minimize the number of ref-collections used because of potential scalablility problems.
In the long term, we want to be able to use Unioning and Differencing of query results/ref collections to implement the inclusions and exclusions lists. This is conceptually the right thing to do, the question is whether we can make disk based union and difference sufficiently fast. The current solution of iterating through the entire query result to apply the inclusions and exclusions is clearly not scalable.
At the moment the task is to take my new query stuff and slide it in under ItemCollections?. The API that we talked about consists of the following parts
A string representation of a query - to change the query you change this string
Methods to tell the query whether it should subscribe to repository change notifications
A QueryChanged? notification that ItemCollection? or other query clients could subscribe to
John is interested in seeing full-text capabilities integrated with queries
My goal for 0.4 is to integrate what I have now with Chandler (ItemCollections?) and expand expressivness to full-text, enumerations, and date/time
There's an open question about queries that have an arbitrary ref-collection as their source. supporting this requires either:
a way to name individual ref-collections (actually this means naming items and indicating a ref-collection attribute)
a way to pass parameters to the query (you'd pass a ref-collection attribute and the system would know what to do)
In 0.5 I'll work on optimizer improvements and performance