Search in sources :

Example 1 with ByteBufferCellImpl

use of org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl in project hbase by apache.

the class TestComparators method testCellFieldsCompare.

@Test
public void testCellFieldsCompare() throws Exception {
    byte[] r0 = Bytes.toBytes("row0");
    byte[] r1 = Bytes.toBytes("row1");
    byte[] r2 = Bytes.toBytes("row2");
    byte[] f = Bytes.toBytes("cf1");
    byte[] q1 = Bytes.toBytes("qual1");
    byte[] q2 = Bytes.toBytes("qual2");
    byte[] q3 = Bytes.toBytes("r");
    long l1 = 1234L;
    byte[] v1 = Bytes.toBytes(l1);
    long l2 = 2000L;
    byte[] v2 = Bytes.toBytes(l2);
    // Row compare
    KeyValue kv = new KeyValue(r1, f, q1, v1);
    ByteBuffer buffer = ByteBuffer.wrap(kv.getBuffer());
    Cell bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    ByteArrayComparable comparable = new BinaryComparator(r1);
    assertEquals(0, CellComparator.compareRow(bbCell, comparable));
    assertEquals(0, CellComparator.compareRow(kv, comparable));
    kv = new KeyValue(r0, f, q1, v1);
    buffer = ByteBuffer.wrap(kv.getBuffer());
    bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    assertTrue(CellComparator.compareRow(bbCell, comparable) > 0);
    assertTrue(CellComparator.compareRow(kv, comparable) > 0);
    kv = new KeyValue(r2, f, q1, v1);
    buffer = ByteBuffer.wrap(kv.getBuffer());
    bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    assertTrue(CellComparator.compareRow(bbCell, comparable) < 0);
    assertTrue(CellComparator.compareRow(kv, comparable) < 0);
    // Qualifier compare
    comparable = new BinaryPrefixComparator(Bytes.toBytes("qual"));
    assertEquals(0, CellComparator.compareQualifier(bbCell, comparable));
    assertEquals(0, CellComparator.compareQualifier(kv, comparable));
    kv = new KeyValue(r2, f, q2, v1);
    buffer = ByteBuffer.wrap(kv.getBuffer());
    bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    assertEquals(0, CellComparator.compareQualifier(bbCell, comparable));
    assertEquals(0, CellComparator.compareQualifier(kv, comparable));
    kv = new KeyValue(r2, f, q3, v1);
    buffer = ByteBuffer.wrap(kv.getBuffer());
    bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    assertTrue(CellComparator.compareQualifier(bbCell, comparable) < 0);
    assertTrue(CellComparator.compareQualifier(kv, comparable) < 0);
    // Value compare
    comparable = new LongComparator(l1);
    assertEquals(0, CellComparator.compareValue(bbCell, comparable));
    assertEquals(0, CellComparator.compareValue(kv, comparable));
    kv = new KeyValue(r1, f, q1, v2);
    buffer = ByteBuffer.wrap(kv.getBuffer());
    bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    assertTrue(CellComparator.compareValue(bbCell, comparable) < 0);
    assertTrue(CellComparator.compareValue(kv, comparable) < 0);
    // Family compare
    comparable = new SubstringComparator("cf");
    assertEquals(0, CellComparator.compareFamily(bbCell, comparable));
    assertEquals(0, CellComparator.compareFamily(kv, comparable));
}
Also used : KeyValue(org.apache.hadoop.hbase.KeyValue) ByteBufferCellImpl(org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl) ByteBuffer(java.nio.ByteBuffer) Cell(org.apache.hadoop.hbase.Cell) Test(org.junit.Test)

Example 2 with ByteBufferCellImpl

use of org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl in project hbase by apache.

the class TestKeyOnlyFilter method testKeyOnly.

