Search in sources :

Example 26 with BinaryComparator

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

the class TestHRegion method testCheckAndMutateTimestampsAreMonotonic.

@Test
public void testCheckAndMutateTimestampsAreMonotonic() throws IOException {
    HRegion region = initHRegion(tableName, method, CONF, fam1);
    ManualEnvironmentEdge edge = new ManualEnvironmentEdge();
    EnvironmentEdgeManager.injectEdge(edge);
    edge.setValue(10);
    Put p = new Put(row);
    p.setDurability(Durability.SKIP_WAL);
    p.addColumn(fam1, qual1, qual1);
    region.put(p);
    Result result = region.get(new Get(row));
    Cell c = result.getColumnLatestCell(fam1, qual1);
    assertNotNull(c);
    assertEquals(c.getTimestamp(), 10L);
    // clock goes back
    edge.setValue(1);
    p = new Put(row);
    p.setDurability(Durability.SKIP_WAL);
    p.addColumn(fam1, qual1, qual2);
    region.checkAndMutate(row, fam1, qual1, CompareOp.EQUAL, new BinaryComparator(qual1), p, false);
    result = region.get(new Get(row));
    c = result.getColumnLatestCell(fam1, qual1);
    assertEquals(c.getTimestamp(), 10L);
    assertTrue(Bytes.equals(c.getValueArray(), c.getValueOffset(), c.getValueLength(), qual2, 0, qual2.length));
}
Also used : Get(org.apache.hadoop.hbase.client.Get) Cell(org.apache.hadoop.hbase.Cell) ManualEnvironmentEdge(org.apache.hadoop.hbase.util.ManualEnvironmentEdge) Put(org.apache.hadoop.hbase.client.Put) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) Result(org.apache.hadoop.hbase.client.Result) Test(org.junit.Test)

Example 27 with BinaryComparator

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

the class TestHRegion method testCheckAndMutate_WithNonEqualCompareOp.

@Test
public void testCheckAndMutate_WithNonEqualCompareOp() throws IOException {
    byte[] row1 = Bytes.toBytes("row1");
    byte[] fam1 = Bytes.toBytes("fam1");
    byte[] qf1 = Bytes.toBytes("qualifier");
    byte[] val1 = Bytes.toBytes("value1");
    byte[] val2 = Bytes.toBytes("value2");
    byte[] val3 = Bytes.toBytes("value3");
    byte[] val4 = Bytes.toBytes("value4");
    // Setting up region
    this.region = initHRegion(tableName, method, CONF, fam1);
    try {
        // Putting val3 in key
        Put put = new Put(row1);
        put.addColumn(fam1, qf1, val3);
        region.put(put);
        // Test CompareOp.LESS: original = val3, compare with val3, fail
        boolean res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS, new BinaryComparator(val3), put, true);
        assertEquals(false, res);
        // Test CompareOp.LESS: original = val3, compare with val4, fail
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS, new BinaryComparator(val4), put, true);
        assertEquals(false, res);
        // Test CompareOp.LESS: original = val3, compare with val2,
        // succeed (now value = val2)
        put = new Put(row1);
        put.addColumn(fam1, qf1, val2);
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS, new BinaryComparator(val2), put, true);
        assertEquals(true, res);
        // Test CompareOp.LESS_OR_EQUAL: original = val2, compare with val3, fail
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS_OR_EQUAL, new BinaryComparator(val3), put, true);
        assertEquals(false, res);
        // Test CompareOp.LESS_OR_EQUAL: original = val2, compare with val2,
        // succeed (value still = val2)
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS_OR_EQUAL, new BinaryComparator(val2), put, true);
        assertEquals(true, res);
        // Test CompareOp.LESS_OR_EQUAL: original = val2, compare with val1,
        // succeed (now value = val3)
        put = new Put(row1);
        put.addColumn(fam1, qf1, val3);
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.LESS_OR_EQUAL, new BinaryComparator(val1), put, true);
        assertEquals(true, res);
        // Test CompareOp.GREATER: original = val3, compare with val3, fail
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER, new BinaryComparator(val3), put, true);
        assertEquals(false, res);
        // Test CompareOp.GREATER: original = val3, compare with val2, fail
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER, new BinaryComparator(val2), put, true);
        assertEquals(false, res);
        // Test CompareOp.GREATER: original = val3, compare with val4,
        // succeed (now value = val2)
        put = new Put(row1);
        put.addColumn(fam1, qf1, val2);
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER, new BinaryComparator(val4), put, true);
        assertEquals(true, res);
        // Test CompareOp.GREATER_OR_EQUAL: original = val2, compare with val1, fail
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER_OR_EQUAL, new BinaryComparator(val1), put, true);
        assertEquals(false, res);
        // Test CompareOp.GREATER_OR_EQUAL: original = val2, compare with val2,
        // succeed (value still = val2)
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER_OR_EQUAL, new BinaryComparator(val2), put, true);
        assertEquals(true, res);
        // Test CompareOp.GREATER_OR_EQUAL: original = val2, compare with val3, succeed
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.GREATER_OR_EQUAL, new BinaryComparator(val3), put, true);
        assertEquals(true, res);
    } finally {
        HBaseTestingUtility.closeRegionAndWAL(this.region);
        this.region = null;
    }
}
Also used : Put(org.apache.hadoop.hbase.client.Put) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) Test(org.junit.Test)

Example 28 with BinaryComparator

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

the class TestHRegion method testCheckAndRowMutateTimestampsAreMonotonic.

