@SuppressWarnings("unchecked") @Parameterized.Parameters(name = "{0}") public static Iterable<Object[]> constructorFeeder() throws IOException { GroupByQueryConfig config = new GroupByQueryConfig(); config.setMaxIntermediateRows(10000); final GroupByQueryRunnerFactory factory = GroupByQueryRunnerTest.makeQueryRunnerFactory(config); return QueryRunnerTestHelper.transformToConstructionFeeder( Lists.transform( QueryRunnerTestHelper.makeQueryRunners(factory), new Function<QueryRunner<Row>, Object>() { @Nullable @Override public Object apply(final QueryRunner<Row> input) { return new QueryRunner() { @Override public Sequence run(Query query, Map responseContext) { TimeseriesQuery tsQuery = (TimeseriesQuery) query; return Sequences.map( input.run( GroupByQuery.builder() .setDataSource(tsQuery.getDataSource()) .setQuerySegmentSpec(tsQuery.getQuerySegmentSpec()) .setGranularity(tsQuery.getGranularity()) .setDimFilter(tsQuery.getDimensionsFilter()) .setAggregatorSpecs(tsQuery.getAggregatorSpecs()) .setPostAggregatorSpecs(tsQuery.getPostAggregatorSpecs()) .build(), responseContext), new Function<Row, Result<TimeseriesResultValue>>() { @Override public Result<TimeseriesResultValue> apply(final Row input) { MapBasedRow row = (MapBasedRow) input; return new Result<TimeseriesResultValue>( row.getTimestamp(), new TimeseriesResultValue(row.getEvent())); } }); } @Override public String toString() { return input.toString(); } }; } })); }
@SuppressWarnings("unchecked") @Parameterized.Parameters public static Iterable<Object[]> constructorFeeder() throws IOException { GroupByQueryConfig config = new GroupByQueryConfig(); config.setMaxIntermediateRows(10000); final Supplier<GroupByQueryConfig> configSupplier = Suppliers.ofInstance(config); final GroupByQueryEngine engine = new GroupByQueryEngine( configSupplier, new StupidPool<ByteBuffer>( new Supplier<ByteBuffer>() { @Override public ByteBuffer get() { return ByteBuffer.allocate(1024 * 1024); } })); final GroupByQueryRunnerFactory factory = new GroupByQueryRunnerFactory( engine, QueryRunnerTestHelper.NOOP_QUERYWATCHER, configSupplier, new GroupByQueryQueryToolChest( configSupplier, new DefaultObjectMapper(), engine, TestQueryRunners.pool, QueryRunnerTestHelper.NoopIntervalChunkingQueryRunnerDecorator()), TestQueryRunners.pool); return QueryRunnerTestHelper.transformToConstructionFeeder( Lists.transform( QueryRunnerTestHelper.makeQueryRunners(factory), new Function<QueryRunner<Row>, Object>() { @Nullable @Override public Object apply(final QueryRunner<Row> input) { return new QueryRunner() { @Override public Sequence run(Query query, Map responseContext) { TimeseriesQuery tsQuery = (TimeseriesQuery) query; return Sequences.map( input.run( GroupByQuery.builder() .setDataSource(tsQuery.getDataSource()) .setQuerySegmentSpec(tsQuery.getQuerySegmentSpec()) .setGranularity(tsQuery.getGranularity()) .setDimFilter(tsQuery.getDimensionsFilter()) .setAggregatorSpecs(tsQuery.getAggregatorSpecs()) .setPostAggregatorSpecs(tsQuery.getPostAggregatorSpecs()) .build(), responseContext), new Function<Row, Result<TimeseriesResultValue>>() { @Override public Result<TimeseriesResultValue> apply(final Row input) { MapBasedRow row = (MapBasedRow) input; return new Result<TimeseriesResultValue>( row.getTimestamp(), new TimeseriesResultValue(row.getEvent())); } }); } }; } })); }