Showing 4 changed files with 28 additions and 4 deletions
+4
Changes
... ...
@@ -1,4 +1,8 @@
1
+0.2102
2
+    - fixed bug that DBIx::Custom::Model count method don't receive model's
3
+      attribute
1 4
 0.2101
5
+    - fixed small default_bind_filter bug
2 6
     - micro optimization
3 7
     - select method can receive odd number argument. In that case first argument
4 8
       is column option.
+3 -3
lib/DBIx/Custom.pm
... ...
@@ -1,7 +1,7 @@
1 1
 package DBIx::Custom;
2 2
 use Object::Simple -base;
3 3
 
4
-our $VERSION = '0.2101';
4
+our $VERSION = '0.2102';
5 5
 use 5.008001;
6 6
 
7 7
 use Carp 'croak';
... ...
@@ -499,8 +499,8 @@ sub execute {
499 499
     # Execute
500 500
     my $sth = $query->{sth};
501 501
     my $affected;
502
-    if (!$query->{duplicate} && $type_rule_off && !keys %$filter &&
503
-      !$opt{bind_type} && !$opt{type} && !$ENV{DBIX_CUSTOM_DEBUG})
502
+    if (!$query->{duplicate} && $type_rule_off && !keys %$filter && !$self->{default_out_filter}
503
+      && !$opt{bind_type} && !$opt{type} && !$ENV{DBIX_CUSTOM_DEBUG})
504 504
     {
505 505
         eval { $affected = $sth->execute(map { $param->{$_} } @{$query->{columns}}) };
506 506
     }
+3 -1
lib/DBIx/Custom/Model.pm
... ...
@@ -52,7 +52,9 @@ for my $method (@methods) {
52 52
     my @select_attrs = qw/join/;
53 53
     if ($method eq 'insert') { push @attrs, @insert_attrs }
54 54
     elsif ($method eq 'update') { push @attrs, @update_attrs }
55
-    elsif (index($method, 'select') != -1) { push @attrs, @select_attrs }
55
+    elsif (index($method, 'select') != -1 || $method eq 'count') {
56
+        push @attrs, @select_attrs
57
+    }
56 58
     
57 59
     for my $attr (@attrs) {
58 60
         $code .= "exists \$self->{$attr} ? ($attr => \$self->{$attr}) : (),";
+18
t/common.t
... ...
@@ -489,8 +489,14 @@ $dbi->insert({$key1 => 1, $key2 => 2}, table => $table1, filter => {$key1 => 'th
489 489
 $result = $dbi->execute("select * from $table1");
490 490
 $rows   = $result->all;
491 491
 is_deeply($rows, [{$key1 => 3, $key2 => 4}], "filter");
492
+$dbi->delete_all(table => $table1);
493
+$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1);
494
+$result = $dbi->execute("select * from $table1");
495
+$rows   = $result->all;
496
+is_deeply($rows, [{$key1 => 2, $key2 => 4}], "filter");
492 497
 $dbi->default_bind_filter(undef);
493 498
 
499
+
494 500
 eval { $dbi->execute("drop table $table1") };
495 501
 $dbi->execute($create_table1);
496 502
 $dbi->insert({$key1 => 1, $key2 => 2}, table => $table1, append => '   ');
... ...
@@ -4557,4 +4563,16 @@ is($dbi->count(table => $table1, where => {$key2 => 2}), 1);
4557 4563
 $model = $dbi->create_model(table => $table1);
4558 4564
 is($model->count, 2);
4559 4565
 
4566
+eval { $dbi->execute("drop table $table1") };
4567
+eval { $dbi->execute("drop table $table2") };
4568
+$dbi->execute($create_table1);
4569
+$dbi->execute($create_table2);
4570
+$model = $dbi->create_model(table => $table1, primary_key => $key1);
4571
+$model->insert({$key1 => 1, $key2 => 2});
4572
+$model = $dbi->create_model(table => $table2, primary_key => $key1,
4573
+    join => ["left outer join $table1 on $table2.$key1 = $table1.$key1"]);
4574
+$model->insert({$key1 => 1, $key3 => 3});
4575
+is($model->count(id => 1), 1);
4576
+is($model->count(where => {"$table2.$key3" => 3}), 1);
4577
+
4560 4578
 1;