private IncrementalIndex makeIncrementalIndex(GroupByQuery query, Sequence<Row> rows) { final GroupByQueryConfig config = configSupplier.get(); Pair<IncrementalIndex, Accumulator<IncrementalIndex, Row>> indexAccumulatorPair = GroupByQueryHelper.createIndexAccumulatorPair( query, config ); return rows.accumulate(indexAccumulatorPair.lhs, indexAccumulatorPair.rhs); }
final GroupByQueryConfig querySpecificConfig = configSupplier.get().withOverrides(query); final boolean isSingleThreaded = querySpecificConfig.isSingleThreaded(); final Pair<IncrementalIndex, Accumulator<IncrementalIndex, T>> indexAccumulatorPair = GroupByQueryHelper.createIndexAccumulatorPair( query, querySpecificConfig, true ); final Pair<Queue, Accumulator<Queue, T>> bySegmentAccumulatorPair = GroupByQueryHelper.createBySegmentAccumulatorPair(); final boolean bySegment = QueryContexts.isBySegment(query); final int priority = QueryContexts.getPriority(query);
final IncrementalIndex index = GroupByQueryHelper.makeIncrementalIndex( query, configSupplier.get(), ); return Sequences.withBaggage(query.postProcess(GroupByQueryHelper.postAggregate(query, index)), index);
@Override public Sequence<Row> processSubqueryResult( GroupByQuery subquery, GroupByQuery query, GroupByQueryResource resource, Sequence<Row> subqueryResult ) { final Sequence<Row> results = GroupByRowProcessor.process( query, subqueryResult, GroupByQueryHelper.rowSignatureFor(subquery), configSupplier.get(), resource, spillMapper, processingConfig.getTmpDir(), processingConfig.intermediateComputeSizeBytes() ); return mergeResults(new QueryRunner<Row>() { @Override public Sequence<Row> run(QueryPlus<Row> queryPlus, Map<String, Object> responseContext) { return results; } }, query, null); }
.build(); final IncrementalIndex innerQueryResultIndex = GroupByQueryHelper.makeIncrementalIndex( innerQuery.withOverriddenContext( ImmutableMap.<String, Object>of( final IncrementalIndex outerQueryResultIndex = GroupByQueryHelper.makeIncrementalIndex( outerQuery, configSupplier.get(), outerQuery.postProcess(GroupByQueryHelper.postAggregate(query, outerQueryResultIndex)), outerQueryResultIndex );
private Function<Sequence<Row>, Sequence<Row>> makePostProcessingFn() { Function<Sequence<Row>, Sequence<Row>> postProcessingFn = limitSpec.build( dimensions, aggregatorSpecs, postAggregatorSpecs, getGranularity(), getContextSortByDimsFirst() ); if (havingSpec != null) { postProcessingFn = Functions.compose( postProcessingFn, (Sequence<Row> input) -> { havingSpec.setRowSignature(GroupByQueryHelper.rowSignatureFor(GroupByQuery.this)); havingSpec.setAggregators(getAggregatorsMap(aggregatorSpecs)); return Sequences.filter(input, havingSpec::eval); } ); } return postProcessingFn; }
public static IncrementalIndex makeIncrementalIndex( GroupByQuery query, GroupByQueryConfig config, NonBlockingPool<ByteBuffer> bufferPool, Sequence<Row> rows, boolean combine ) { Pair<IncrementalIndex, Accumulator<IncrementalIndex, Row>> indexAccumulatorPair = GroupByQueryHelper.createIndexAccumulatorPair( query, config, bufferPool, combine ); return rows.accumulate(indexAccumulatorPair.lhs, indexAccumulatorPair.rhs); }
final Pair<IncrementalIndex, Accumulator<IncrementalIndex, Row>> indexAccumulatorPair = GroupByQueryHelper.createIndexAccumulatorPair( query, configSupplier.get()