clean up expansion
Matt S Trout [Sun, 7 Apr 2019 23:45:01 +0000 (23:45 +0000)]
lib/SQL/Abstract/Clauses.pm

index 9f92b00..3e062fb 100644 (file)
@@ -61,14 +61,18 @@ sub _expand_statement {
   my ($self, $type, $args) = @_;
   my $ec = $self->{expand_clause};
   return +{ "-${type}" => +{
-    map +($_ => (do {
+    map {
       my $val = $args->{$_};
       if (defined($val) and my $exp = $ec->{"${type}.$_"}) {
-        $self->$exp($val);
+        if ((my (@exp) = $self->$exp($val)) == 1) {
+          ($_ => $exp[0])
+        } else {
+          @exp
+        }
       } else {
-        $val;
+        ($_ => $val)
       }
-    })), sort keys %$args
+    } sort keys %$args
   } };
 }