Skip to content

Commit

Permalink
Extract common code for range seek
Browse files Browse the repository at this point in the history
  • Loading branch information
OliviaYtterbrink committed Feb 14, 2018
1 parent d8a43c6 commit ebeab0f
Showing 1 changed file with 10 additions and 39 deletions.
Expand Up @@ -1052,17 +1052,7 @@ public PrimitiveLongReadableDiffSets indexUpdatesForRangeSeekByNumber( IndexDesc
selectedIncludeUpper = includeUpper; selectedIncludeUpper = includeUpper;
} }


PrimitiveLongDiffSets diffs = new PrimitiveLongDiffSets(); return indexUpdatesForRangeSeek( sortedUpdates, selectedLower, selectedIncludeLower, selectedUpper, selectedIncludeUpper );

Collection<PrimitiveLongDiffSets> inRange =
sortedUpdates.subMap( selectedLower, selectedIncludeLower,
selectedUpper, selectedIncludeUpper ).values();
for ( PrimitiveLongDiffSets diffForSpecificValue : inRange )
{
diffs.addAll( diffForSpecificValue.getAdded().iterator() );
diffs.removeAll( diffForSpecificValue.getRemoved().iterator() );
}
return diffs;
} }


@Override @Override
Expand Down Expand Up @@ -1103,31 +1093,7 @@ public PrimitiveLongReadableDiffSets indexUpdatesForRangeSeekByGeometry( IndexDe
selectedIncludeUpper = includeUpper; selectedIncludeUpper = includeUpper;
} }


// TODO this is the old way, the new one doesn't use withinRange return indexUpdatesForRangeSeek( sortedUpdates, selectedLower, selectedIncludeLower, selectedUpper, selectedIncludeUpper );
// DiffSets<Long> diffs = new DiffSets<>();
//
// Collection<Map.Entry<ValueTuple, DiffSets<Long>>> inRange =
// sortedUpdates.subMap( selectedLower, selectedIncludeLower,
// selectedUpper, selectedIncludeUpper ).entrySet();
// for ( Map.Entry<ValueTuple, DiffSets<Long>> entry : inRange )
// {
// if(((PointValue)entry.getKey().valueAt( 0 )).withinRange(lower, includeLower, upper, includeUpper)){
// DiffSets<Long> diffForSpecificValue = entry.getValue();
// diffs.addAll( diffForSpecificValue.getAdded().iterator() );
// diffs.removeAll( diffForSpecificValue.getRemoved().iterator() );
// }
// }
PrimitiveLongDiffSets diffs = new PrimitiveLongDiffSets();

Collection<PrimitiveLongDiffSets> inRange =
sortedUpdates.subMap( selectedLower, selectedIncludeLower,
selectedUpper, selectedIncludeUpper ).values();
for ( PrimitiveLongDiffSets diffForSpecificValue : inRange )
{
diffs.addAll( diffForSpecificValue.getAdded().iterator() );
diffs.removeAll( diffForSpecificValue.getRemoved().iterator() );
}
return diffs;
} }


@Override @Override
Expand Down Expand Up @@ -1169,10 +1135,15 @@ public PrimitiveLongReadableDiffSets indexUpdatesForRangeSeekByString( IndexDesc
selectedIncludeUpper = includeUpper; selectedIncludeUpper = includeUpper;
} }


return indexUpdatesForRangeSeek( sortedUpdates, selectedLower, selectedIncludeLower, selectedUpper, selectedIncludeUpper );
}

private PrimitiveLongReadableDiffSets indexUpdatesForRangeSeek( TreeMap<ValueTuple,PrimitiveLongDiffSets> sortedUpdates, ValueTuple lower,
boolean includeLower, ValueTuple upper, boolean includeUpper )
{
PrimitiveLongDiffSets diffs = new PrimitiveLongDiffSets(); PrimitiveLongDiffSets diffs = new PrimitiveLongDiffSets();
Collection<PrimitiveLongDiffSets> inRange = sortedUpdates.subMap( selectedLower, selectedIncludeLower,
selectedUpper, selectedIncludeUpper ) Collection<PrimitiveLongDiffSets> inRange = sortedUpdates.subMap( lower, includeLower, upper, includeUpper ).values();
.values();
for ( PrimitiveLongDiffSets diffForSpecificValue : inRange ) for ( PrimitiveLongDiffSets diffForSpecificValue : inRange )
{ {
diffs.addAll( diffForSpecificValue.getAdded().iterator() ); diffs.addAll( diffForSpecificValue.getAdded().iterator() );
Expand Down

0 comments on commit ebeab0f

Please sign in to comment.