@Test public void testCleanupWithNullParams() { PooledTopNAlgorithm pooledTopNAlgorithm = new PooledTopNAlgorithm(EasyMock.mock(StorageAdapter.class), null, null); pooledTopNAlgorithm.cleanup(null); }
@VisibleForTesting static void setSpecializeHistoricalSingleValueDimSelector1SimpleDoubleAggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeHistoricalSingleValueDimSelector1SimpleDoubleAggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }
@Override protected BufferAggregator[] makeDimValAggregateStore(PooledTopNParams params) { return makeBufferAggregators(params.getCursor(), query.getAggregatorSpecs()); }
final TopNResultBuilder singleMetricResultBuilder = BaseTopNAlgorithm.makeResultBuilder(params, singleMetricQuery); PooledTopNAlgorithm singleMetricAlgo = new PooledTopNAlgorithm(storageAdapter, singleMetricQuery, bufferPool); PooledTopNAlgorithm.PooledTopNParams singleMetricParam = null; int[] dimValSelector; try { singleMetricParam = singleMetricAlgo.makeInitParams(params.getSelectorPlus(), params.getCursor()); singleMetricAlgo.run( singleMetricParam, singleMetricResultBuilder, singleMetricAlgo.cleanup(singleMetricParam); PooledTopNAlgorithm allMetricAlgo = new PooledTopNAlgorithm(storageAdapter, query, bufferPool); PooledTopNAlgorithm.PooledTopNParams allMetricsParam = null; try { allMetricsParam = allMetricAlgo.makeInitParams(params.getSelectorPlus(), params.getCursor()); allMetricAlgo.run( allMetricsParam, resultBuilder, allMetricAlgo.cleanup(allMetricsParam);
params.getDimSelector() instanceof SingleValueHistoricalDimensionSelector && ((SimpleDoubleBufferAggregator) aggregator).getSelector() instanceof HistoricalColumnSelector) { return scanAndAggregateHistorical1SimpleDoubleAgg( params, positions, params.getDimSelector() instanceof HistoricalDimensionSelector && ((SimpleDoubleBufferAggregator) aggregator).getSelector() instanceof HistoricalColumnSelector) { return scanAndAggregateHistorical1SimpleDoubleAgg( params, positions, specializedScanAndAggregateImplementations.add((params, positions, theAggregators) -> { if (theAggregators.length == 1) { return scanAndAggregateGeneric1Agg(params, positions, theAggregators[0], params.getCursor()); specializedScanAndAggregateImplementations.add((params, positions, theAggregators) -> { if (theAggregators.length == 2) { return scanAndAggregateGeneric2Agg(params, positions, theAggregators, params.getCursor());
topNAlgorithm = new PooledTopNAlgorithm(adapter, query, bufferPool); } else if (selector.isAggregateTopNMetricFirst() || query.getContextBoolean("doAggregateTopNMetricFirst", false)) { topNAlgorithm = new AggregateTopNMetricFirstAlgorithm(adapter, query, bufferPool); } else { topNAlgorithm = new PooledTopNAlgorithm(adapter, query, bufferPool);
@Override protected long scanAndAggregate( final PooledTopNParams params, final int[] positions, final BufferAggregator[] theAggregators ) { for (ScanAndAggregate specializedScanAndAggregate : specializedScanAndAggregateImplementations) { long processedRows = specializedScanAndAggregate.scanAndAggregate(params, positions, theAggregators); if (processedRows >= 0) { BaseQuery.checkInterrupted(); return processedRows; } } long processedRows = scanAndAggregateDefault(params, positions, theAggregators); BaseQuery.checkInterrupted(); return processedRows; }
switch (dimExtra) { case 7: currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators,
final TopNResultBuilder singleMetricResultBuilder = BaseTopNAlgorithm.makeResultBuilder(params, singleMetricQuery); PooledTopNAlgorithm singleMetricAlgo = new PooledTopNAlgorithm(storageAdapter, singleMetricQuery, bufferPool); PooledTopNAlgorithm.PooledTopNParams singleMetricParam = null; int[] dimValSelector = null; try { singleMetricParam = singleMetricAlgo.makeInitParams(params.getSelectorPlus(), params.getCursor()); singleMetricAlgo.run( singleMetricParam, singleMetricResultBuilder, singleMetricAlgo.cleanup(singleMetricParam); PooledTopNAlgorithm allMetricAlgo = new PooledTopNAlgorithm(storageAdapter, query, bufferPool); PooledTopNAlgorithm.PooledTopNParams allMetricsParam = null; try { allMetricsParam = allMetricAlgo.makeInitParams(params.getSelectorPlus(), params.getCursor()); allMetricAlgo.run( allMetricsParam, resultBuilder, allMetricAlgo.cleanup(allMetricsParam);
params.getDimSelector() instanceof SingleValueHistoricalDimensionSelector && ((SimpleDoubleBufferAggregator) aggregator).getSelector() instanceof HistoricalColumnSelector) { return scanAndAggregateHistorical1SimpleDoubleAgg( params, positions, params.getDimSelector() instanceof HistoricalDimensionSelector && ((SimpleDoubleBufferAggregator) aggregator).getSelector() instanceof HistoricalColumnSelector) { return scanAndAggregateHistorical1SimpleDoubleAgg( params, positions, specializedScanAndAggregateImplementations.add((params, positions, theAggregators) -> { if (theAggregators.length == 1) { return scanAndAggregateGeneric1Agg(params, positions, theAggregators[0], params.getCursor()); specializedScanAndAggregateImplementations.add((params, positions, theAggregators) -> { if (theAggregators.length == 2) { return scanAndAggregateGeneric2Agg(params, positions, theAggregators, params.getCursor());
topNAlgorithm = new PooledTopNAlgorithm(adapter, query, bufferPool); } else if (selector.isAggregateTopNMetricFirst() || query.getContextBoolean("doAggregateTopNMetricFirst", false)) { topNAlgorithm = new AggregateTopNMetricFirstAlgorithm(adapter, query, bufferPool); } else { topNAlgorithm = new PooledTopNAlgorithm(adapter, query, bufferPool);
@Override protected long scanAndAggregate( final PooledTopNParams params, final int[] positions, final BufferAggregator[] theAggregators ) { for (ScanAndAggregate specializedScanAndAggregate : specializedScanAndAggregateImplementations) { long processedRows = specializedScanAndAggregate.scanAndAggregate(params, positions, theAggregators); if (processedRows >= 0) { BaseQuery.checkInterrupted(); return processedRows; } } long processedRows = scanAndAggregateDefault(params, positions, theAggregators); BaseQuery.checkInterrupted(); return processedRows; }
switch (dimExtra) { case 7: currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators, currentPosition = aggregateDimValue( positions, theAggregators,
@Test public void cleanup() { PooledTopNAlgorithm pooledTopNAlgorithm = new PooledTopNAlgorithm(EasyMock.mock(StorageAdapter.class), null, null); PooledTopNAlgorithm.PooledTopNParams params = EasyMock.createMock(PooledTopNAlgorithm.PooledTopNParams.class); ResourceHolder<ByteBuffer> resourceHolder = EasyMock.createMock(ResourceHolder.class); EasyMock.expect(params.getResultsBufHolder()).andReturn(resourceHolder).times(1); EasyMock.expect(resourceHolder.get()).andReturn(ByteBuffer.allocate(1)).times(1); resourceHolder.close(); EasyMock.expectLastCall().once(); EasyMock.replay(params); EasyMock.replay(resourceHolder); pooledTopNAlgorithm.cleanup(params); EasyMock.verify(params); EasyMock.verify(resourceHolder); } }
@VisibleForTesting static void setSpecializeGeneric2AggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeGeneric2AggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }
@Override protected BufferAggregator[] makeDimValAggregateStore(PooledTopNParams params) { return makeBufferAggregators(params.getCursor(), query.getAggregatorSpecs()); }
@VisibleForTesting static void setSpecializeHistorical1SimpleDoubleAggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeHistorical1SimpleDoubleAggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }
/** * See TopNQueryRunnerTest */ @VisibleForTesting static void setSpecializeGeneric1AggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeGeneric1AggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }
@VisibleForTesting static void setSpecializeHistoricalSingleValueDimSelector1SimpleDoubleAggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeHistoricalSingleValueDimSelector1SimpleDoubleAggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }
/** * See TopNQueryRunnerTest */ @VisibleForTesting static void setSpecializeGeneric1AggPooledTopN(boolean value) { PooledTopNAlgorithm.specializeGeneric1AggPooledTopN = value; computeSpecializedScanAndAggregateImplementations(); }