[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [p2-dev] another m5 migration issue
|
Ciao Ian :)
Thanks for your response! :)
In 3.4 world I used to have a single Query and a special
Collector that would post-process the query-results,
but now with 3.5 collectors seem to be used merely to
collect these objects the query accepted. I therefor
re-modeled
my collector to be another query, (not a match query but
the newer breed) and tested things. In order to have both queries at the same
time the compound query came in handy, so I used it right there (great concept
by the way, thanks for that!). However, I don't seem to be able to use the
compound now because all the queries in it seem to be executed twice, the second
time with the subset of matches that made it through the first run.
From your answers below I'm not sure how to proceed,
should I abandon the compound? Would have been nice to embrace it ..
;)
Another thing I'm wondering is if the same set of queries
is executed twice, could it help to feed the second run the same information the
first one got?
TIA,
Ciao, hh
(I'm at EclipseCon, so if you had a minute I'd love to hear
all about the story behind the compound vs. the
collector..)
See below
I'm
wondering why the queries are executed twice,the code
in
CompoundQuery::query (~line 48) looks like this:
if
(!isMatchQuery) {
// If it is not a
MatchQuery then we
must query the results.
collector = results.query(query,
collector,
subMonitor.newChild(10));
} ....
I'm pretty sure I'm doing
something wrong, but running the same query
twice seems to be a performance
issue if there is no good reason for it
anyway, so I might be on to
something. Still, please feel free to
suggest alternative, more p2-friendly
ways for achieving what I'm trying
to do.. :)
What you're talking about here is a CompoundQueryable. That is,
several queryables treated as a single unit. Think of this as Three
Queryables(X, Y, Z), and you want to treat this as 1
In this case, lets say:
X: EMF 1.9 EMF 1.7
Y: EMF 2.0 EMF 1.4 EMF 1.3 EMF 1.2
Z:EMF 1.0 and EMF 3.0
In order to query the Latest version of EMF, you can't simply perform a
LatestIU on each repo and hope that works. You would get 3 answers.
The other option is to Select * from each repo and then perform the query
on the results. This would be bad if each repository contained lots of
elements. The third way is to query each repo and then query the results.
This does not work in general, but it does work in all current p2
queries.
I have a general solution, but for simplicity we haven't included it. You
can see it at [1]
cheers,
ian
TIA,
Ciao,
hh
_______________________________________________
p2-dev mailing
list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
--
R. Ian Bull | EclipseSource Victoria | +1 250 477
7484
http://eclipsesource.com |
http://twitter.com/eclipsesource