Show
Ignore:
Timestamp:
06/03/08 21:36:36 (18 months ago)
Author:
bchoate
Message:

Fix using binds for 'not in ...' clauses. BugId:80003

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-39/lib/MT/ObjectDriver/SQL.pm

    r1502 r2495  
    157157                my $v = $val->{not}; 
    158158                if ('ARRAY' eq ref($v)) { 
    159                     my $v = 'NOT IN (' . join(',', @$v) . ')'; 
    160                     $val = \$v; 
     159                    if(my $transformed_column = $stmt->transform->{$col}) { 
     160                        $col = $transformed_column; 
     161                    } 
     162                    my $term = $col . ' NOT IN (' . join (',', ('?') x scalar @$v ) . ')'; 
     163                    return ($term, $v, $col); 
    161164                } elsif (ref $v) { 
    162165                    die "Unsupported value in 'not' column"; 
     
    261264        if ($stmt->not->{$col}) { 
    262265            if ('ARRAY' eq ref($val)) { 
    263                 my $v = 'NOT IN (' . join(',', @$val) . ')'; 
    264                 $val = \$v; 
     266                if(my $transformed_column = $stmt->transform->{$col}) { 
     267                    $col = $transformed_column; 
     268                } 
     269                my $term = $col . ' NOT IN (' . join (',', ('?') x scalar @$val ) . ')'; 
     270                return ($term, $val, $col); 
    265271            } 
    266272            elsif (ref $val) {