public ColumnRange(TblColRef column, Set<ByteArray> values, TupleFilter.FilterOperatorEnum op) { this.column = column; //TODO: the treatment is un-precise if (op == TupleFilter.FilterOperatorEnum.EQ || op == TupleFilter.FilterOperatorEnum.IN || op == TupleFilter.FilterOperatorEnum.LTE || op == TupleFilter.FilterOperatorEnum.GTE) { isBoundryInclusive = true; } switch (op) { case EQ: case IN: valueSet = new HashSet<ByteArray>(values); refreshBeginEndFromEquals(); break; case LT: case LTE: end = rangeEndComparator.comparator.max(values); break; case GT: case GTE: begin = rangeStartComparator.comparator.min(values); break; case NEQ: case NOTIN: case ISNULL: case ISNOTNULL: // let Optiq filter it! break; default: throw new UnsupportedOperationException(op.name()); } }
public ColumnValueRange(TblColRef column, Collection<String> values, FilterOperatorEnum op) { this.column = column; this.order = RowKeyColumnOrder.getInstance(column.getType()); switch (op) { case EQ: case IN: equalValues = new HashSet<String>(values); refreshBeginEndFromEquals(); break; case LT: case LTE: endValue = order.max(values); break; case GT: case GTE: beginValue = order.min(values); break; case NEQ: case NOTIN: case ISNULL: // TODO ISNULL worth pass down as a special equal value case ISNOTNULL: // let Optiq filter it! break; default: throw new UnsupportedOperationException(op.name()); } }
public ColumnRange(TblColRef column, Set<ByteArray> values, TupleFilter.FilterOperatorEnum op) { this.column = column; //TODO: the treatment is un-precise if (op == TupleFilter.FilterOperatorEnum.EQ || op == TupleFilter.FilterOperatorEnum.IN || op == TupleFilter.FilterOperatorEnum.LTE || op == TupleFilter.FilterOperatorEnum.GTE) { isBoundryInclusive = true; } switch (op) { case EQ: case IN: valueSet = new HashSet<ByteArray>(values); refreshBeginEndFromEquals(); break; case LT: case LTE: end = rangeEndComparator.comparator.max(values); break; case GT: case GTE: begin = rangeStartComparator.comparator.min(values); break; case NEQ: case NOTIN: case ISNULL: case ISNOTNULL: // let Optiq filter it! break; default: throw new UnsupportedOperationException(op.name()); } }