# generate inner/outer attribute lists, remove stuff that doesn't apply
my $outer_attrs = { %$attrs };
- delete $outer_attrs->{$_} for qw/where bind rows offset group_by _grouped_by_distinct having/;
+ delete @{$outer_attrs}{qw(where bind rows offset group_by _grouped_by_distinct having)};
my $inner_attrs = { %$attrs };
- delete $inner_attrs->{$_} for qw/from for collapse select as _related_results_construction/;
+ delete @{$inner_attrs}{qw(from for collapse select as _related_results_construction)};
# there is no point of ordering the insides if there is no limit
delete $inner_attrs->{order_by} if (
# scan the *remaining* from spec against different attributes, and see which joins are needed
# in what role
- my $outer_aliastypes =
+ my $outer_aliastypes = $outer_attrs->{_aliastypes} =
$self->_resolve_aliastypes_from_select_args( $from, $outer_select, $where, $outer_attrs );
# unroll parents