for the record: s/AndIterator/IntersectingIterator/

Mike just pointed out that I used the wrong name in IRC.

Josh Elser wrote:
OrIterator and AndIterator are both miserable piles and not good
representations of what they're actually supposed to be do.

They are designed to do conjunctions or disjunctions across one or more
columns within a row. e.g.

1 f:a => bob
1 f:c => george
1 f:z => sally

You could use the AndIterator to find row "1" for (f:a => bob AND f:z =>
sally) and you could use the OrIterator find row "1" for (f:a => bob OR
f:c => frank). The power behind the design of these iterators is that
you could compose them to do things like (AND (OR f:a => bob f:c =>
frank) f:z => sally).

I'm not sure how to best handle them, but would agree that they are in
terrible shape and not helping anyone. Channeling my "inner Tubbs", if
they continue to exist in accumulo "proper", they should have cleaned
up. Otherwise, defer until someone wants to give them some love.

Mike Miller wrote:
I am struggling with writing Iterator tests for ACCUMULO-1280. One
Iterator
in particular makes me scratch my head is the OrIterator. It doesn't
have a
Test (ACCUMULO-3208) and some of the code appears stale/illogical. This
class, combined with my other Iterator struggles, makes me wonder if
there
are some classes than can be deprecated...

./apache/accumulo/core/iterators$ ls *.java system/*.java user/*.java
| wc
-l
72

Just looking at numbers between these 3 directories we have 72 classes
pertaining to Iterators/Filters/Combiners. Can any of these safely be
deprecated in 2.0.0?

We already have this ticket
<https://issues.apache.org/jira/browse/ACCUMULO-3521> for unused Iterator
classes. Instead of creating tests for these classes, could they be
deprecated?

Reply via email to