assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); Arrays.asList( new Filter [] { filterMinHint, filterMaxHint, filterNoHint } )); assertNull(filterList.getNextCellHint(null)); filterList = new FilterList(Operator.MUST_PASS_ONE, Arrays.asList(new Filter [] { filterNoHint, filterMaxHint } )); assertNull(filterList.getNextCellHint(null)); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); Arrays.asList(new Filter [] { filterMinHint, filterMaxHint } )); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); Arrays.asList(new Filter[] { filterNoHint, filterMinHint, filterMaxHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); filterList = new FilterList(Operator.MUST_PASS_ALL, Arrays.asList(new Filter[] { filterNoHint, filterMaxHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); filterList = new FilterList(Operator.MUST_PASS_ALL, Arrays.asList(new Filter[] { filterNoHint, filterMinHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue));
@Test public void testReversedFilterListWithMockSeekHintFilter() throws IOException { KeyValue kv1 = new KeyValue(Bytes.toBytes("row1"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); KeyValue kv2 = new KeyValue(Bytes.toBytes("row2"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); KeyValue kv3 = new KeyValue(Bytes.toBytes("row3"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); Filter filter1 = new MockSeekHintFilter(kv1); filter1.setReversed(true); Filter filter2 = new MockSeekHintFilter(kv2); filter2.setReversed(true); Filter filter3 = new MockSeekHintFilter(kv3); filter3.setReversed(true); FilterList filterList = new FilterList(Operator.MUST_PASS_ONE); filterList.setReversed(true); filterList.addFilter(filter1); filterList.addFilter(filter2); filterList.addFilter(filter3); Assert.assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv1)); Assert.assertEquals(kv3, filterList.getNextCellHint(kv1)); filterList = new FilterList(Operator.MUST_PASS_ALL); filterList.setReversed(true); filterList.addFilter(filter1); filterList.addFilter(filter2); filterList.addFilter(filter3); Assert.assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv1)); Assert.assertEquals(kv1, filterList.getNextCellHint(kv1)); }
@Override @Deprecated public KeyValue getNextKeyHint(KeyValue currentKV) throws IOException { return KeyValueUtil.ensureKeyValue(getNextCellHint((Cell)currentKV)); }
@Test public void testReversedFilterListWithMockSeekHintFilter() throws IOException { KeyValue kv1 = new KeyValue(Bytes.toBytes("row1"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); KeyValue kv2 = new KeyValue(Bytes.toBytes("row2"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); KeyValue kv3 = new KeyValue(Bytes.toBytes("row3"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); Filter filter1 = new MockSeekHintFilter(kv1); filter1.setReversed(true); Filter filter2 = new MockSeekHintFilter(kv2); filter2.setReversed(true); Filter filter3 = new MockSeekHintFilter(kv3); filter3.setReversed(true); FilterList filterList = new FilterList(Operator.MUST_PASS_ONE); filterList.setReversed(true); filterList.addFilter(filter1); filterList.addFilter(filter2); filterList.addFilter(filter3); Assert.assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv1)); Assert.assertEquals(kv3, filterList.getNextCellHint(kv1)); filterList = new FilterList(Operator.MUST_PASS_ALL); filterList.setReversed(true); filterList.addFilter(filter1); filterList.addFilter(filter2); filterList.addFilter(filter3); Assert.assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv1)); Assert.assertEquals(kv1, filterList.getNextCellHint(kv1)); }
assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); Arrays.asList( new Filter [] { filterMinHint, filterMaxHint, filterNoHint } )); assertNull(filterList.getNextCellHint(null)); filterList = new FilterList(Operator.MUST_PASS_ONE, Arrays.asList(new Filter [] { filterNoHint, filterMaxHint } )); assertNull(filterList.getNextCellHint(null)); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); Arrays.asList(new Filter [] { filterMinHint, filterMaxHint } )); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); Arrays.asList(new Filter[] { filterNoHint, filterMinHint, filterMaxHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue)); filterList = new FilterList(Operator.MUST_PASS_ALL, Arrays.asList(new Filter[] { filterNoHint, filterMaxHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), maxKeyValue)); filterList = new FilterList(Operator.MUST_PASS_ALL, Arrays.asList(new Filter[] { filterNoHint, filterMinHint })); filterList.filterCell(null); assertEquals(0, comparator.compare(filterList.getNextCellHint(null), minKeyValue));