[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [p2-dev] Removing MatchQuery in M7.
- From: John Arthorne <arthorne.eclipse@xxxxxxxxx>
- Date: Wed, 31 Mar 2010 14:47:41 -0400
- Delivered-to: email@example.com
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=n157D1HiKORPmR/1W513umn9TSsN5C9mlsKqgitS6oc4fb83QGVquPKhKdET8e6kDu IrNCnnNHqOLUqpx+yODXMo24vZQmSzy62fx7FdOOFnAVNDe84TjGL3otHZ68Gh7IQdtx kKl/QMObThGNSLLeY+sCl29DQ2z0ls/27rq7k=
I suspect from bug 304130 my opinion on this is already known, but just to be clear I'm still very much against removing MatchQuery. I think _expression_ queries are very useful for a limited set of use cases, and the built in _expression_ queries provided by QueryUtil that exploit repository indexes are great. However, I think an alternative to _expression_ queries needs to exist for clients who want to write custom queries and have nothing to gain from using _expression_ queries and don't want to live with their added complexity. When I originally created the query API I intended it as a very general purpose mechanism much like the Smalltalk select: statement (in hindsight maybe I should have called it that and we wouldn't be having this debate), and I think it would be a mistake to constrain our API to only allow _expression_-based queries.
On Wed, Mar 31, 2010 at 11:19 AM, Thomas Hallgren <thomas@xxxxxxx>
As stated in the deprecation note for MatchQuery, we would like to get rid of this class for M7. We are also very anxious not to disrupt our clients.
Clients may depend on the deprecated class. An alternative solution is included in the deprecation note but some code still need to be moved.
1. Tests show that performance is at least a 100 times better when indexes are used. A MatchQuery can never use an index.
2. We don't risk queries that have side-effects during evaluation.
3. The _expression_ evaluator can be cleaner if concerns about MatchQuery are removed.
4. API is cleaner and easier to elaborate.
5. Queries can be executed by a service in another process (database, remote, etc.)
6. No need to expose API for, or document, internal query behavior.
p2-dev mailing list