Hi Ian and Susan,
There are several ways to get a unique result. One is to use "unique()
or latest()" in a query. Even if you just iterate over the result, it
will be guaranteed to be unique. Another is, as Ian points out, to use
the toSet methods on the result. In a user interface, I would expect
the IU's to be sorted. Using a TreeSet or TreeMap will have the side
effect of making everything unique.
I can think of one use-case where it is actually a good thing to get
duplicates, and that is if you write a repository verifier that
compares equal IU's to verify that the are exactly equal (as opposed to
equal with respect to ID and version which is what equal() is
using).
Regards,
Thomas Hallgren
On 03/31/2010 09:09 PM, Ian Bull wrote:
I do find it odd that the behavior will be different depending on what
kind of query it is. That is, duplicates within a queryable would be
filtered out, but any query that involves multiple queryables would not
eliminate duplicates. Is there a reason for this difference or is it
simply the result of the current implementation? The inconsistency bugs
me a little.
From what I can tell, it's just a result of the current
implementation. In the past, I combined the results in the compound
queryable, but for performance reasons we no longer do this. Also, if
we call one of the toSet methods, we would not see the duplicates.
We could trade off this performance (runtime) issue with a
performance (memory) one, and track the IUs we've seen as we iterate
over them.
cheers,
ian
susan
Ian Bull
---03/31/2010 10:56:01 AM---I was fixing some bugs in my repository
analysis tool and testing it against the Galileo repository. I noticed
that we had dupl
I was fixing some bugs in my repository analysis
tool and testing it against the Galileo repository. I noticed that we
had duplicate IUs in the repo, so I took a closer look. Since galileo
is a composite repo (pointing to SR1 and SR2), there are duplicates
between these two child repos. Currently the query mechanism (if you
use the iterator) is setup to append the two sets, but not necessarily
setify the results. Thomas brought this up a while back and I didn't
think much of it. Does anyone think this will cause a problem?
cheers,
ian
--
R. Ian Bull | EclipseSource Victoria | +1 250 477 7484
http://eclipsesource.com | http://twitter.com/eclipsesource_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
_______________________________________________
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
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev
|