@Test
public void testKeyOnly() throws Exception {
    byte[] r = Bytes.toBytes("row1");
    byte[] f = Bytes.toBytes("cf1");
    byte[] q = Bytes.toBytes("qual1");
    byte[] v = Bytes.toBytes("val1");
    byte[] tags = Bytes.toBytes("tag1");
    KeyValue kv = new KeyValue(r, f, q, 0, q.length, 1234L, Type.Put, v, 0, v.length, tags);
    ByteBuffer buffer = ByteBuffer.wrap(kv.getBuffer());
    ByteBufferCellImpl bbCell = new ByteBufferCellImpl(buffer, 0, buffer.remaining());
    // KV format: <keylen:4><valuelen:4><key:keylen><value:valuelen>
    // Rebuild as: <keylen:4><0:4><key:keylen>
    int dataLen = lenAsVal ? Bytes.SIZEOF_INT : 0;
    int keyOffset = (2 * Bytes.SIZEOF_INT);
    int keyLen = KeyValueUtil.keyLength(kv);
    byte[] newBuffer = new byte[keyLen + keyOffset + dataLen];
    Bytes.putInt(newBuffer, 0, keyLen);
    Bytes.putInt(newBuffer, Bytes.SIZEOF_INT, dataLen);
    KeyValueUtil.appendKeyTo(kv, newBuffer, keyOffset);
    if (lenAsVal) {
        Bytes.putInt(newBuffer, newBuffer.length - dataLen, kv.getValueLength());
    }
    KeyValue KeyOnlyKeyValue = new KeyValue(newBuffer);
    KeyOnlyCell keyOnlyCell = new KeyOnlyCell(kv, lenAsVal);
    KeyOnlyByteBufferCell keyOnlyByteBufferedCell = new KeyOnlyByteBufferCell(bbCell, lenAsVal);
    assertTrue(CellUtil.matchingRows(KeyOnlyKeyValue, keyOnlyCell));
    assertTrue(CellUtil.matchingRows(KeyOnlyKeyValue, keyOnlyByteBufferedCell));
    assertTrue(CellUtil.matchingFamily(KeyOnlyKeyValue, keyOnlyCell));
    assertTrue(CellUtil.matchingFamily(KeyOnlyKeyValue, keyOnlyByteBufferedCell));
    assertTrue(CellUtil.matchingQualifier(KeyOnlyKeyValue, keyOnlyCell));
    assertTrue(CellUtil.matchingQualifier(KeyOnlyKeyValue, keyOnlyByteBufferedCell));
    assertTrue(CellUtil.matchingValue(KeyOnlyKeyValue, keyOnlyCell));
    assertTrue(KeyOnlyKeyValue.getValueLength() == keyOnlyByteBufferedCell.getValueLength());
    if (keyOnlyByteBufferedCell.getValueLength() > 0) {
        assertTrue(CellUtil.matchingValue(KeyOnlyKeyValue, keyOnlyByteBufferedCell));
    }
    assertTrue(KeyOnlyKeyValue.getTimestamp() == keyOnlyCell.getTimestamp());
    assertTrue(KeyOnlyKeyValue.getTimestamp() == keyOnlyByteBufferedCell.getTimestamp());
    assertTrue(KeyOnlyKeyValue.getTypeByte() == keyOnlyCell.getTypeByte());
    assertTrue(KeyOnlyKeyValue.getTypeByte() == keyOnlyByteBufferedCell.getTypeByte());
    assertTrue(KeyOnlyKeyValue.getTagsLength() == keyOnlyCell.getTagsLength());
    assertTrue(KeyOnlyKeyValue.getTagsLength() == keyOnlyByteBufferedCell.getTagsLength());
}
Also used : KeyValue(org.apache.hadoop.hbase.KeyValue) ByteBufferCellImpl(org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl) KeyOnlyByteBufferCell(org.apache.hadoop.hbase.filter.KeyOnlyFilter.KeyOnlyByteBufferCell) KeyOnlyCell(org.apache.hadoop.hbase.filter.KeyOnlyFilter.KeyOnlyCell) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test)

Example 3 with ByteBufferCellImpl

use of org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl in project hbase by apache.

the class TestSingleColumnValueFilter method basicFilterTests.

