public static NotDimFilter not(DimFilter filter) { return new NotDimFilter(filter); }
public static NotDimFilter NOT(DimFilter filter) { return new NotDimFilter(filter); }
@Override public DimFilter optimize() { return new NotDimFilter(this.getField().optimize()); }
private static DimFilter negate(final DimFilter filter) { if (Filtration.matchEverything().equals(filter)) { return Filtration.matchNothing(); } else if (Filtration.matchNothing().equals(filter)) { return Filtration.matchEverything(); } else if (filter instanceof NotDimFilter) { return ((NotDimFilter) filter).getField(); } else if (filter instanceof BoundDimFilter) { final BoundDimFilter negated = Bounds.not((BoundDimFilter) filter); return negated != null ? negated : new NotDimFilter(filter); } else { return new NotDimFilter(filter); } }
return toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())); } else if (kind == SqlKind.IS_FALSE || kind == SqlKind.IS_NOT_TRUE) { return new NotDimFilter( toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())) ); } else { assert kind == SqlKind.NOT; return new NotDimFilter(Iterables.getOnlyElement(filters));
case NOT_EQUALS: return isAligned ? new NotDimFilter(Bounds.interval(boundRefKey, interval)) : Filtration.matchEverything(); case GREATER_THAN:
final DimFilter newFilter = apply0(oldFilter); if (!oldFilter.equals(newFilter)) { return checkedProcess(new NotDimFilter(newFilter)); } else { return checkedProcess(filter);
@Test public void testNotSelector() { assertFilterMatches( new NotDimFilter(new SelectorDimFilter("dim0", null, null)), ImmutableList.of("0", "1", "2", "3", "4", "5") ); assertFilterMatches( new NotDimFilter(new SelectorDimFilter("dim0", "", null)), ImmutableList.of("0", "1", "2", "3", "4", "5") ); assertFilterMatches( new NotDimFilter(new SelectorDimFilter("dim0", "0", null)), ImmutableList.of("1", "2", "3", "4", "5") ); assertFilterMatches( new NotDimFilter(new SelectorDimFilter("dim0", "1", null)), ImmutableList.of("0", "2", "3", "4", "5") ); } }
@Test public void testAggregateWithAndFilter() { final float[] values = {0.15f, 0.27f}; final TestFloatColumnSelector selector = new TestFloatColumnSelector(values); FilteredAggregatorFactory factory = new FilteredAggregatorFactory( new DoubleSumAggregatorFactory("billy", "value"), new AndDimFilter(Lists.newArrayList(new NotDimFilter(new SelectorDimFilter("dim", "b", null)), new SelectorDimFilter("dim", "a", null)))); validateFilteredAggs(factory, values, selector); }
@Test public void testAggregateWithNotFilter() { final float[] values = {0.15f, 0.27f}; final TestFloatColumnSelector selector = new TestFloatColumnSelector(values); FilteredAggregatorFactory factory = new FilteredAggregatorFactory( new DoubleSumAggregatorFactory("billy", "value"), new NotDimFilter(new SelectorDimFilter("dim", "b", null)) ); validateFilteredAggs(factory, values, selector); }
new NotDimFilter(new AndDimFilter(ImmutableList.of( new SelectorDimFilter("dim0", "0", null), new SelectorDimFilter("dim1", "0", null) ); assertFilterMatches( new NotDimFilter(new AndDimFilter(ImmutableList.of( new SelectorDimFilter("dim0", "0", null), new SelectorDimFilter("dim1", "1", null) ); assertFilterMatches( new NotDimFilter(new AndDimFilter(ImmutableList.of( new SelectorDimFilter("dim0", "1", null), new SelectorDimFilter("dim1", "0", null) ); assertFilterMatches( new NotDimFilter(new AndDimFilter(ImmutableList.of( new SelectorDimFilter("dim0", "1", null), new SelectorDimFilter("dim1", "1", null) ); assertFilterMatches( new NotDimFilter(new AndDimFilter(ImmutableList.of( new NotDimFilter(new SelectorDimFilter("dim0", "1", null)), new NotDimFilter(new SelectorDimFilter("dim1", "1", null)) ))), ImmutableList.of("1")
assertFilterMatches( new AndDimFilter(ImmutableList.of( new NotDimFilter(new SelectorDimFilter("dim0", "1", null)), new NotDimFilter(new SelectorDimFilter("dim1", "1", null)) )), ImmutableList.of("0", "2", "3", "4", "5") assertFilterMatches( new AndDimFilter(ImmutableList.of( new NotDimFilter(new SelectorDimFilter("dim0", "0", null)), new NotDimFilter(new SelectorDimFilter("dim1", "0", null)) )), ImmutableList.of()
new NotDimFilter( new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, new NotDimFilter( new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME,
new FilteredAggregatorFactory( new CountAggregatorFactory("filteredAgg"), new NotDimFilter( new SelectorDimFilter(QueryRunnerTestHelper.marketDimension, "LolLol", null)
DimFilter not1 = new NotDimFilter(selector1); RangeSet expected1 = rangeSet(ImmutableList.of(Range.lessThan("a"), Range.greaterThan("a"))); Assert.assertEquals(expected1, not1.getDimensionRangeSet("dim1")); Assert.assertNull(not1.getDimensionRangeSet("dim2")); DimFilter not2 = new NotDimFilter(in3); if (NullHandling.sqlCompatible()) { DimFilter not3 = new NotDimFilter(bound1); RangeSet expected3 = rangeSet(ImmutableList.of(Range.lessThan("from"), Range.greaterThan("to"))); Assert.assertEquals(expected3, not3.getDimensionRangeSet("dim1")); DimFilter not4 = new NotDimFilter(not2); RangeSet expected4 = rangeSet(ImmutableList.of(point(null), point("null"))); Assert.assertEquals(expected4, not4.getDimensionRangeSet("dim1")); DimFilter not5 = new NotDimFilter(or1); RangeSet expected5 = rangeSet(ImmutableList.of(Range.lessThan("a"), Range.open("a", "from"))); Assert.assertEquals(expected5, not5.getDimensionRangeSet("dim1")); DimFilter not6 = new NotDimFilter(or2); RangeSet expected6a = rangeSet(ImmutableList.of(Range.greaterThan("tillend"))); RangeSet expected6b = rangeSet(ImmutableList.of(Range.atMost("again"), Range.atLeast("exclusive"))); DimFilter not7 = new NotDimFilter(and1); RangeSet expected7 = rangeSet(ImmutableList.of(Range.lessThan("testing"), Range.open("testing", "this"), Range.open("this", "tillend"), Range.greaterThan("tillend") DimFilter not8 = new NotDimFilter(and2);
private SearchQuery makeFilteredSearchQuery() { return Druids.newSearchQueryBuilder() .dataSource(dataSource) .filters(new NotDimFilter(new SelectorDimFilter(marketDimension, "spot", null))) .granularity(allGran) .intervals(fullOnInterval) .query("a") .build(); } }
new FilteredAggregatorFactory( new CountAggregatorFactory("filteredAgg"), new NotDimFilter(new SelectorDimFilter(QueryRunnerTestHelper.marketDimension, null, null))
new FilteredAggregatorFactory( new ApproximateHistogramFoldingAggregatorFactory("a5:agg", "hist_m1", null, null, null, null), new NotDimFilter(new SelectorDimFilter("dim1", "abc", null))
new FilteredAggregatorFactory( new ApproximateHistogramAggregatorFactory("a6:agg", "m1", null, null, null, null), new NotDimFilter(new SelectorDimFilter("dim1", "abc", null)) ), new ApproximateHistogramAggregatorFactory("a8:agg", "cnt", null, null, null, null)
.dataSource(QueryRunnerTestHelper.dataSource) .granularity(QueryRunnerTestHelper.dayGran) .filters(new NotDimFilter(new SelectorDimFilter("bobby", "sally", null))) .intervals(QueryRunnerTestHelper.firstToThird) .aggregators(aggregatorFactoryList)