private NavigableMap<byte[], NavigableMap<byte[], byte[]>> applyFilter( NavigableMap<byte[], NavigableMap<byte[], byte[]>> map, @Nullable Filter filter) { if (filter == null) { return map; } // todo: currently we support only FuzzyRowFilter as an experimental feature if (filter instanceof FuzzyRowFilter) { NavigableMap<byte[], NavigableMap<byte[], byte[]>> result = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); for (Map.Entry<byte[], NavigableMap<byte[], byte[]>> entry : map.entrySet()) { if (FuzzyRowFilter.ReturnCode.INCLUDE == ((FuzzyRowFilter) filter).filterRow(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; } else { throw new DataSetException("Unknown filter type: " + filter); } }
private NavigableMap<byte[], NavigableMap<byte[], Update>> applyFilter( NavigableMap<byte[], NavigableMap<byte[], Update>> bufferMap, @Nullable Filter filter) { if (filter == null) { return bufferMap; } // todo: currently we support only FuzzyRowFilter as an experimental feature if (filter instanceof FuzzyRowFilter) { NavigableMap<byte[], NavigableMap<byte[], Update>> result = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); for (Map.Entry<byte[], NavigableMap<byte[], Update>> entry : bufferMap.entrySet()) { if (FuzzyRowFilter.ReturnCode.INCLUDE == ((FuzzyRowFilter) filter).filterRow(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; } else { throw new DataSetException("Unknown filter type: " + filter); } }
private NavigableMap<byte[], NavigableMap<byte[], byte[]>> applyFilter( NavigableMap<byte[], NavigableMap<byte[], byte[]>> map, @Nullable Filter filter) { if (filter == null) { return map; } // todo: currently we support only FuzzyRowFilter as an experimental feature if (filter instanceof FuzzyRowFilter) { NavigableMap<byte[], NavigableMap<byte[], byte[]>> result = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); for (Map.Entry<byte[], NavigableMap<byte[], byte[]>> entry : map.entrySet()) { if (FuzzyRowFilter.ReturnCode.INCLUDE == ((FuzzyRowFilter) filter).filterRow(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; } else { throw new DataSetException("Unknown filter type: " + filter); } }
private NavigableMap<byte[], NavigableMap<byte[], Update>> applyFilter( NavigableMap<byte[], NavigableMap<byte[], Update>> bufferMap, @Nullable Filter filter) { if (filter == null) { return bufferMap; } // todo: currently we support only FuzzyRowFilter as an experimental feature if (filter instanceof FuzzyRowFilter) { NavigableMap<byte[], NavigableMap<byte[], Update>> result = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); for (Map.Entry<byte[], NavigableMap<byte[], Update>> entry : bufferMap.entrySet()) { if (FuzzyRowFilter.ReturnCode.INCLUDE == ((FuzzyRowFilter) filter).filterRow(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; } else { throw new DataSetException("Unknown filter type: " + filter); } }
@Override public Row next() { Map<byte[], byte[]> columns = new TreeMap<>(Bytes.BYTES_COMPARATOR); Map.Entry<byte[], NavigableMap<byte[], byte[]>> rowEntry = null; while (columns.isEmpty() && this.rows.hasNext()) { rowEntry = this.rows.next(); if (filter != null) { FuzzyRowFilter.ReturnCode code = filter.filterRow(rowEntry.getKey()); if (FuzzyRowFilter.ReturnCode.DONE.equals(code)) { break; // no more rows can match } else if (!FuzzyRowFilter.ReturnCode.INCLUDE.equals(code)) { continue; // this row does not match filter, move to next row } } //Try to read all columns for this row for (Map.Entry<byte[], byte[]> colEntry : rowEntry.getValue().entrySet()) { if (columnsToInclude == null || columnsToInclude.contains(colEntry.getKey())) { columns.put(colEntry.getKey(), colEntry.getValue()); } } } if (columns.size() > 0) { assert rowEntry != null; return new Result(rowEntry.getKey(), columns); } else { return null; } }
@Override public Row next() { Map<byte[], byte[]> columns = new TreeMap<>(Bytes.BYTES_COMPARATOR); Map.Entry<byte[], NavigableMap<byte[], byte[]>> rowEntry = null; while (columns.isEmpty() && this.rows.hasNext()) { rowEntry = this.rows.next(); if (filter != null) { FuzzyRowFilter.ReturnCode code = filter.filterRow(rowEntry.getKey()); if (FuzzyRowFilter.ReturnCode.DONE.equals(code)) { break; // no more rows can match } else if (!FuzzyRowFilter.ReturnCode.INCLUDE.equals(code)) { continue; // this row does not match filter, move to next row } } //Try to read all columns for this row for (Map.Entry<byte[], byte[]> colEntry : rowEntry.getValue().entrySet()) { if (columnsToInclude == null || columnsToInclude.contains(colEntry.getKey())) { columns.put(colEntry.getKey(), colEntry.getValue()); } } } if (columns.size() > 0) { assert rowEntry != null; return new Result(rowEntry.getKey(), columns); } else { return null; } }
FuzzyRowFilter.ReturnCode code = filter.filterRow(result.getFirst()); switch (code) { case DONE: {
FuzzyRowFilter.ReturnCode code = filter.filterRow(result.getFirst()); switch (code) { case DONE: {
new DimensionValue("dimension3", "value3")); rowKey = codec.createRowKey(dimensionValues, "myMetric", ts); Assert.assertEquals(FuzzyRowFilter.ReturnCode.INCLUDE, filter.filterRow(rowKey)); new DimensionValue("dimension3", "value3")); rowKey = codec.createRowKey(dimensionValues, "myMetric", ts); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); new DimensionValue("dimension3", "value13")); rowKey = codec.createRowKey(dimensionValues, "myMetric", ts); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); new DimensionValue("dimension3", "value3")); rowKey = codec.createRowKey(dimensionValues, "myMetric", ts); Assert.assertEquals(FuzzyRowFilter.ReturnCode.INCLUDE, filter.filterRow(rowKey)); new DimensionValue("dimension3", "value3")); rowKey = codec.createRowKey(dimensionValues, "myMetric2", ts); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); Assert.assertTrue(FuzzyRowFilter.ReturnCode.INCLUDE != filter.filterRow(rowKey)); Assert.assertEquals(FuzzyRowFilter.ReturnCode.INCLUDE, filter.filterRow(rowKey)); Assert.assertEquals(FuzzyRowFilter.ReturnCode.INCLUDE, filter.filterRow(rowKey));