private void basicFilterTests(SingleColumnValueFilter filter) throws Exception {
    KeyValue kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_2);
    assertTrue("basicFilter1", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    byte[] buffer = kv.getBuffer();
    Cell c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter1", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_3);
    assertTrue("basicFilter2", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter2", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_4);
    assertTrue("basicFilter3", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter3", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    assertFalse("basicFilterNotNull", filter.filterRow());
    filter.reset();
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_1);
    assertTrue("basicFilter4", filter.filterKeyValue(kv) == Filter.ReturnCode.NEXT_ROW);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter4", filter.filterKeyValue(c) == Filter.ReturnCode.NEXT_ROW);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_2);
    assertTrue("basicFilter4", filter.filterKeyValue(kv) == Filter.ReturnCode.NEXT_ROW);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter4", filter.filterKeyValue(c) == Filter.ReturnCode.NEXT_ROW);
    assertFalse("basicFilterAllRemaining", filter.filterAllRemaining());
    assertTrue("basicFilterNotNull", filter.filterRow());
    filter.reset();
    filter.setLatestVersionOnly(false);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_1);
    assertTrue("basicFilter5", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter5", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_2);
    assertTrue("basicFilter5", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("basicFilter5", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    assertFalse("basicFilterNotNull", filter.filterRow());
}
Also used : KeyValue(org.apache.hadoop.hbase.KeyValue) ByteBufferCellImpl(org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl) Cell(org.apache.hadoop.hbase.Cell)

Example 4 with ByteBufferCellImpl

use of org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl in project hbase by apache.

the class TestSingleColumnValueFilter method nullFilterTests.

private void nullFilterTests(Filter filter) throws Exception {
    ((SingleColumnValueFilter) filter).setFilterIfMissing(true);
    KeyValue kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, FULLSTRING_1);
    assertTrue("null1", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    byte[] buffer = kv.getBuffer();
    Cell c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("null1", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    assertFalse("null1FilterRow", filter.filterRow());
    filter.reset();
    kv = new KeyValue(ROW, COLUMN_FAMILY, Bytes.toBytes("qual2"), FULLSTRING_2);
    assertTrue("null2", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("null2", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    assertTrue("null2FilterRow", filter.filterRow());
}
Also used : KeyValue(org.apache.hadoop.hbase.KeyValue) ByteBufferCellImpl(org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl) Cell(org.apache.hadoop.hbase.Cell)

Example 5 with ByteBufferCellImpl

use of org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl in project hbase by apache.

the class TestSingleColumnValueFilter method substrFilterTests.

private void substrFilterTests(Filter filter) throws Exception {
    KeyValue kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, FULLSTRING_1);
    assertTrue("substrTrue", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    byte[] buffer = kv.getBuffer();
    Cell c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("substrTrue", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, FULLSTRING_2);
    assertTrue("substrFalse", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
    buffer = kv.getBuffer();
    c = new ByteBufferCellImpl(ByteBuffer.wrap(buffer), 0, buffer.length);
    assertTrue("substrFalse", filter.filterKeyValue(c) == Filter.ReturnCode.INCLUDE);
    assertFalse("substrFilterAllRemaining", filter.filterAllRemaining());
    assertFalse("substrFilterNotNull", filter.filterRow());
}
Also used : KeyValue(org.apache.hadoop.hbase.KeyValue) ByteBufferCellImpl(org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl) Cell(org.apache.hadoop.hbase.Cell)

Aggregations

ByteBufferCellImpl (org.apache.hadoop.hbase.TestCellUtil.ByteBufferCellImpl)9 KeyValue (org.apache.hadoop.hbase.KeyValue)8 Cell (org.apache.hadoop.hbase.Cell)7 Test (org.junit.Test)4 ByteBuffer (java.nio.ByteBuffer)3 KeyOnlyByteBufferCell (org.apache.hadoop.hbase.filter.KeyOnlyFilter.KeyOnlyByteBufferCell)1 KeyOnlyCell (org.apache.hadoop.hbase.filter.KeyOnlyFilter.KeyOnlyCell)1