/** * This function currently handles TopNs on long and float columns, which do not provide cardinality or an ID lookup. * When cardinality is unknown, process everything in one pass. * Existing implementations of makeDimValSelector() require cardinality as well, so the DimValSelector is not used. * * @param params TopN parameters from run() * @param resultBuilder Result builder from run() */ private void runWithCardinalityUnknown( Parameters params, TopNResultBuilder resultBuilder, @Nullable TopNQueryMetrics queryMetrics ) { DimValAggregateStore aggregatesStore = makeDimValAggregateStore(params); if (queryMetrics != null) { queryMetrics.startRecordingScanTime(); } long processedRows = scanAndAggregate(params, null, aggregatesStore); updateResults(params, null, aggregatesStore, resultBuilder); closeAggregators(aggregatesStore); params.getCursor().reset(); if (queryMetrics != null) { queryMetrics.addProcessedRows(processedRows); queryMetrics.stopRecordingScanTime(); } }
queryMetrics.stopRecordingScanTime();
/** * This function currently handles TopNs on long and float columns, which do not provide cardinality or an ID lookup. * When cardinality is unknown, process everything in one pass. * Existing implementations of makeDimValSelector() require cardinality as well, so the DimValSelector is not used. * * @param params TopN parameters from run() * @param resultBuilder Result builder from run() */ private void runWithCardinalityUnknown( Parameters params, TopNResultBuilder resultBuilder, @Nullable TopNQueryMetrics queryMetrics ) { DimValAggregateStore aggregatesStore = makeDimValAggregateStore(params); if (queryMetrics != null) { queryMetrics.startRecordingScanTime(); } long processedRows = scanAndAggregate(params, null, aggregatesStore); updateResults(params, null, aggregatesStore, resultBuilder); closeAggregators(aggregatesStore); params.getCursor().reset(); if (queryMetrics != null) { queryMetrics.addProcessedRows(processedRows); queryMetrics.stopRecordingScanTime(); } }
queryMetrics.stopRecordingScanTime();