| ... | ... | @@ -241,19 +241,17 @@ sub delete { | 
| 241 | 241 |        if !$opt{where} && !defined $opt{id} && !$opt{allow_delete_all}; | 
| 242 | 242 |  | 
| 243 | 243 | # Where | 
| 244 | -    my $where = defined $opt{id} | |
| 245 | -           ? $self->_id_to_param(delete $opt{id}, $opt{primary_key}, $opt{table}) | |
| 246 | -           : $opt{where}; | |
| 247 | -    my $w = $self->_where_clause_and_param($where, $opt{where_param}); | |
| 244 | +    my $wcp = $self->_where_clause_and_param($opt{where}, $opt{where_param}, | |
| 245 | +      delete $opt{id}, $opt{primary_key}, $opt{table}); | |
| 248 | 246 |  | 
| 249 | 247 | # Delete statement | 
| 250 | 248 | my $sql = "delete "; | 
| 251 | 249 |      $sql .= "$opt{prefix} " if defined $opt{prefix}; | 
| 252 | -    $sql .= "from " . $self->_q($opt{table}) . " $w->{clause} "; | |
| 250 | +    $sql .= "from " . $self->_q($opt{table}) . " $wcp->{clause} "; | |
| 253 | 251 |  | 
| 254 | 252 | # Execute query | 
| 255 | 253 |      $opt{statement} = 'delete'; | 
| 256 | -    $self->execute($sql, $w->{param}, %opt); | |
| 254 | +    $self->execute($sql, $wcp->{param}, %opt); | |
| 257 | 255 | } | 
| 258 | 256 |  | 
| 259 | 257 |  sub delete_all { shift->delete(allow_delete_all => 1, @_) } | 
| ... | ... | @@ -1578,12 +1576,14 @@ sub _where_to_obj { | 
| 1578 | 1576 | } | 
| 1579 | 1577 |  | 
| 1580 | 1578 |  sub _where_clause_and_param { | 
| 1581 | - my ($self, $where, $param) = @_; | |
| 1582 | - | |
| 1579 | + my ($self, $where, $param, $id, $primary_key, $table) = @_; | |
| 1580 | + | |
| 1583 | 1581 |      $where ||= {}; | 
| 1582 | + $where = $self->_id_to_param($id, $primary_key, $table) if defined $id; | |
| 1584 | 1583 |      $param ||= {}; | 
| 1585 | 1584 |      my $w = {}; | 
| 1586 | 1585 | my $where_clause = ''; | 
| 1586 | + | |
| 1587 | 1587 |      if (ref $where eq 'ARRAY' && !ref $where->[0]) { | 
| 1588 | 1588 |          $w->{clause} = "where " . $where->[0]; | 
| 1589 | 1589 |          $w->{param} = $where->[1]; | 
| ... | ... | @@ -2311,7 +2311,6 @@ $dbi = DBIx::Custom->connect; | 
| 2311 | 2311 |  eval { $dbi->execute("drop table $table1") }; | 
| 2312 | 2312 | $dbi->execute($create_table1_2); | 
| 2313 | 2313 |  $param = {$key3 => 3, $key2 => 4}; | 
| 2314 | -$DB::single = 1; | |
| 2315 | 2314 | $dbi->insert( | 
| 2316 | 2315 | $param, | 
| 2317 | 2316 | primary_key => [$key1, $key2], | 
| ... | ... | @@ -2327,7 +2326,6 @@ $dbi = DBIx::Custom->connect; | 
| 2327 | 2326 |  eval { $dbi->execute("drop table $table1") }; | 
| 2328 | 2327 | $dbi->execute($create_table1_2); | 
| 2329 | 2328 |  $param = {$key3 => 3, $key2 => 4}; | 
| 2330 | -$DB::single = 1; | |
| 2331 | 2329 | $query = $dbi->insert( | 
| 2332 | 2330 | $param, | 
| 2333 | 2331 | primary_key => [$key1, $key2], |