Clarify in => undef exception (based on 90c87778)
Dagfinn Ilmari Mannsåker [Sun, 8 Dec 2013 17:01:03 +0000 (17:01 +0000)]
lib/SQL/Abstract.pm
t/01generate.t

index 9e08585..2bc89eb 100644 (file)
@@ -1089,8 +1089,12 @@ sub _where_field_IN {
       return ("$label $op ( $sql )", @bind);
     },
 
+    UNDEF => sub {
+      puke "Argument passed to the '$op' operator can not be undefined";
+    },
+
     FALLBACK => sub {
-      puke "special op 'in' requires an arrayref (or scalarref/arrayref-ref)";
+      puke "special op $op requires an arrayref (or scalarref/arrayref-ref)";
     },
   });
 
index 4962c23..969dd07 100644 (file)
@@ -580,6 +580,11 @@ my @tests = (
               stmt_q => 'SELECT * FROM `test` WHERE ( `a` IS NULL AND `b` IS NOT NULL )',
               bind => [],
       },
+      {
+              func => 'select',
+              args => ['test', '*', { a => { -in => undef } }],
+              exception_like => qr/Argument passed to the 'IN' operator can not be undefined/,
+      },
 );
 
 for my $t (@tests) {