new IntervalDimFilter( intervalDimFilter.getDimension(), effectiveFilterIntervals,
@Test public void testSerde() throws IOException { DimFilter intervalFilter = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Intervals.of("1970-01-01T00:00:00.001Z/1970-01-01T00:00:00.004Z"), Intervals.of("1975-01-01T00:00:00.001Z/1980-01-01T00:00:00.004Z") ), null ); String filterStr = mapper.writeValueAsString(intervalFilter); IntervalDimFilter actualFilter = mapper.readerFor(DimFilter.class).readValue(filterStr); Assert.assertEquals(intervalFilter, actualFilter); intervalFilter = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Intervals.of("1970-01-01T00:00:00.001Z/1970-01-01T00:00:00.004Z"), Intervals.of("1975-01-01T00:00:00.001Z/1980-01-01T00:00:00.004Z") ), new RegexDimExtractionFn(".*", false, null) ); filterStr = mapper.writeValueAsString(intervalFilter); actualFilter = mapper.readerFor(DimFilter.class).readValue(filterStr); Assert.assertEquals(intervalFilter, actualFilter); }
@Test public void testGetRequiredColumns() { DimFilter intervalFilter = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Intervals.of("1970-01-01T00:00:00.001Z/1970-01-01T00:00:00.004Z"), Intervals.of("1975-01-01T00:00:00.001Z/1980-01-01T00:00:00.004Z") ), null ); Assert.assertEquals(intervalFilter.getRequiredColumns(), Sets.newHashSet(ColumnHolder.TIME_COLUMN_NAME)); } }
DimFilter intervalFilter1 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ); DimFilter intervalFilter2 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ); DimFilter intervalFilter3 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Assert.assertNotEquals(intervalFilter1.hashCode(), intervalFilter3.hashCode()); DimFilter intervalFilter4 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( DimFilter intervalFilter5 = new IntervalDimFilter( "__thyme", Arrays.asList(
new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, ImmutableList.of(Intervals.of("2000/2001"), Intervals.of("2002/2003")), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, ImmutableList.of(Intervals.of("2000/2001"), Intervals.of("2002/2003")),
new IntervalDimFilter( "dim0", Collections.singletonList(Intervals.of("1970-01-01T00:00:00.001Z/1970-01-01T00:00:00.005Z")), new IntervalDimFilter( "dim0", Arrays.asList( new IntervalDimFilter( "dim0", Arrays.asList( new IntervalDimFilter( "dim1", Collections.singletonList(Intervals.of("1970-01-01T00:00:00.002Z/1970-01-01T00:00:00.011Z")), ExtractionFn exFn = new JavaScriptExtractionFn(timeBoosterJsFn, true, JavaScriptConfig.getEnabledInstance()); assertFilterMatches( new IntervalDimFilter( "dim0", Collections.singletonList(Intervals.of("1970-01-01T02:00:00.001Z/1970-01-01T02:00:00.005Z")),
"sumLongSequential", "sumLongSequential" ), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(recent), new FilteredAggregatorFactory( new LongSumAggregatorFactory("_cmp_sumLongSequential", "sumLongSequential"), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(previous), "sumLongSequential", "sumLongSequential" ), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(recent), "_cmp_sumLongSequential", "sumLongSequential" ), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(previous),
new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(Intervals.of("1970-01-01T00:00:00.001Z/1970-01-01T00:00:00.005Z")), new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ExtractionFn exFn = new JavaScriptExtractionFn(timeBoosterJsFn, true, JavaScriptConfig.getEnabledInstance()); assertFilterMatches( new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(Intervals.of("1970-01-01T02:00:00.001Z/1970-01-01T02:00:00.005Z")),
DimFilter intervalFilter1 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ); DimFilter intervalFilter2 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ); DimFilter intervalFilter3 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Assert.assertNotEquals(intervalFilter1, intervalFilter3); DimFilter intervalFilter4 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( Assert.assertEquals(intervalFilter1, intervalFilter4); DimFilter intervalFilter5 = new IntervalDimFilter( "__thyme", Arrays.asList(
@Test public void testGetCacheKey() DimFilter intervalFilter1 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( ); DimFilter intervalFilter2 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( DimFilter intervalFilter3 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList( regexFn ); DimFilter intervalFilter4 = new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Arrays.asList(
new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(Intervals.utc(1000, 2000)), AggregatorFactory expectedPartialFilteredAgg = new FilteredAggregatorFactory( longSumAggregatorFactory, new IntervalDimFilter( ColumnHolder.TIME_COLUMN_NAME, Collections.singletonList(Intervals.utc(1500, 2000)),
@Test public void testFilteredAggregatorDontOptimizeOnNonTimeColumn() { // Filter is not on __time, so no optimizations should be made. LongSumAggregatorFactory longSumAggregatorFactory = new LongSumAggregatorFactory("test", "test"); FilteredAggregatorFactory aggregatorFactory = new FilteredAggregatorFactory( longSumAggregatorFactory, new IntervalDimFilter( "not_time", Collections.singletonList(Intervals.utc(1000, 2000)), null ) ); Interval exclude = Intervals.utc(2000, 3000); Interval include = Intervals.utc(1500, 1600); Interval partial = Intervals.utc(1500, 2500); AggregatorFactory excludedAgg = aggregatorFactory.optimizeForSegment(getOptimizationContext(exclude)); Assert.assertEquals(aggregatorFactory, excludedAgg); AggregatorFactory includedAgg = aggregatorFactory.optimizeForSegment(getOptimizationContext(include)); Assert.assertEquals(aggregatorFactory, includedAgg); AggregatorFactory partialAgg = aggregatorFactory.optimizeForSegment(getOptimizationContext(partial)); Assert.assertEquals(aggregatorFactory, partialAgg); }
new IntervalDimFilter( intervalDimFilter.getDimension(), effectiveFilterIntervals,