- fixed update_or_insert bug that when parameter...
...don't contain any key-value
| ... | ... |
@@ -1,3 +1,6 @@ |
| 1 |
+0.2101 |
|
| 2 |
+ - fixed update_or_insert bug that when parameter don't contain any key-value |
|
| 3 |
+ this method throw exception. |
|
| 1 | 4 |
0.2100 |
| 2 | 5 |
- micro optimization |
| 3 | 6 |
- DBIx::Custom::Query is DEPRECATED! |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
package DBIx::Custom; |
| 2 | 2 |
use Object::Simple -base; |
| 3 | 3 |
|
| 4 |
-our $VERSION = '0.2100'; |
|
| 4 |
+our $VERSION = '0.2101'; |
|
| 5 | 5 |
use 5.008001; |
| 6 | 6 |
|
| 7 | 7 |
use Carp 'croak'; |
| ... | ... |
@@ -1169,6 +1169,7 @@ sub update_or_insert {
|
| 1169 | 1169 |
return $self->insert($param, %opt, %{$statement_opt->{insert} || {}});
|
| 1170 | 1170 |
} |
| 1171 | 1171 |
elsif (@$rows == 1) {
|
| 1172 |
+ return 0 unless keys %$param; |
|
| 1172 | 1173 |
return $self->update($param, %opt, %{$statement_opt->{update} || {}});
|
| 1173 | 1174 |
} |
| 1174 | 1175 |
else {
|
| ... | ... |
@@ -81,6 +81,7 @@ my $user_column_info; |
| 81 | 81 |
my $values_clause; |
| 82 | 82 |
my $assign_clause; |
| 83 | 83 |
my $reuse; |
| 84 |
+my $affected; |
|
| 84 | 85 |
|
| 85 | 86 |
require MyDBI1; |
| 86 | 87 |
{
|
| ... | ... |
@@ -662,6 +663,27 @@ eval {
|
| 662 | 663 |
}; |
| 663 | 664 |
like($@, qr/one/); |
| 664 | 665 |
|
| 666 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 667 |
+$dbi->execute($create_table1); |
|
| 668 |
+$dbi->update_or_insert( |
|
| 669 |
+ {},
|
|
| 670 |
+ table => $table1, |
|
| 671 |
+ primary_key => $key1, |
|
| 672 |
+ id => 1 |
|
| 673 |
+); |
|
| 674 |
+$row = $dbi->select(id => 1, table => $table1, primary_key => $key1)->one; |
|
| 675 |
+is($row->{$key1}, 1);
|
|
| 676 |
+ |
|
| 677 |
+eval {
|
|
| 678 |
+ $affected = $dbi->update_or_insert( |
|
| 679 |
+ {},
|
|
| 680 |
+ table => $table1, |
|
| 681 |
+ primary_key => $key1, |
|
| 682 |
+ id => 1 |
|
| 683 |
+ ); |
|
| 684 |
+}; |
|
| 685 |
+is($affected, 0); |
|
| 686 |
+ |
|
| 665 | 687 |
test 'model update_or_insert'; |
| 666 | 688 |
eval { $dbi->execute("drop table $table1") };
|
| 667 | 689 |
$dbi->execute($create_table1); |