Search in sources :

Example 16 with QualifierFilter

use of org.apache.hadoop.hbase.filter.QualifierFilter in project hbase by apache.

the class PermissionStorage method removeTablePermissions.

private static void removeTablePermissions(TableName tableName, byte[] column, Table table, boolean closeTable) throws IOException {
    Scan scan = new Scan();
    scan.addFamily(ACL_LIST_FAMILY);
    String columnName = Bytes.toString(column);
    scan.setFilter(new QualifierFilter(CompareOperator.EQUAL, new RegexStringComparator(String.format("(%s%s%s)|(%s%s)$", ACL_KEY_DELIMITER, columnName, ACL_KEY_DELIMITER, ACL_KEY_DELIMITER, columnName))));
    Set<byte[]> qualifierSet = new TreeSet<>(Bytes.BYTES_COMPARATOR);
    ResultScanner scanner = null;
    try {
        scanner = table.getScanner(scan);
        for (Result res : scanner) {
            for (byte[] q : res.getFamilyMap(ACL_LIST_FAMILY).navigableKeySet()) {
                qualifierSet.add(q);
            }
        }
        if (qualifierSet.size() > 0) {
            Delete d = new Delete(tableName.getName());
            for (byte[] qualifier : qualifierSet) {
                d.addColumns(ACL_LIST_FAMILY, qualifier);
            }
            table.delete(d);
        }
    } finally {
        if (scanner != null) {
            scanner.close();
        }
        if (closeTable) {
            table.close();
        }
    }
}
Also used : RegexStringComparator(org.apache.hadoop.hbase.filter.RegexStringComparator) Delete(org.apache.hadoop.hbase.client.Delete) ResultScanner(org.apache.hadoop.hbase.client.ResultScanner) TreeSet(java.util.TreeSet) Scan(org.apache.hadoop.hbase.client.Scan) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Result(org.apache.hadoop.hbase.client.Result)

Example 17 with QualifierFilter

use of org.apache.hadoop.hbase.filter.QualifierFilter in project hbase by apache.

the class TestAsyncTable method testCheckAndMutateWithTimestampFilterForOldApi.

@Test
@Deprecated
public void testCheckAndMutateWithTimestampFilterForOldApi() throws Throwable {
    AsyncTable<?> table = getTable.get();
    // Put with specifying the timestamp
    table.put(new Put(row).addColumn(FAMILY, Bytes.toBytes("A"), 100, Bytes.toBytes("a"))).get();
    // Put with success
    boolean ok = table.checkAndMutate(row, new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(100L)))).thenPut(new Put(row).addColumn(FAMILY, Bytes.toBytes("B"), Bytes.toBytes("b"))).get();
    assertTrue(ok);
    Result result = table.get(new Get(row).addColumn(FAMILY, Bytes.toBytes("B"))).get();
    assertEquals("b", Bytes.toString(result.getValue(FAMILY, Bytes.toBytes("B"))));
    // Put with failure
    ok = table.checkAndMutate(row, new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(101L)))).thenPut(new Put(row).addColumn(FAMILY, Bytes.toBytes("C"), Bytes.toBytes("c"))).get();
    assertFalse(ok);
    assertFalse(table.exists(new Get(row).addColumn(FAMILY, Bytes.toBytes("C"))).get());
}
Also used : FilterList(org.apache.hadoop.hbase.filter.FilterList) TimestampsFilter(org.apache.hadoop.hbase.filter.TimestampsFilter) FamilyFilter(org.apache.hadoop.hbase.filter.FamilyFilter) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Test(org.junit.Test)

Example 18 with QualifierFilter

use of org.apache.hadoop.hbase.filter.QualifierFilter in project hbase by apache.

the class TestFromClientSide5 method testFiltersWithReverseScan.

