Java Code Examples for org.apache.hadoop.hbase.filter.Filter#ReturnCode

The following examples show how to use org.apache.hadoop.hbase.filter.Filter#ReturnCode . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Import.java    From hbase with Apache License 2.0 6 votes vote down vote up
/**
 * Attempt to filter out the keyvalue
 * @param c {@link Cell} on which to apply the filter
 * @return <tt>null</tt> if the key should not be written, otherwise returns the original
 *         {@link Cell}
 */
public static Cell filterKv(Filter filter, Cell c) throws IOException {
  // apply the filter and skip this kv if the filter doesn't apply
  if (filter != null) {
    Filter.ReturnCode code = filter.filterCell(c);
    if (LOG.isTraceEnabled()) {
      LOG.trace("Filter returned:" + code + " for the cell:" + c);
    }
    // if its not an accept type, then skip this kv
    if (!(code.equals(Filter.ReturnCode.INCLUDE) || code
        .equals(Filter.ReturnCode.INCLUDE_AND_NEXT_COL))) {
      return null;
    }
  }
  return c;
}
 
Example 2
Source File: SIFilterPacked.java    From spliceengine with GNU Affero General Public License v3.0 6 votes vote down vote up
@Override
public Filter.ReturnCode filterKeyValue(Cell keyValue){
    try{
        initFilterStateIfNeeded();
        wrapper.set(keyValue);
        DataFilter.ReturnCode code=filterState.filterCell(wrapper);
        switch(code){
            case NEXT_ROW:
                return Filter.ReturnCode.NEXT_ROW;
            case INCLUDE:
                return Filter.ReturnCode.INCLUDE;
            case INCLUDE_AND_NEXT_COL:
                return Filter.ReturnCode.INCLUDE_AND_NEXT_COL;
            case NEXT_COL:
                return Filter.ReturnCode.NEXT_COL;
            case SEEK:
                return Filter.ReturnCode.SEEK_NEXT_USING_HINT;
            case SKIP:
                return Filter.ReturnCode.SKIP;
            default:
                throw new IllegalStateException("Unexpected Return code: "+ code);
        }
    }catch(Exception e){
        throw new RuntimeException(e);
    }
}
 
Example 3
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {

  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 4
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {

  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 5
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {

  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 6
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {

  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 7
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {
  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 8
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {
  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 9
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {

  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 10
Source File: TransactionVisibilityFilterTest.java    From phoenix-tephra with Apache License 2.0 4 votes vote down vote up
private void runFilteringTest(TxFilterFactory txFilterFactory,
                              List<Filter.ReturnCode> assertCodes) throws Exception {
  /*
   * Start and stop some transactions.  This will give us a transaction state something like the following
   * (numbers only reflect ordering, not actual transaction IDs):
   *   6  - in progress
   *   5  - committed
   *   4  - invalid
   *   3  - in-progress
   *   2  - committed
   *   1  - committed
   *
   *   read ptr = 5
   *   write ptr = 6
   */

  Transaction tx1 = txManager.startShort();
  txManager.canCommit(tx1.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx1.getTransactionId(), tx1.getWritePointer());

  Transaction tx2 = txManager.startShort();
  txManager.canCommit(tx2.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx2.getTransactionId(), tx2.getWritePointer());

  Transaction tx3 = txManager.startShort();
  Transaction tx4 = txManager.startShort();
  txManager.invalidate(tx4.getTransactionId());

  Transaction tx5 = txManager.startShort();
  txManager.canCommit(tx5.getTransactionId(), EMPTY_CHANGESET);
  txManager.commit(tx5.getTransactionId(), tx5.getWritePointer());

  Transaction tx6 = txManager.startShort();

  Map<byte[], Long> ttls = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
  Filter filter = txFilterFactory.getTxFilter(tx6, ttls);

  assertEquals(assertCodes.get(5),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx6.getTransactionId())));
  assertEquals(assertCodes.get(4),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx5.getTransactionId())));
  assertEquals(assertCodes.get(3),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx4.getTransactionId())));
  assertEquals(assertCodes.get(2),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx3.getTransactionId())));
  assertEquals(assertCodes.get(1),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx2.getTransactionId())));
  assertEquals(assertCodes.get(0),
               filter.filterKeyValue(newKeyValue("row1", "val1", tx1.getTransactionId())));
}
 
Example 11
Source File: RunMatchFilter.java    From hraven with Apache License 2.0 4 votes vote down vote up
@Override
public Filter.ReturnCode filterKeyValue(Cell cell)
throws IOException {
  //TODO dogpiledays
  return Filter.ReturnCode.SKIP;
}