Source:
<code>private List<String> selectColumnValuesMatchingFilterUsingPostFiltering( final DimFilter filter, final String selectColumn ) { final Filter theFilter = makeFilter(filter); final Filter postFilteringFilter = new Filter() { @Override public <T> T getBitmapResult(BitmapIndexSelector selector, BitmapResultFactory<T> bitmapResultFactory) { throw new UnsupportedOperationException(); } @Override public ValueMatcher makeMatcher(ColumnSelectorFactory factory) { return theFilter.makeMatcher(factory); } @Override public boolean supportsBitmapIndex(BitmapIndexSelector selector) { return false; } @Override public boolean supportsSelectivityEstimation(ColumnSelector columnSelector, BitmapIndexSelector indexSelector) { return false; } @Override public Set<String> getRequiredColumns() { <START> return null; <END> } @Override public boolean shouldUseIndex(BitmapIndexSelector bitmapIndexSelector) { return false; } @Override public double estimateSelectivity(BitmapIndexSelector indexSelector) { return 1.0; } }; final Sequence<Cursor> cursors = makeCursorSequence(postFilteringFilter); Sequence<List<String>> seq = Sequences.map( cursors, cursor -> { final DimensionSelector selector = cursor .getColumnSelectorFactory() .makeDimensionSelector(new DefaultDimensionSpec(selectColumn, selectColumn)); final List<String> values = new ArrayList<>(); while (!cursor.isDone()) { IndexedInts row = selector.getRow(); Preconditions.checkState(row.size() == 1); values.add(selector.lookupName(row.get(0))); cursor.advance(); } return values; } ); return seq.toList().get(0); }</code><technical_language>Collections.emptySet()</technical_language>

Target:
private List<String> selectColumnValuesMatchingFilterUsingPostFiltering( final DimFilter filter, final String selectColumn ) { final Filter theFilter = makeFilter(filter); final Filter postFilteringFilter = new Filter() { @Override public <T> T getBitmapResult(BitmapIndexSelector selector, BitmapResultFactory<T> bitmapResultFactory) { throw new UnsupportedOperationException(); } @Override public ValueMatcher makeMatcher(ColumnSelectorFactory factory) { return theFilter.makeMatcher(factory); } @Override public boolean supportsBitmapIndex(BitmapIndexSelector selector) { return false; } @Override public boolean shouldUseBitmapIndex(BitmapIndexSelector selector) { return false; } @Override public boolean supportsSelectivityEstimation(ColumnSelector columnSelector, BitmapIndexSelector indexSelector) { return false; } @Override public Set<String> getRequiredColumns() { return Collections.emptySet(); } @Override public double estimateSelectivity(BitmapIndexSelector indexSelector) { return 1.0; } }; final Sequence<Cursor> cursors = makeCursorSequence(postFilteringFilter); Sequence<List<String>> seq = Sequences.map( cursors, cursor -> { final DimensionSelector selector = cursor .getColumnSelectorFactory() .makeDimensionSelector(new DefaultDimensionSpec(selectColumn, selectColumn)); final List<String> values = new ArrayList<>(); while (!cursor.isDone()) { IndexedInts row = selector.getRow(); Preconditions.checkState(row.size() == 1); values.add(selector.lookupName(row.get(0))); cursor.advance(); } return values; } ); return seq.toList().get(0); }