Merge branch 'master' into dq
[dbsrgits/SQL-Abstract.git] / lib / SQL / Abstract / Converter.pm
index 2a7d90a..e89ae42 100644 (file)
@@ -483,6 +483,7 @@ sub _where_hashpair_to_dq {
       }
     };
     if ($op eq 'BETWEEN' or $op eq 'IN' or $op eq 'NOT IN' or $op eq 'NOT BETWEEN') {
+      die "Argument passed to the '$op' operator can not be undefined" unless defined $rhs;
       $rhs = [$rhs] unless ref $rhs;
       if (ref($rhs) ne 'ARRAY') {
         if ($op =~ /IN$/) {
@@ -536,9 +537,9 @@ sub _where_hashpair_to_dq {
       );
     } elsif (!defined($rhs)) {
       my $null_op = do {
-        if ($op eq '=' or $op eq 'LIKE') {
+        if ($op eq '=' or $op eq 'LIKE' or $op eq 'IS') {
           'IS NULL'
-        } elsif ($op eq '!=') {
+        } elsif ($op eq '!=' or $op eq 'NOT LIKE' or $op eq 'IS NOT') {
           'IS NOT NULL'
         } else {
           die "Can't do undef -> NULL transform for operator ${op}";