protected Set<CompareTupleFilter> findSingleValuesCompFilters(TupleFilter filter) { Collection<? extends TupleFilter> toCheck; if (filter instanceof CompareTupleFilter) { toCheck = Collections.singleton(filter); } else if (filter instanceof LogicalTupleFilter && filter.getOperator() == FilterOperatorEnum.AND) { toCheck = filter.getChildren(); } else { return Collections.emptySet(); } Set<CompareTupleFilter> result = Sets.newHashSet(); for (TupleFilter f : toCheck) { if (f instanceof CompareTupleFilter) { CompareTupleFilter compFilter = (CompareTupleFilter) f; // is COL=const ? if (compFilter.getOperator() == FilterOperatorEnum.EQ && compFilter.getValues().size() == 1 && compFilter.getColumn() != null) { result.add(compFilter); } } } return result; }
private void findMustEqualColsAndValues(TupleFilter filter, Collection<TblColRef> lookingForCols, HashMap<TblColRef, Object> result) { if (filter instanceof CompareTupleFilter) { CompareTupleFilter comp = (CompareTupleFilter) filter; TblColRef col = comp.getColumn(); if (lookingForCols.contains(col)) { if (comp.getOperator() == FilterOperatorEnum.EQ) result.put(col, comp.getFirstValue()); else if (comp.getOperator() == FilterOperatorEnum.ISNULL) result.put(col, null); } return; } if (filter instanceof LogicalTupleFilter) { LogicalTupleFilter logic = (LogicalTupleFilter) filter; if (logic.getOperator() == FilterOperatorEnum.AND) { for (TupleFilter child : logic.getChildren()) findMustEqualColsAndValues(child, lookingForCols, result); } return; } }
private Collection<ColumnRange> translateToAndDimRanges(List<? extends TupleFilter> andFilters) { Map<TblColRef, ColumnRange> rangeMap = new HashMap<TblColRef, ColumnRange>(); for (TupleFilter filter : andFilters) { if ((filter instanceof CompareTupleFilter) == false) { if (filter instanceof ConstantTupleFilter && !filter.evaluate(null, null)) { return null; } else { continue; } } CompareTupleFilter comp = (CompareTupleFilter) filter; if (comp.getColumn() == null) { continue; } @SuppressWarnings("unchecked") ColumnRange newRange = new ColumnRange(comp.getColumn(), (Set<ByteArray>) comp.getValues(), comp.getOperator()); ColumnRange existing = rangeMap.get(newRange.column); if (existing == null) { rangeMap.put(newRange.column, newRange); } else { existing.andMerge(newRange); } } return rangeMap.values(); }
switch (compTupleFilter.getOperator()) { case EQ: compResult = comp == 0;
switch (newCompareFilter.getOperator()) { case EQ: case IN: throw new IllegalStateException("Cannot handle operator " + newCompareFilter.getOperator());
CompareTupleFilter newCompareFilter = new CompareTupleFilter(oldCompareFilter.getOperator()); newCompareFilter.addChild(new ColumnTupleFilter(externalCol)); switch (newCompareFilter.getOperator()) { case EQ: case IN: throw new IllegalStateException("Cannot handle operator " + newCompareFilter.getOperator());
CompareTupleFilter newCompareFilter = new CompareTupleFilter(compareFilter.getOperator()); newCompareFilter.addChild(new ColumnTupleFilter(col));
String filterVal = toString(comp.getFirstValue()); switch (comp.getOperator()) { case EQ: case IN:
CompareTupleFilter newComp = new CompareTupleFilter(compf.getOperator()); newComp.addChild(new ColumnTupleFilter(hostCols[0])); newComp.addChild(new ConstantTupleFilter(compf.getValues()));
Object firstValue = compareTupleFilter.getFirstValue(); long t; switch (compareTupleFilter.getOperator()) { case EQ: t = DateFormat.stringToMillis((String) firstValue);
private Collection<ColumnValueRange> translateToAndDimRanges(List<? extends TupleFilter> andFilters, CubeSegment cubeSegment) { Map<TblColRef, ColumnValueRange> rangeMap = new HashMap<TblColRef, ColumnValueRange>(); for (TupleFilter filter : andFilters) { if ((filter instanceof CompareTupleFilter) == false) { continue; } CompareTupleFilter comp = (CompareTupleFilter) filter; if (comp.getColumn() == null) { continue; } ColumnValueRange range = new ColumnValueRange(comp.getColumn(), comp.getValues(), comp.getOperator()); andMerge(range, rangeMap); } return rangeMap.values(); }
CompareTupleFilter compFilter = (CompareTupleFilter) f; if (compFilter.getOperator() == FilterOperatorEnum.EQ && compFilter.getValues().size() == 1 && compFilter.getColumn() != null) { result.add(compFilter.getColumn());
private ConciseSet evalCompare(CompareTupleFilter filter) { switch (filter.getOperator()) { case ISNULL: return evalCompareIsNull(filter); case ISNOTNULL: return evalCompareIsNotNull(filter); case EQ: return evalCompareEqual(filter); case NEQ: return evalCompareNotEqual(filter); case IN: return evalCompareIn(filter); case NOTIN: return evalCompareNotIn(filter); case LT: return evalCompareLT(filter); case LTE: return evalCompareLTE(filter); case GT: return evalCompareGT(filter); case GTE: return evalCompareGTE(filter); default: throw new IllegalStateException("Unsupported operator " + filter.getOperator()); } }
CompareTupleFilter newComp = new CompareTupleFilter(compf.getOperator()); newComp.setNullString(nullString); newComp.addChild(new ColumnTupleFilter(col)); switch (newComp.getOperator()) { case EQ: case IN: throw new IllegalStateException("Cannot handle operator " + newComp.getOperator());
CompareTupleFilter newComp = new CompareTupleFilter(compf.getOperator()); newComp.addChild(new ColumnTupleFilter(hostCols[0])); newComp.addChild(new ConstantTupleFilter(compf.getValues()));
private void findMustEqualColsAndValues(TupleFilter filter, Collection<TblColRef> lookingForCols, HashMap<TblColRef, Object> result) { if (filter instanceof CompareTupleFilter) { CompareTupleFilter comp = (CompareTupleFilter) filter; TblColRef col = comp.getColumn(); if (lookingForCols.contains(col)) { if (comp.getOperator() == FilterOperatorEnum.EQ) result.put(col, comp.getFirstValue()); else if (comp.getOperator() == FilterOperatorEnum.ISNULL) result.put(col, null); } return; } if (filter instanceof LogicalTupleFilter) { LogicalTupleFilter logic = (LogicalTupleFilter) filter; if (logic.getOperator() == FilterOperatorEnum.AND) { for (TupleFilter child : logic.getChildren()) findMustEqualColsAndValues(child, lookingForCols, result); } return; } }
protected Set<CompareTupleFilter> findSingleValuesCompFilters(TupleFilter filter) { Collection<? extends TupleFilter> toCheck; if (filter instanceof CompareTupleFilter) { toCheck = Collections.singleton(filter); } else if (filter instanceof LogicalTupleFilter && filter.getOperator() == FilterOperatorEnum.AND) { toCheck = filter.getChildren(); } else { return Collections.emptySet(); } Set<CompareTupleFilter> result = Sets.newHashSet(); for (TupleFilter f : toCheck) { if (f instanceof CompareTupleFilter) { CompareTupleFilter compFilter = (CompareTupleFilter) f; // is COL=const ? if (compFilter.getOperator() == FilterOperatorEnum.EQ && compFilter.getValues().size() == 1 && compFilter.getColumn() != null) { result.add(compFilter); } } } return result; }
private Collection<ColumnRange> translateToAndDimRanges(List<? extends TupleFilter> andFilters) { Map<TblColRef, ColumnRange> rangeMap = new HashMap<TblColRef, ColumnRange>(); for (TupleFilter filter : andFilters) { if ((filter instanceof CompareTupleFilter) == false) { if (filter instanceof ConstantTupleFilter && !filter.evaluate(null, null)) { return null; } else { continue; } } CompareTupleFilter comp = (CompareTupleFilter) filter; if (comp.getColumn() == null) { continue; } @SuppressWarnings("unchecked") ColumnRange newRange = new ColumnRange(comp.getColumn(), (Set<ByteArray>) comp.getValues(), comp.getOperator()); ColumnRange existing = rangeMap.get(newRange.column); if (existing == null) { rangeMap.put(newRange.column, newRange); } else { existing.andMerge(newRange); } } return rangeMap.values(); }
CompareTupleFilter newCompareFilter = new CompareTupleFilter(compareFilter.getOperator()); newCompareFilter.addChild(new ColumnTupleFilter(col));
String filterVal = toString(comp.getFirstValue()); switch (comp.getOperator()) { case EQ: case IN: