Fix -values not being handled properly with NULLs
[dbsrgits/SQL-Abstract.git] / t / 22op_value.t
index 00cb5c5..2992ff6 100644 (file)
@@ -40,6 +40,38 @@ for my $col_btype (0,1) {
         )
     ],
   );
+
+  {
+    local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /Supplying an undefined argument to '(?:NOT )?LIKE'/ };
+
+    ($sql, @bind) = $sql_maker->where ({
+      c1 => undef,
+      c2 => { -value => undef },
+      c3 => { '=' => { -value => undef } },
+      c4 => { '!=' => { -value => undef } },
+      c5 => { '<>' => { -value => undef } },
+      c6 => { '-like' => { -value => undef } },
+      c7 => { '-not_like' => { -value => undef } },
+      c8 => { 'is' => { -value => undef } },
+      c9 => { 'is not' => { -value => undef } },
+    });
+
+    is_same_sql_bind (
+      $sql,
+      \@bind,
+      "WHERE  ${q}c1${q} IS NULL
+          AND ${q}c2${q} IS NULL
+          AND ${q}c3${q} IS NULL
+          AND ${q}c4${q} IS NOT NULL
+          AND ${q}c5${q} IS NOT NULL
+          AND ${q}c6${q} IS NULL
+          AND ${q}c7${q} IS NOT NULL
+          AND ${q}c8${q} IS NULL
+          AND ${q}c9${q} IS NOT NULL
+      ",
+      [],
+    );
+  }
 }}
 
 done_testing;