public TopNQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
public TimeseriesQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
public TimeBoundaryQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
public SearchQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
public OrDimFilter(String dimensionName, String value, String... values) { fields = new ArrayList<>(values.length + 1); fields.add(new SelectorDimFilter(dimensionName, value, null)); for (String val : values) { fields.add(new SelectorDimFilter(dimensionName, val, null)); } }
@Override public Filter toFilter() { return new SelectorDimFilter(dimension, value, extractionFn).toFilter(); }
@Override public DimFilter optimize() { InDimFilter inFilter = optimizeLookup(); if (inFilter.values.size() == 1) { return new SelectorDimFilter(inFilter.dimension, inFilter.values.first(), inFilter.getExtractionFn()); } return inFilter; }
@Test public void testSingleValueStringColumnWithoutNulls() { assertFilterMatches(new SelectorDimFilter("dim0", null, null), ImmutableList.of()); assertFilterMatches(new SelectorDimFilter("dim0", "", null), ImmutableList.of()); assertFilterMatches(new SelectorDimFilter("dim0", "0", null), ImmutableList.of("0")); assertFilterMatches(new SelectorDimFilter("dim0", "1", null), ImmutableList.of("1")); }
@Test public void testExpressionVirtualColumn() { assertFilterMatches(new SelectorDimFilter("expr", "1.1", null), ImmutableList.of("0", "1", "2", "3", "4", "5")); assertFilterMatches(new SelectorDimFilter("expr", "1.2", null), ImmutableList.of()); }
@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 testSerde() throws Exception { final DimFilterHavingSpec havingSpec = new DimFilterHavingSpec(new SelectorDimFilter("foo", "1", null), false); final ObjectMapper objectMapper = new DefaultObjectMapper(); Assert.assertEquals( havingSpec, objectMapper.readValue(objectMapper.writeValueAsBytes(havingSpec), HavingSpec.class) ); } }
@Test public void testGetRequiredColumns() { SelectorDimFilter selectorDimFilter = new SelectorDimFilter("abc", "d", null); Assert.assertEquals(selectorDimFilter.getRequiredColumns(), Sets.newHashSet("abc")); } }
@Test public void testWithTimeExtractionFnNull() { assertFilterMatches(new SelectorDimFilter("dim0", null, new TimeDimExtractionFn("yyyy-MM-dd", "yyyy-MM", true)), ImmutableList.of()); assertFilterMatches(new SelectorDimFilter("dim6", null, new TimeDimExtractionFn("yyyy-MM-dd", "yyyy-MM", true)), ImmutableList.of("3", "4", "5")); assertFilterMatches(new SelectorDimFilter("dim6", "2017-07", new TimeDimExtractionFn("yyyy-MM-dd", "yyyy-MM", true)), ImmutableList.of("0", "1")); assertFilterMatches(new SelectorDimFilter("dim6", "2017-05", new TimeDimExtractionFn("yyyy-MM-dd", "yyyy-MM", true)), ImmutableList.of("2")); }
@Test public void testHashCode() { SelectorDimFilter selectorDimFilter = new SelectorDimFilter("abc", "d", null); RegexDimExtractionFn regexFn = new RegexDimExtractionFn(".*", false, null); SelectorDimFilter selectorDimFilter2 = new SelectorDimFilter("abc", "d", regexFn); Assert.assertNotEquals(selectorDimFilter.hashCode(), selectorDimFilter2.hashCode()); }
@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); }
@Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public void readWithExFnPreFilter(Blackhole blackhole) { Filter filter = new SelectorDimFilter("dimSequential", "super-199", JS_EXTRACTION_FN).toFilter(); StorageAdapter sa = new QueryableIndexStorageAdapter(qIndex); Sequence<Cursor> cursors = makeCursors(sa, filter); readCursors(cursors, blackhole); }
@Test public void testRowSignature() { final DimFilterHavingSpec havingSpec = new DimFilterHavingSpec(new SelectorDimFilter("foo", "1", null), null); havingSpec.setRowSignature(ImmutableMap.of("foo", ValueType.LONG)); Assert.assertTrue(havingSpec.eval(new MapBasedRow(0, ImmutableMap.of("foo", 1L)))); Assert.assertFalse(havingSpec.eval(new MapBasedRow(0, ImmutableMap.of("foo", 2L)))); }
@Test public void testToString() { SelectorDimFilter selectorDimFilter = new SelectorDimFilter("abc", "d", null); RegexDimExtractionFn regexFn = new RegexDimExtractionFn(".*", false, null); SelectorDimFilter selectorDimFilter2 = new SelectorDimFilter("abc", "d", regexFn); Assert.assertEquals("abc = d", selectorDimFilter.toString()); Assert.assertEquals("regex(/.*/, 1)(abc) = d", selectorDimFilter2.toString()); }
@Test public void testEmpty() { Filter extractionFilter = new SelectorDimFilter("foo", "NFDJUKFNDSJFNS", DIM_EXTRACTION_FN).toFilter(); ImmutableBitmap immutableBitmap = extractionFilter.getBitmapIndex(BITMAP_INDEX_SELECTOR); Assert.assertEquals(0, immutableBitmap.size()); }
@Test public void testNormal() { Filter extractionFilter = new SelectorDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN).toFilter(); ImmutableBitmap immutableBitmap = extractionFilter.getBitmapIndex(BITMAP_INDEX_SELECTOR); Assert.assertEquals(1, immutableBitmap.size()); }