make map_descending available as map_dq_tree via ExprHelpers
[dbsrgits/Data-Query.git] / lib / Data / Query / Renderer / SQL / MySQL.pm
index 116bbb2..25a4929 100644 (file)
@@ -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 {