Java 类org.apache.hadoop.hbase.index.filter.SingleColumnRangeFilter 实例源码

项目:HIndex    文件:FilterGroupingWorker.java   
private void addORColsToFinalList(FilterList filterList) {
  for (Entry<Column, List<Value>> entry : colWithOperatorsOfOR.entrySet()) {
    List<Value> valueList = entry.getValue();
    for (Value value : valueList) {
      if (value.getOperator() == CompareOp.EQUAL) {
        filterList.addFilter(value.getFilter());
      } else {
        SingleColumnRangeFilter rangeFltr =
            new SingleColumnRangeFilter(entry.getKey().getFamily(),
                entry.getKey().getQualifier(), entry.getKey().getValuePartition(),
                value.getValue(), value.getOperator(), null, null);
        filterList.addFilter(rangeFltr);
      }
    }
  }
}
项目:HIndex    文件:ScanFilterEvaluator.java   
Filter doFiltersRestruct(Filter filter) {
  if (filter instanceof SingleColumnValueFilter) {
    ValuePartition vp = null;
    if (filter instanceof SingleColumnValuePartitionFilter) {
      vp = ((SingleColumnValuePartitionFilter) filter).getValuePartition();
    }
    SingleColumnValueFilter scvf = (SingleColumnValueFilter) filter;
    if (scvf.getOperator().equals(CompareOp.LESS)
        || scvf.getOperator().equals(CompareOp.LESS_OR_EQUAL)
        || scvf.getOperator().equals(CompareOp.GREATER)
        || scvf.getOperator().equals(CompareOp.GREATER_OR_EQUAL)) {
      return new SingleColumnRangeFilter(scvf.getFamily(), scvf.getQualifier(), vp, scvf
          .getComparator().getValue(), scvf.getOperator(), null, null);
    }
  }
  FilterGroupingWorker groupWorker = new FilterGroupingWorker();
  return groupWorker.group(filter);
}
项目:HIndex    文件:ScanFilterEvaluator.java   
FilterNode evalFilterForIndexSelection(Filter filter, List<IndexSpecification> indices) {
  if (filter instanceof FilterList) {
    FilterList fList = (FilterList) filter;
    GroupingCondition condition =
        (fList.getOperator() == Operator.MUST_PASS_ALL) ? GroupingCondition.AND
            : GroupingCondition.OR;
    NonLeafFilterNode nonLeafFilterNode = new NonLeafFilterNode(condition);
    List<Filter> filters = fList.getFilters();
    for (Filter fltr : filters) {
      FilterNode node = evalFilterForIndexSelection(fltr, indices);
      nonLeafFilterNode.addFilterNode(node);
    }
    return handleNonLeafFilterNode(nonLeafFilterNode);
  } else if (filter instanceof SingleColumnValueFilter) {
    // Check for the availability of index
    return selectBestFitAndPossibleIndicesForSCVF(indices, (SingleColumnValueFilter) filter);
  } else if (filter instanceof SingleColumnRangeFilter) {
    return selectBestFitAndPossibleIndicesForSCRF(indices, (SingleColumnRangeFilter) filter);
  }
  return new NoIndexFilterNode();
}
项目:hindex    文件:FilterGroupingWorker.java   
private void addORColsToFinalList(FilterList filterList) {
  for (Entry<Column, List<Value>> entry : colWithOperatorsOfOR.entrySet()) {
    List<Value> valueList = entry.getValue();
    for (Value value : valueList) {
      if (value.getOperator() == CompareOp.EQUAL) {
        filterList.addFilter(value.getFilter());
      } else {
        SingleColumnRangeFilter rangeFltr =
            new SingleColumnRangeFilter(entry.getKey().getFamily(),
                entry.getKey().getQualifier(), entry.getKey().getValuePartition(),
                value.getValue(), value.getOperator(), null, null);
        filterList.addFilter(rangeFltr);
      }
    }
  }
}
项目:hindex    文件:ScanFilterEvaluator.java   
Filter doFiltersRestruct(Filter filter) {
  if (filter instanceof SingleColumnValueFilter) {
    ValuePartition vp = null;
    if (filter instanceof SingleColumnValuePartitionFilter) {
      vp = ((SingleColumnValuePartitionFilter) filter).getValuePartition();
    }
    SingleColumnValueFilter scvf = (SingleColumnValueFilter) filter;
    if (scvf.getOperator().equals(CompareOp.LESS)
        || scvf.getOperator().equals(CompareOp.LESS_OR_EQUAL)
        || scvf.getOperator().equals(CompareOp.GREATER)
        || scvf.getOperator().equals(CompareOp.GREATER_OR_EQUAL)) {
      return new SingleColumnRangeFilter(scvf.getFamily(), scvf.getQualifier(), vp, scvf
          .getComparator().getValue(), scvf.getOperator(), null, null);
    }
  }
  FilterGroupingWorker groupWorker = new FilterGroupingWorker();
  return groupWorker.group(filter);
}
项目:hindex    文件:ScanFilterEvaluator.java   
FilterNode evalFilterForIndexSelection(Filter filter, List<IndexSpecification> indices) {
  if (filter instanceof FilterList) {
    FilterList fList = (FilterList) filter;
    GroupingCondition condition =
        (fList.getOperator() == Operator.MUST_PASS_ALL) ? GroupingCondition.AND
            : GroupingCondition.OR;
    NonLeafFilterNode nonLeafFilterNode = new NonLeafFilterNode(condition);
    List<Filter> filters = fList.getFilters();
    for (Filter fltr : filters) {
      FilterNode node = evalFilterForIndexSelection(fltr, indices);
      nonLeafFilterNode.addFilterNode(node);
    }
    return handleNonLeafFilterNode(nonLeafFilterNode);
  } else if (filter instanceof SingleColumnValueFilter) {
    // Check for the availability of index
    return selectBestFitAndPossibleIndicesForSCVF(indices, (SingleColumnValueFilter) filter);
  } else if (filter instanceof SingleColumnRangeFilter) {
    return selectBestFitAndPossibleIndicesForSCRF(indices, (SingleColumnRangeFilter) filter);
  }
  return new NoIndexFilterNode();
}
项目:HIndex    文件:ScanFilterEvaluator.java   
private FilterNode selectBestFitAndPossibleIndicesForSCRF(List<IndexSpecification> indices,
    SingleColumnRangeFilter filter) {
  FilterColumnValueRange range =
      new FilterColumnValueRange(filter.getFamily(), filter.getQualifier(),
          filter.getValuePartition(), filter.getLowerBoundValue(), filter.getLowerBoundOp(),
          filter.getUpperBoundValue(), filter.getUpperBoundOp());
  return selectBestFitIndexForColumn(indices, range);
}
项目:hindex    文件:ScanFilterEvaluator.java   
private FilterNode selectBestFitAndPossibleIndicesForSCRF(List<IndexSpecification> indices,
    SingleColumnRangeFilter filter) {
  FilterColumnValueRange range =
      new FilterColumnValueRange(filter.getFamily(), filter.getQualifier(),
          filter.getValuePartition(), filter.getLowerBoundValue(), filter.getLowerBoundOp(),
          filter.getUpperBoundValue(), filter.getUpperBoundOp());
  return selectBestFitIndexForColumn(indices, range);
}