agg method

LazyFrame agg(
  1. Iterable<Expr> aggregations
)

Implementation

LazyFrame agg(Iterable<Expr> aggregations) {
  final values = List<Expr>.unmodifiable(aggregations);
  for (final value in [..._keys, ...values]) {
    _frame._runtime._requireExpr(value);
  }
  final leases = _leaseAll([
    _frame._owner,
    ..._keys.map((x) => x._owner),
    ...values.map((x) => x._owner),
  ]);
  try {
    final split = 1 + _keys.length;
    return _frame._runtime._adoptLazy(
      _frame._runtime._client.invokeSync('lazyGroupBy', {
        'input': leases.first.handle.toString(),
        'keys': leases
            .sublist(1, split)
            .map((x) => x.handle.toString())
            .toList(),
        'aggregations': leases
            .sublist(split)
            .map((x) => x.handle.toString())
            .toList(),
        'maintainOrder': _maintainOrder,
      }),
    );
  } finally {
    _releaseAll(leases);
  }
}