@Test
public void testCheckAndRowMutateTimestampsAreMonotonic() throws IOException {
    HRegion region = initHRegion(tableName, method, CONF, fam1);
    ManualEnvironmentEdge edge = new ManualEnvironmentEdge();
    EnvironmentEdgeManager.injectEdge(edge);
    edge.setValue(10);
    Put p = new Put(row);
    p.setDurability(Durability.SKIP_WAL);
    p.addColumn(fam1, qual1, qual1);
    region.put(p);
    Result result = region.get(new Get(row));
    Cell c = result.getColumnLatestCell(fam1, qual1);
    assertNotNull(c);
    assertEquals(c.getTimestamp(), 10L);
    // clock goes back
    edge.setValue(1);
    p = new Put(row);
    p.setDurability(Durability.SKIP_WAL);
    p.addColumn(fam1, qual1, qual2);
    RowMutations rm = new RowMutations(row);
    rm.add(p);
    assertTrue(region.checkAndRowMutate(row, fam1, qual1, CompareOp.EQUAL, new BinaryComparator(qual1), rm, false));
    result = region.get(new Get(row));
    c = result.getColumnLatestCell(fam1, qual1);
    assertEquals(c.getTimestamp(), 10L);
    LOG.info("c value " + Bytes.toStringBinary(c.getValueArray(), c.getValueOffset(), c.getValueLength()));
    assertTrue(Bytes.equals(c.getValueArray(), c.getValueOffset(), c.getValueLength(), qual2, 0, qual2.length));
}
Also used : Get(org.apache.hadoop.hbase.client.Get) Cell(org.apache.hadoop.hbase.Cell) ManualEnvironmentEdge(org.apache.hadoop.hbase.util.ManualEnvironmentEdge) Put(org.apache.hadoop.hbase.client.Put) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) Result(org.apache.hadoop.hbase.client.Result) RowMutations(org.apache.hadoop.hbase.client.RowMutations) Test(org.junit.Test)

Example 29 with BinaryComparator

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

the class TestHRegion method testCheckAndMutate_WithCorrectValue.

@Test
public void testCheckAndMutate_WithCorrectValue() throws IOException {
    byte[] row1 = Bytes.toBytes("row1");
    byte[] fam1 = Bytes.toBytes("fam1");
    byte[] qf1 = Bytes.toBytes("qualifier");
    byte[] val1 = Bytes.toBytes("value1");
    // Setting up region
    this.region = initHRegion(tableName, method, CONF, fam1);
    try {
        // Putting data in key
        Put put = new Put(row1);
        put.addColumn(fam1, qf1, val1);
        region.put(put);
        // checkAndPut with correct value
        boolean res = region.checkAndMutate(row1, fam1, qf1, CompareOp.EQUAL, new BinaryComparator(val1), put, true);
        assertEquals(true, res);
        // checkAndDelete with correct value
        Delete delete = new Delete(row1);
        delete.addColumn(fam1, qf1);
        res = region.checkAndMutate(row1, fam1, qf1, CompareOp.EQUAL, new BinaryComparator(val1), delete, true);
        assertEquals(true, res);
    } finally {
        HBaseTestingUtility.closeRegionAndWAL(this.region);
        this.region = null;
    }
}
Also used : Delete(org.apache.hadoop.hbase.client.Delete) Put(org.apache.hadoop.hbase.client.Put) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) Test(org.junit.Test)

Example 30 with BinaryComparator

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

the class TestHRegion method testCheckAndPut_wrongRowInPut.

@Test
public void testCheckAndPut_wrongRowInPut() throws IOException {
    this.region = initHRegion(tableName, method, CONF, COLUMNS);
    try {
        Put put = new Put(row2);
        put.addColumn(fam1, qual1, value1);
        try {
            region.checkAndMutate(row, fam1, qual1, CompareOp.EQUAL, new BinaryComparator(value2), put, false);
            fail();
        } catch (org.apache.hadoop.hbase.DoNotRetryIOException expected) {
        // expected exception.
        }
    } finally {
        HBaseTestingUtility.closeRegionAndWAL(this.region);
        this.region = null;
    }
}
Also used : Put(org.apache.hadoop.hbase.client.Put) BinaryComparator(org.apache.hadoop.hbase.filter.BinaryComparator) Test(org.junit.Test)

Aggregations

BinaryComparator (org.apache.hadoop.hbase.filter.BinaryComparator)41 Test (org.junit.Test)18 Filter (org.apache.hadoop.hbase.filter.Filter)15 RowFilter (org.apache.hadoop.hbase.filter.RowFilter)14 Put (org.apache.hadoop.hbase.client.Put)12 SingleColumnValueFilter (org.apache.hadoop.hbase.filter.SingleColumnValueFilter)12 Scan (org.apache.hadoop.hbase.client.Scan)9 QualifierFilter (org.apache.hadoop.hbase.filter.QualifierFilter)9 FilterList (org.apache.hadoop.hbase.filter.FilterList)8 FirstKeyOnlyFilter (org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter)7 PrefixFilter (org.apache.hadoop.hbase.filter.PrefixFilter)7 ArrayList (java.util.ArrayList)6 Cell (org.apache.hadoop.hbase.Cell)5 KeyValue (org.apache.hadoop.hbase.KeyValue)5 Delete (org.apache.hadoop.hbase.client.Delete)5 FamilyFilter (org.apache.hadoop.hbase.filter.FamilyFilter)5 InclusiveStopFilter (org.apache.hadoop.hbase.filter.InclusiveStopFilter)5 RegexStringComparator (org.apache.hadoop.hbase.filter.RegexStringComparator)5 Get (org.apache.hadoop.hbase.client.Get)4 Result (org.apache.hadoop.hbase.client.Result)4