X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FData%2FQuery%2FRenderer%2FSQL%2FMySQL.pm;h=25a4929c433a245158302902fa0ce35decfbe25a;hb=fd6e1f4c94fdfd83ea55b28e9289d5fb14fdb149;hp=116bbb267087da6cae9df396b467357684d97b78;hpb=944c72bcfdce01071f01f0179ebbf3b99630d5a1;p=dbsrgits%2FData-Query.git diff --git a/lib/Data/Query/Renderer/SQL/MySQL.pm b/lib/Data/Query/Renderer/SQL/MySQL.pm index 116bbb2..25a4929 100644 --- a/lib/Data/Query/Renderer/SQL/MySQL.pm +++ b/lib/Data/Query/Renderer/SQL/MySQL.pm @@ -1,22 +1,5 @@ package Data::Query::Renderer::SQL::MySQL; -sub map_descending (&;@) { - my ($block, $in) = @_; - local $_ = $in; - $_ = $block->($_) if ref($_) eq 'HASH'; - if (ref($_) eq 'REF' and ref($$_) eq 'HASH') { - $$_; - } elsif (ref($_) eq 'HASH') { - my $mapped = $_; - local $_; - +{ map +($_ => &map_descending($block, $mapped->{$_})), keys %$mapped }; - } elsif (ref($_) eq 'ARRAY') { - [ map &map_descending($block, $_), @$_ ] - } else { - $_ - } -} - use Data::Query::Constants; use Data::Query::ExprHelpers; use Moo; @@ -43,7 +26,7 @@ sub _maybe_double_subquery { my $new = { %$dq }; foreach my $key (qw(set where)) { next unless $dq->{$key}; - $new->{$key} = map_descending { + $new->{$key} = map_dq_tree { if (is_Select) { my $found; scan_dq_nodes(do {