private Filter getColumnPaginationFilter() { return new ColumnPaginationFilter(1, 0); }
private Filter getColumnPaginationFilterOffset() { return new ColumnPaginationFilter(1, COLUMN_QUALIFIER); }
public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) { Preconditions.checkArgument(filterArguments.size() == 2, "Expected 2 but got: %s", filterArguments.size()); int limit = ParseFilter.convertByteArrayToInt(filterArguments.get(0)); int offset = ParseFilter.convertByteArrayToInt(filterArguments.get(1)); return new ColumnPaginationFilter(limit, offset); }
public static Filter getFilter(SliceQuery query) { byte[] colStartBytes = query.getSliceEnd().length() > 0 ? query.getSliceStart().as(StaticBuffer.ARRAY_FACTORY) : null; byte[] colEndBytes = query.getSliceEnd().length() > 0 ? query.getSliceEnd().as(StaticBuffer.ARRAY_FACTORY) : null; Filter filter = new ColumnRangeFilter(colStartBytes, true, colEndBytes, false); if (query.hasLimit()) { filter = new FilterList(FilterList.Operator.MUST_PASS_ALL, filter, new ColumnPaginationFilter(query.getLimit(), 0)); } logger.debug("Generated HBase Filter {}", filter); return filter; }
/** * @param pbBytes A pb serialized {@link ColumnPaginationFilter} instance * @return An instance of {@link ColumnPaginationFilter} made from <code>bytes</code> * @throws DeserializationException * @see #toByteArray */ public static ColumnPaginationFilter parseFrom(final byte [] pbBytes) throws DeserializationException { FilterProtos.ColumnPaginationFilter proto; try { proto = FilterProtos.ColumnPaginationFilter.parseFrom(pbBytes); } catch (InvalidProtocolBufferException e) { throw new DeserializationException(e); } if (proto.hasColumnOffset()) { return new ColumnPaginationFilter(proto.getLimit(), proto.getColumnOffset().toByteArray()); } return new ColumnPaginationFilter(proto.getLimit(),proto.getOffset()); }
@Test public void testMPONEWithSeekNextUsingHint() throws Exception { byte[] col = Bytes.toBytes("c"); FilterList filterList = new FilterList(Operator.MUST_PASS_ONE, new ColumnPaginationFilter(1, col)); KeyValue kv1 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("a"), 1, Bytes.toBytes("value")); KeyValue kv2 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("b"), 2, Bytes.toBytes("value")); KeyValue kv3 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("c"), 3, Bytes.toBytes("value")); KeyValue kv4 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("c"), 4, Bytes.toBytes("value")); assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv1)); assertEquals(ReturnCode.SEEK_NEXT_USING_HINT, filterList.filterCell(kv2)); assertEquals(ReturnCode.INCLUDE_AND_NEXT_COL, filterList.filterCell(kv3)); assertEquals(ReturnCode.NEXT_COL, filterList.filterCell(kv4)); }
@Test public void testWithMultiVersionsInSameRow() throws Exception { FilterList filterList01 = new FilterList(Operator.MUST_PASS_ONE, new ColumnPaginationFilter(1, 0)); KeyValue kv1 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("qual"), 1, Bytes.toBytes("value")); KeyValue kv2 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("qual"), 2, Bytes.toBytes("value")); KeyValue kv3 = new KeyValue(Bytes.toBytes("row"), Bytes.toBytes("fam"), Bytes.toBytes("qual"), 3, Bytes.toBytes("value")); assertEquals(ReturnCode.INCLUDE_AND_NEXT_COL, filterList01.filterCell(kv1)); assertEquals(ReturnCode.NEXT_COL, filterList01.filterCell(kv2)); assertEquals(ReturnCode.NEXT_COL, filterList01.filterCell(kv3)); FilterList filterList11 = new FilterList(Operator.MUST_PASS_ONE, new ColumnPaginationFilter(1, 1)); assertEquals(ReturnCode.NEXT_COL, filterList11.filterCell(kv1)); assertEquals(ReturnCode.NEXT_COL, filterList11.filterCell(kv2)); assertEquals(ReturnCode.NEXT_COL, filterList11.filterCell(kv3)); }
break; case ColumnPaginationFilter: filter = new ColumnPaginationFilter(limit, offset); break; case ColumnPrefixFilter:
@Test public void testColumnPaginationFilter() throws Exception { ColumnPaginationFilter columnPaginationFilter = new ColumnPaginationFilter(1,7); assertTrue(columnPaginationFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPaginationFilter)))); }
stringRange.isEndInclusive()); ColumnPaginationFilter filter2 = new ColumnPaginationFilter(5, 0); ColumnPaginationFilter filter3 = new ColumnPaginationFilter(5, 1); ColumnPaginationFilter filter4 = new ColumnPaginationFilter(5, 2); ColumnPaginationFilter filter5 = new ColumnPaginationFilter(5, 6); ColumnPaginationFilter filter6 = new ColumnPaginationFilter(5, 9); assertEquals(5, cellsCount(ht, new FilterList(Operator.MUST_PASS_ALL, filter1, filter2))); assertEquals(5, cellsCount(ht, new FilterList(Operator.MUST_PASS_ALL, filter1, filter3)));
s.setFilter(new ColumnPaginationFilter(1, QUALIFIERS_ONE[1])); verifyScan(s, expectedRows, expectedKeys); this.verifyScanFull(s, expectedKVs); expectedKeys = 2; s = new Scan(); s.setFilter(new ColumnPaginationFilter(2, QUALIFIERS_TWO[2])); verifyScan(s, expectedRows, expectedKeys); this.verifyScanFull(s, expectedKVs1); expectedKeys = 3; s = new Scan(); s.setFilter(new ColumnPaginationFilter(3, QUALIFIERS_TWO[2])); verifyScan(s, expectedRows, expectedKeys); this.verifyScanFull(s, expectedKVs2); s = new Scan(); s.addFamily(FAMILIES[1]); s.setFilter(new ColumnPaginationFilter(2, QUALIFIERS_TWO[2])); this.verifyScanFull(s, expectedKVs3);
public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) { Preconditions.checkArgument(filterArguments.size() == 2, "Expected 2 but got: %s", filterArguments.size()); int limit = ParseFilter.convertByteArrayToInt(filterArguments.get(0)); int offset = ParseFilter.convertByteArrayToInt(filterArguments.get(1)); return new ColumnPaginationFilter(limit, offset); }
s.setFilter(new ColumnPaginationFilter(1,0)); verifyScan(s, expectedRows, expectedKeys); this.verifyScanFull(s, expectedKVs); s.setFilter(new ColumnPaginationFilter(1,2)); verifyScan(s, expectedRows, expectedKeys); this.verifyScanFull(s, expectedKVs2); s.setFilter(new ColumnPaginationFilter(2,2)); expectedKeys = 2; verifyScan(s, expectedRows, expectedKeys); s.setFilter(new ColumnPaginationFilter(20,140)); expectedKeys = 0; expectedRows = 0;
public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); HBaseHelper helper = HBaseHelper.getHelper(conf); helper.dropTable("testtable"); helper.createTable("testtable", "colfam1"); System.out.println("Adding rows to table..."); helper.fillTable("testtable", 1, 10, 30, 2, true, "colfam1"); Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(TableName.valueOf("testtable")); // vv ColumnPaginationFilterExample Filter filter = new ColumnPaginationFilter(5, 15); Scan scan = new Scan(); scan.setFilter(filter); ResultScanner scanner = table.getScanner(scan); // ^^ ColumnPaginationFilterExample System.out.println("Results of scan:"); // vv ColumnPaginationFilterExample for (Result result : scanner) { System.out.println(result); } scanner.close(); // ^^ ColumnPaginationFilterExample } }
/** * @param pbBytes A pb serialized {@link ColumnPaginationFilter} instance * @return An instance of {@link ColumnPaginationFilter} made from <code>bytes</code> * @throws DeserializationException * @see #toByteArray */ public static ColumnPaginationFilter parseFrom(final byte [] pbBytes) throws DeserializationException { FilterProtos.ColumnPaginationFilter proto; try { proto = FilterProtos.ColumnPaginationFilter.parseFrom(pbBytes); } catch (InvalidProtocolBufferException e) { throw new DeserializationException(e); } if (proto.hasColumnOffset()) { return new ColumnPaginationFilter(proto.getLimit(), proto.getColumnOffset().toByteArray()); } return new ColumnPaginationFilter(proto.getLimit(),proto.getOffset()); }
Filter filter = new ColumnPaginationFilter(2, 0); FilterList filterlist = new FilterList(); filterlist.addFilter(filter);
Filter filter = new ColumnPaginationFilter(2, 0); FilterList filterlist = new FilterList(); filterlist.addFilter(filter);
public static Filter getFilter(SliceQuery query) { byte[] colStartBytes = query.getSliceEnd().length() > 0 ? query.getSliceStart().as(StaticBuffer.ARRAY_FACTORY) : null; byte[] colEndBytes = query.getSliceEnd().length() > 0 ? query.getSliceEnd().as(StaticBuffer.ARRAY_FACTORY) : null; Filter filter = new ColumnRangeFilter(colStartBytes, true, colEndBytes, false); if (query.hasLimit()) { filter = new FilterList(FilterList.Operator.MUST_PASS_ALL, filter, new ColumnPaginationFilter(query.getLimit(), 0)); } logger.debug("Generated HBase Filter {}", filter); return filter; }
public static Filter getFilter(SliceQuery query) { byte[] colStartBytes = query.getSliceEnd().length() > 0 ? query.getSliceStart().as(StaticBuffer.ARRAY_FACTORY) : null; byte[] colEndBytes = query.getSliceEnd().length() > 0 ? query.getSliceEnd().as(StaticBuffer.ARRAY_FACTORY) : null; Filter filter = new ColumnRangeFilter(colStartBytes, true, colEndBytes, false); if (query.hasLimit()) { filter = new FilterList(FilterList.Operator.MUST_PASS_ALL, filter, new ColumnPaginationFilter(query.getLimit(), 0)); } return filter; }
@Test public void testColumnPaginationFilter() throws Exception { ColumnPaginationFilter columnPaginationFilter = new ColumnPaginationFilter(1,7); assertTrue(columnPaginationFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPaginationFilter)))); }