@Override public QueryRunner<Result<TopNResultValue>> createRunner(final Segment segment) { final TopNQueryEngine queryEngine = new TopNQueryEngine(computationBufferPool); return new QueryRunner<Result<TopNResultValue>>() { @Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> input, Map<String, Object> responseContext ) { if (!(input.getQuery() instanceof TopNQuery)) { throw new ISE("Got a [%s] which isn't a %s", input.getClass(), TopNQuery.class); } TopNQuery query = (TopNQuery) input.getQuery(); return queryEngine.query(query, segment.asStorageAdapter(), (TopNQueryMetrics) input.getQueryMetrics()); } }; }
@Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> input, Map<String, Object> responseContext ) { if (!(input.getQuery() instanceof TopNQuery)) { throw new ISE("Got a [%s] which isn't a %s", input.getClass(), TopNQuery.class); } TopNQuery query = (TopNQuery) input.getQuery(); return queryEngine.query(query, segment.asStorageAdapter(), (TopNQueryMetrics) input.getQueryMetrics()); } };
if (!TopNQueryEngine.canApplyExtractionInPost(topNQuery)) { return resultSequence; } else {
TopNQueryEngine engine = new TopNQueryEngine(pool); .query( new TopNQueryBuilder() .dataSource("test")
final Filter filter = Filters.convertToCNFFromQueryContext(query, Filters.toFilter(query.getDimensionsFilter())); final Granularity granularity = query.getGranularity(); final TopNMapFn mapFn = getMapFn(query, adapter, queryMetrics);
final Filter filter = Filters.convertToCNFFromQueryContext(query, Filters.toFilter(query.getDimensionsFilter())); final Granularity granularity = query.getGranularity(); final TopNMapFn mapFn = getMapFn(query, adapter, queryMetrics);
@Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> input, Map<String, Object> responseContext ) { if (!(input.getQuery() instanceof TopNQuery)) { throw new ISE("Got a [%s] which isn't a %s", input.getClass(), TopNQuery.class); } TopNQuery query = (TopNQuery) input.getQuery(); return queryEngine.query(query, segment.asStorageAdapter(), (TopNQueryMetrics) input.getQueryMetrics()); } };
@Override public QueryRunner<Result<TopNResultValue>> createRunner(final Segment segment) { final TopNQueryEngine queryEngine = new TopNQueryEngine(computationBufferPool); return new QueryRunner<Result<TopNResultValue>>() { @Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> input, Map<String, Object> responseContext ) { if (!(input.getQuery() instanceof TopNQuery)) { throw new ISE("Got a [%s] which isn't a %s", input.getClass(), TopNQuery.class); } TopNQuery query = (TopNQuery) input.getQuery(); return queryEngine.query(query, segment.asStorageAdapter(), (TopNQueryMetrics) input.getQueryMetrics()); } }; }
@Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> queryPlus, Map<String, Object> responseContext ) { TopNQuery topNQuery = (TopNQuery) queryPlus.getQuery(); if (topNQuery.getDimensionsFilter() != null) { topNQuery = topNQuery.withDimFilter(topNQuery.getDimensionsFilter().optimize()); } final TopNQuery delegateTopNQuery = topNQuery; if (TopNQueryEngine.canApplyExtractionInPost(delegateTopNQuery)) { final DimensionSpec dimensionSpec = delegateTopNQuery.getDimensionSpec(); QueryPlus<Result<TopNResultValue>> delegateQueryPlus = queryPlus.withQuery( delegateTopNQuery.withDimensionSpec( new DefaultDimensionSpec( dimensionSpec.getDimension(), dimensionSpec.getOutputName() ) ) ); return runner.run(delegateQueryPlus, responseContext); } else { return runner.run(queryPlus.withQuery(delegateTopNQuery), responseContext); } } },
if (!TopNQueryEngine.canApplyExtractionInPost(topNQuery)) { return resultSequence; } else {
@Override public Sequence<Result<TopNResultValue>> run( QueryPlus<Result<TopNResultValue>> queryPlus, Map<String, Object> responseContext ) { TopNQuery topNQuery = (TopNQuery) queryPlus.getQuery(); if (topNQuery.getDimensionsFilter() != null) { topNQuery = topNQuery.withDimFilter(topNQuery.getDimensionsFilter().optimize()); } final TopNQuery delegateTopNQuery = topNQuery; if (TopNQueryEngine.canApplyExtractionInPost(delegateTopNQuery)) { final DimensionSpec dimensionSpec = delegateTopNQuery.getDimensionSpec(); QueryPlus<Result<TopNResultValue>> delegateQueryPlus = queryPlus.withQuery( delegateTopNQuery.withDimensionSpec( new DefaultDimensionSpec( dimensionSpec.getDimension(), dimensionSpec.getOutputName() ) ) ); return runner.run(delegateQueryPlus, responseContext); } else { return runner.run(queryPlus.withQuery(delegateTopNQuery), responseContext); } } },