Github user brianloss commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/275#discussion_r124557591
  
    --- Diff: 
core/src/main/java/org/apache/accumulo/core/iterators/system/LocalityGroupIterator.java
 ---
    @@ -97,75 +133,118 @@ public static final int seek(HeapIterator hiter, 
LocalityGroup[] groups, Set<Byt
         else
           cfSet = Collections.emptySet();
     
    -    for (LocalityGroup lgr : groups) {
    -      // when include is set to true it means this locality groups contains
    -      // wanted column families
    -      boolean include = false;
    +    // determine the set of groups to use
    +    Set<LocalityGroup> groupsToUse = new HashSet<LocalityGroup>();
     
    -      if (cfSet.size() == 0) {
    -        include = !inclusive;
    -      } else if (lgr.isDefaultLocalityGroup && lgr.columnFamilies == null) 
{
    -        // do not know what column families are in the default locality 
group,
    -        // only know what column families are not in it
    +    // if no column families specified, then include all groups unless 
!inclusive
    +    if (cfSet.size() == 0) {
    +      if (!inclusive) {
    +        groupsToUse.addAll(Arrays.asList(groups.groups));
    +      }
    +    } else {
     
    +      // do not know what column families are in the default locality 
group,
    +      // only know what column families are not in it
    +      if (groups.defaultGroup != null) {
             if (inclusive) {
    -          if (!nonDefaultColumnFamilies.containsAll(cfSet)) {
    +          if (!groups.groupByCf.keySet().containsAll(cfSet)) {
                 // default LG may contain wanted and unwanted column families
    -            include = true;
    +            groupsToUse.add(groups.defaultGroup);
               }// else - everything wanted is in other locality groups, so 
nothing to do
             } else {
               // must include, if all excluded column families are in other 
locality groups
    --- End diff --
    
    I know this wasn't your change, but this comment is misleading. We haven't 
tested that all excluded column families are in other locality groups here. I 
think that for !inclusive, you have to use the default locality group no matter 
what.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to