aggregate method

Calculates adapter-side aggregates over the full effective adapter result set. Subclasses that support aggregate queries override this and expose capabilities.aggregates == true.

Implementation

@override
Future<FdcDataAggregateResult> aggregate(
  FdcDataAggregateRequest request,
) async {
  final rows = List<_FdcMemoryRow>.of(_rows, growable: false);
  if (rows.length < _backgroundQueryRowThreshold) {
    return _runMemoryInline(
      () => _FdcMemoryQueryExecutor.aggregate(rows, request),
    );
  }
  try {
    return await fdcRunInBackground<FdcDataAggregateResult>(
      () => _FdcMemoryQueryExecutor.aggregate(rows, request),
    );
  } on Object catch (_) {
    return _runMemoryInline(
      () => _FdcMemoryQueryExecutor.aggregate(rows, request),
    );
  }
}