+ $rs = $rs->search(undef, {
+ exists $thing{prefetch} ? (prefetch => $thing{prefetch}) : (),
+ exists $thing{columns} ? (columns => $thing{columns}) : (),
+ });
+ my @thing = map +{rs => $_, $_->get_columns}, $rs->all;
+ @thing = map { $thing{mangle}->(); $_ } @thing if exists $thing{mangle};
+ @thing = grep { $thing{choose}->() } @thing if exists $thing{choose};
+ @thing = sort { $thing{sortby}->() } @thing if exists $thing{sortby};
+ $thing{group} //= sub { $thing{id} };
+ for (@thing) {
+ my $group = $thing{group}->();
+ $params{$group} //= [];
+ push $params{$group}, $_
+ }
+ wantarray ? %params : \%params