handle scalar arg to _recurse_where correctly
Matt S Trout [Tue, 12 Feb 2019 18:54:52 +0000 (18:54 +0000)]
lib/SQL/Abstract.pm
t/02where.t

index 7270684..f078dc9 100644 (file)
@@ -862,7 +862,11 @@ sub _recurse_where {
 
 #print STDERR Data::Dumper::Concise::Dumper([ $where, $logic ]);
 
-  my $where_exp = $self->_expand_expr($where, $logic);
+  # Special case: top level simple string treated as literal
+
+  my $where_exp = (ref($where)
+                    ? $self->_expand_expr($where, $logic)
+                    : { -literal => [ $where ] });
 
 #print STDERR Data::Dumper::Concise::Dumper([ EXP => $where_exp ]);
 
index 7c4851b..2a41239 100644 (file)
@@ -11,6 +11,12 @@ my $not_stringifiable = bless {}, 'SQLA::NotStringifiable';
 
 my @handle_tests = (
     {
+        where => 'foo',
+        order => [],
+        stmt => ' WHERE foo',
+        bind => [],
+    },
+    {
         where => {
             requestor => 'inna',
             worker => ['nwiger', 'rcwe', 'sfz'],