handle completely bizarre edge case
Matt S Trout [Sat, 21 Sep 2019 20:15:30 +0000 (20:15 +0000)]
lib/SQL/Abstract.pm
t/02where.t

index 95b9185..de53c63 100644 (file)
@@ -597,7 +597,7 @@ sub _expand_hashpair {
   if ($k =~ /^-./) {
     return $self->_expand_hashpair_op($k, $v);
   } elsif ($k =~ /^[^\w]/i) {
-    my ($lhs, @rhs) = @$v;
+    my ($lhs, @rhs) = ref($v) eq 'ARRAY' ? @$v : $v;
     return $self->_expand_op(
       -op, [ $k, $self->expand_expr($lhs, -ident), @rhs ]
     );
index 1b0ac92..d1e2ee6 100644 (file)
@@ -408,6 +408,11 @@ my @handle_tests = (
         stmt => '',
         bind => [ ],
     },
+    {
+        where => { '=' => \'bozz' },
+        stmt => 'WHERE = bozz',
+        bind => [ ],
+    },
 );
 
 for my $case (@handle_tests) {