@Test
public void testFiltersWithReverseScan() throws Exception {
    final TableName tableName = name.getTableName();
    try (Table ht = TEST_UTIL.createTable(tableName, FAMILY)) {
        byte[][] ROWS = makeN(ROW, 10);
        byte[][] QUALIFIERS = { Bytes.toBytes("col0-<d2v1>-<d3v2>"), Bytes.toBytes("col1-<d2v1>-<d3v2>"), Bytes.toBytes("col2-<d2v1>-<d3v2>"), Bytes.toBytes("col3-<d2v1>-<d3v2>"), Bytes.toBytes("col4-<d2v1>-<d3v2>"), Bytes.toBytes("col5-<d2v1>-<d3v2>"), Bytes.toBytes("col6-<d2v1>-<d3v2>"), Bytes.toBytes("col7-<d2v1>-<d3v2>"), Bytes.toBytes("col8-<d2v1>-<d3v2>"), Bytes.toBytes("col9-<d2v1>-<d3v2>") };
        for (int i = 0; i < 10; i++) {
            Put put = new Put(ROWS[i]);
            put.addColumn(FAMILY, QUALIFIERS[i], VALUE);
            ht.put(put);
        }
        Scan scan = new Scan();
        scan.setReversed(true);
        scan.addFamily(FAMILY);
        Filter filter = new QualifierFilter(CompareOperator.EQUAL, new RegexStringComparator("col[1-5]"));
        scan.setFilter(filter);
        try (ResultScanner scanner = ht.getScanner(scan)) {
            int expectedIndex = 5;
            for (Result result : scanner) {
                assertEquals(1, result.size());
                Cell c = result.rawCells()[0];
                assertTrue(Bytes.equals(c.getRowArray(), c.getRowOffset(), c.getRowLength(), ROWS[expectedIndex], 0, ROWS[expectedIndex].length));
                assertTrue(Bytes.equals(c.getQualifierArray(), c.getQualifierOffset(), c.getQualifierLength(), QUALIFIERS[expectedIndex], 0, QUALIFIERS[expectedIndex].length));
                expectedIndex--;
            }
            assertEquals(0, expectedIndex);
        }
    }
}
Also used : RegexStringComparator(org.apache.hadoop.hbase.filter.RegexStringComparator) TableName(org.apache.hadoop.hbase.TableName) InclusiveStopFilter(org.apache.hadoop.hbase.filter.InclusiveStopFilter) RowFilter(org.apache.hadoop.hbase.filter.RowFilter) FirstKeyOnlyFilter(org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Filter(org.apache.hadoop.hbase.filter.Filter) KeyOnlyFilter(org.apache.hadoop.hbase.filter.KeyOnlyFilter) SingleColumnValueFilter(org.apache.hadoop.hbase.filter.SingleColumnValueFilter) ValueFilter(org.apache.hadoop.hbase.filter.ValueFilter) Cell(org.apache.hadoop.hbase.Cell) MultiRowMutationEndpoint(org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Test(org.junit.Test)

Example 19 with QualifierFilter

use of org.apache.hadoop.hbase.filter.QualifierFilter in project hbase by apache.

the class TestCheckAndMutate method testCheckAndMutateWithTimestampFilter.

@Test
public void testCheckAndMutateWithTimestampFilter() throws Throwable {
    try (Table table = createTable()) {
        // Put with specifying the timestamp
        table.put(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("A"), 100, Bytes.toBytes("a")));
        // Put with success
        CheckAndMutateResult result = table.checkAndMutate(CheckAndMutate.newBuilder(ROWKEY).ifMatches(new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(100L)))).build(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("B"), Bytes.toBytes("b"))));
        assertTrue(result.isSuccess());
        assertNull(result.getResult());
        Result r = table.get(new Get(ROWKEY).addColumn(FAMILY, Bytes.toBytes("B")));
        assertEquals("b", Bytes.toString(r.getValue(FAMILY, Bytes.toBytes("B"))));
        // Put with failure
        result = table.checkAndMutate(CheckAndMutate.newBuilder(ROWKEY).ifMatches(new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(101L)))).build(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("C"), Bytes.toBytes("c"))));
        assertFalse(result.isSuccess());
        assertNull(result.getResult());
        assertFalse(table.exists(new Get(ROWKEY).addColumn(FAMILY, Bytes.toBytes("C"))));
    }
}
Also used : FilterList(org.apache.hadoop.hbase.filter.FilterList) TimestampsFilter(org.apache.hadoop.hbase.filter.TimestampsFilter) FamilyFilter(org.apache.hadoop.hbase.filter.FamilyFilter) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Test(org.junit.Test)

Example 20 with QualifierFilter

use of org.apache.hadoop.hbase.filter.QualifierFilter in project hbase by apache.

the class TestCheckAndMutate method testCheckAndMutateWithTimestampFilterForOldApi.

@Test
@Deprecated
public void testCheckAndMutateWithTimestampFilterForOldApi() throws Throwable {
    try (Table table = createTable()) {
        // Put with specifying the timestamp
        table.put(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("A"), 100, Bytes.toBytes("a")));
        // Put with success
        boolean ok = table.checkAndMutate(ROWKEY, new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(100L)))).thenPut(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("B"), Bytes.toBytes("b")));
        assertTrue(ok);
        Result result = table.get(new Get(ROWKEY).addColumn(FAMILY, Bytes.toBytes("B")));
        assertEquals("b", Bytes.toString(result.getValue(FAMILY, Bytes.toBytes("B"))));
        // Put with failure
        ok = table.checkAndMutate(ROWKEY, new FilterList(new FamilyFilter(CompareOperator.EQUAL, new BinaryComparator(FAMILY)), new QualifierFilter(CompareOperator.EQUAL, new BinaryComparator(Bytes.toBytes("A"))), new TimestampsFilter(Collections.singletonList(101L)))).thenPut(new Put(ROWKEY).addColumn(FAMILY, Bytes.toBytes("C"), Bytes.toBytes("c")));
        assertFalse(ok);
        assertFalse(table.exists(new Get(ROWKEY).addColumn(FAMILY, Bytes.toBytes("C"))));
    }
}
Also used : FilterList(org.apache.hadoop.hbase.filter.FilterList) TimestampsFilter(org.apache.hadoop.hbase.filter.TimestampsFilter) FamilyFilter(org.apache.hadoop.hbase.filter.FamilyFilter) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) QualifierFilter(org.apache.hadoop.hbase.filter.QualifierFilter) Test(org.junit.Test)

Aggregations

QualifierFilter (org.apache.hadoop.hbase.filter.QualifierFilter)21 Test (org.junit.Test)12 BinaryComparator (org.apache.hadoop.hbase.filter.BinaryComparator)11 FilterList (org.apache.hadoop.hbase.filter.FilterList)11 Filter (org.apache.hadoop.hbase.filter.Filter)9 RegexStringComparator (org.apache.hadoop.hbase.filter.RegexStringComparator)8 Scan (org.apache.hadoop.hbase.client.Scan)7 FamilyFilter (org.apache.hadoop.hbase.filter.FamilyFilter)6 RowFilter (org.apache.hadoop.hbase.filter.RowFilter)6 TableName (org.apache.hadoop.hbase.TableName)5 FirstKeyOnlyFilter (org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter)5 InclusiveStopFilter (org.apache.hadoop.hbase.filter.InclusiveStopFilter)5 KeyValue (org.apache.hadoop.hbase.KeyValue)4 BinaryPrefixComparator (org.apache.hadoop.hbase.filter.BinaryPrefixComparator)4 PrefixFilter (org.apache.hadoop.hbase.filter.PrefixFilter)4 TimestampsFilter (org.apache.hadoop.hbase.filter.TimestampsFilter)4 ValueFilter (org.apache.hadoop.hbase.filter.ValueFilter)4 Cell (org.apache.hadoop.hbase.Cell)3 MultiRowMutationEndpoint (org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint)3 KeyOnlyFilter (org.apache.hadoop.hbase.filter.KeyOnlyFilter)3