| ... | ... | 
                  @@ -61,7 +61,7 @@ sub AUTOLOAD {
                 | 
              
| 61 | 61 | 
                  return $self->$helper(@_);  | 
              
| 62 | 62 | 
                  }  | 
              
| 63 | 63 | 
                   | 
              
| 64 | 
                  -sub auto_filter {
                 | 
              |
| 64 | 
                  +sub apply_filter {
                 | 
              |
| 65 | 65 | 
                  my $self = shift;  | 
              
| 66 | 66 | 
                   | 
              
| 67 | 67 | 
                       $self->{auto_filter} ||= {};
                 | 
              
| ... | ... | 
                  @@ -238,7 +238,7 @@ sub create_query {
                 | 
              
| 238 | 238 | 
                  }  | 
              
| 239 | 239 | 
                   | 
              
| 240 | 240 | 
                  our %VALID_DELETE_ARGS  | 
              
| 241 | 
                  -  = map { $_ => 1 } qw/auto_filter_table table where append filter allow_delete_all/;
                 | 
              |
| 241 | 
                  +  = map { $_ => 1 } qw/table where append filter allow_delete_all/;
                 | 
              |
| 242 | 242 | 
                   | 
              
| 243 | 243 | 
                   sub delete {
                 | 
              
| 244 | 244 | 
                  my ($self, %args) = @_;  | 
              
| ... | ... | 
                  @@ -256,11 +256,6 @@ sub delete {
                 | 
              
| 256 | 256 | 
                       my $filter           = $args{filter};
                 | 
              
| 257 | 257 | 
                       my $allow_delete_all = $args{allow_delete_all};
                 | 
              
| 258 | 258 | 
                   | 
              
| 259 | 
                  -    my $auto_filter_table = exists $args{auto_filter_table}
                 | 
              |
| 260 | 
                  -                          ? $args{auto_filter_table}
                 | 
              |
| 261 | 
                  - : [$table];  | 
              |
| 262 | 
                  - $auto_filter_table ||= [];  | 
              |
| 263 | 
                  -  | 
              |
| 264 | 259 | 
                  # Where keys  | 
              
| 265 | 260 | 
                  my @where_keys = keys %$where;  | 
              
| 266 | 261 | 
                   | 
              
| ... | ... | 
                  @@ -284,7 +279,7 @@ sub delete {
                 | 
              
| 284 | 279 | 
                  # Execute query  | 
              
| 285 | 280 | 
                  my $ret_val = $self->execute(  | 
              
| 286 | 281 | 
                  $source, param => $where, filter => $filter,  | 
              
| 287 | 
                  - auto_filter_table => $auto_filter_table);  | 
              |
| 282 | 
                  + table => $table);  | 
              |
| 288 | 283 | 
                   | 
              
| 289 | 284 | 
                  return $ret_val;  | 
              
| 290 | 285 | 
                  }  | 
              
| ... | ... | 
                  @@ -293,7 +288,7 @@ sub delete_all { shift->delete(allow_delete_all => 1, @_) }
                 | 
              
| 293 | 288 | 
                   | 
              
| 294 | 289 | 
                   sub DESTROY { }
                 | 
              
| 295 | 290 | 
                   | 
              
| 296 | 
                  -our %VALID_EXECUTE_ARGS = map { $_ => 1 } qw/param filter auto_filter_table/;
                 | 
              |
| 291 | 
                  +our %VALID_EXECUTE_ARGS = map { $_ => 1 } qw/param filter table/;
                 | 
              |
| 297 | 292 | 
                   | 
              
| 298 | 293 | 
                   sub execute{
                 | 
              
| 299 | 294 | 
                  my ($self, $query, %args) = @_;  | 
              
| ... | ... | 
                  @@ -312,8 +307,10 @@ sub execute{
                 | 
              
| 312 | 307 | 
                   | 
              
| 313 | 308 | 
                  # Auto filter  | 
              
| 314 | 309 | 
                       my $auto_filter = {};
                 | 
              
| 315 | 
                  -    my $auto_filter_tables = $args{auto_filter_table} || [];
                 | 
              |
| 316 | 
                  -    foreach my $table (@$auto_filter_tables) {
                 | 
              |
| 310 | 
                  +    my $tables = $args{table} || [];
                 | 
              |
| 311 | 
                  + $tables = [$tables]  | 
              |
| 312 | 
                  + unless ref $tables eq 'ARRAY';  | 
              |
| 313 | 
                  +    foreach my $table (@$tables) {
                 | 
              |
| 317 | 314 | 
                           $auto_filter = {
                 | 
              
| 318 | 315 | 
                  %$auto_filter,  | 
              
| 319 | 316 | 
                               %{$self->{auto_filter}{in}->{$table} || {}}
                 | 
              
| ... | ... | 
                  @@ -324,7 +321,10 @@ sub execute{
                 | 
              
| 324 | 321 | 
                       my $filter = $args{filter} || $query->filter || {};
                 | 
              
| 325 | 322 | 
                       foreach my $column (keys %$filter) {
                 | 
              
| 326 | 323 | 
                           my $fname = $filter->{$column};
                 | 
              
| 327 | 
                  -        unless (ref $fname eq 'CODE') {
                 | 
              |
| 324 | 
                  +        if (!defined $fname) {
                 | 
              |
| 325 | 
                  +            $filter->{$column} = undef;
                 | 
              |
| 326 | 
                  + }  | 
              |
| 327 | 
                  +        elsif (ref $fname ne 'CODE') {
                 | 
              |
| 328 | 328 | 
                             croak qq{"$fname" is not registered"}
                 | 
              
| 329 | 329 | 
                               unless exists $self->filters->{$fname};
                 | 
              
| 330 | 330 | 
                   | 
              
| ... | ... | 
                  @@ -347,7 +347,7 @@ sub execute{
                 | 
              
| 347 | 347 | 
                   | 
              
| 348 | 348 | 
                  # Auto in filter  | 
              
| 349 | 349 | 
                           my $auto_in_filter = {};
                 | 
              
| 350 | 
                  -	      foreach my $table (@$auto_filter_tables) {
                 | 
              |
| 350 | 
                  +	      foreach my $table (@$tables) {
                 | 
              |
| 351 | 351 | 
                   	          $auto_in_filter = {
                 | 
              
| 352 | 352 | 
                  %$auto_filter,  | 
              
| 353 | 353 | 
                   	              %{$self->{auto_filter}{in}{$table} || {}}
                 | 
              
| ... | ... | 
                  @@ -384,7 +384,7 @@ sub expand {
                 | 
              
| 384 | 384 | 
                  }  | 
              
| 385 | 385 | 
                   | 
              
| 386 | 386 | 
                   our %VALID_INSERT_ARGS = map { $_ => 1 } qw/table param append
                 | 
              
| 387 | 
                  - filter auto_filter_table/;  | 
              |
| 387 | 
                  + filter/;  | 
              |
| 388 | 388 | 
                   sub insert {
                 | 
              
| 389 | 389 | 
                  my ($self, %args) = @_;  | 
              
| 390 | 390 | 
                   | 
              
| ... | ... | 
                  @@ -400,11 +400,6 @@ sub insert {
                 | 
              
| 400 | 400 | 
                       my $append = $args{append} || '';
                 | 
              
| 401 | 401 | 
                       my $filter = $args{filter};
                 | 
              
| 402 | 402 | 
                   | 
              
| 403 | 
                  -    my $auto_filter_table = exists $args{auto_filter_table}
                 | 
              |
| 404 | 
                  -                          ? $args{auto_filter_table}
                 | 
              |
| 405 | 
                  - : [$table];  | 
              |
| 406 | 
                  - $auto_filter_table ||= [];  | 
              |
| 407 | 
                  -  | 
              |
| 408 | 403 | 
                  # Insert keys  | 
              
| 409 | 404 | 
                  my @insert_keys = keys %$param;  | 
              
| 410 | 405 | 
                   | 
              
| ... | ... | 
                  @@ -418,7 +413,7 @@ sub insert {
                 | 
              
| 418 | 413 | 
                  $source,  | 
              
| 419 | 414 | 
                  param => $param,  | 
              
| 420 | 415 | 
                  filter => $filter,  | 
              
| 421 | 
                  - auto_filter_table => $auto_filter_table  | 
              |
| 416 | 
                  + table => $table  | 
              |
| 422 | 417 | 
                  );  | 
              
| 423 | 418 | 
                   | 
              
| 424 | 419 | 
                  return $ret_val;  | 
              
| ... | ... | 
                  @@ -467,7 +462,7 @@ sub register_filter {
                 | 
              
| 467 | 462 | 
                  }  | 
              
| 468 | 463 | 
                   | 
              
| 469 | 464 | 
                  our %VALID_SELECT_ARGS  | 
              
| 470 | 
                  -  = map { $_ => 1 } qw/auto_filter_table table column where append relation filter/;
                 | 
              |
| 465 | 
                  +  = map { $_ => 1 } qw/table column where append relation filter/;
                 | 
              |
| 471 | 466 | 
                   | 
              
| 472 | 467 | 
                   sub select {
                 | 
              
| 473 | 468 | 
                  my ($self, %args) = @_;  | 
              
| ... | ... | 
                  @@ -486,10 +481,6 @@ sub select {
                 | 
              
| 486 | 481 | 
                       my $relation = $args{relation};
                 | 
              
| 487 | 482 | 
                       my $append   = $args{append};
                 | 
              
| 488 | 483 | 
                       my $filter   = $args{filter};
                 | 
              
| 489 | 
                  -  | 
              |
| 490 | 
                  -    my $auto_filter_table = exists $args{auto_filter_table}
                 | 
              |
| 491 | 
                  -                          ? $args{auto_filter_table}
                 | 
              |
| 492 | 
                  - : $tables;  | 
              |
| 493 | 484 | 
                   | 
              
| 494 | 485 | 
                  # Source of SQL  | 
              
| 495 | 486 | 
                  my $source = 'select ';  | 
              
| ... | ... | 
                  @@ -545,7 +536,7 @@ sub select {
                 | 
              
| 545 | 536 | 
                  # Execute query  | 
              
| 546 | 537 | 
                  my $result = $self->execute(  | 
              
| 547 | 538 | 
                  $source, param => $param, filter => $filter,  | 
              
| 548 | 
                  - auto_filter_table => $auto_filter_table);  | 
              |
| 539 | 
                  + table => $tables);  | 
              |
| 549 | 540 | 
                   | 
              
| 550 | 541 | 
                  return $result;  | 
              
| 551 | 542 | 
                  }  | 
              
| ... | ... | 
                  @@ -586,7 +577,7 @@ sub txn_scope {
                 | 
              
| 586 | 577 | 
                  }  | 
              
| 587 | 578 | 
                   | 
              
| 588 | 579 | 
                  our %VALID_UPDATE_ARGS  | 
              
| 589 | 
                  -  = map { $_ => 1 } qw/auto_filter_table table param
                 | 
              |
| 580 | 
                  +  = map { $_ => 1 } qw/table param
                 | 
              |
| 590 | 581 | 
                  where append filter allow_update_all/;  | 
              
| 591 | 582 | 
                   | 
              
| 592 | 583 | 
                   sub update {
                 | 
              
| ... | ... | 
                  @@ -606,11 +597,6 @@ sub update {
                 | 
              
| 606 | 597 | 
                       my $filter           = $args{filter};
                 | 
              
| 607 | 598 | 
                       my $allow_update_all = $args{allow_update_all};
                 | 
              
| 608 | 599 | 
                   | 
              
| 609 | 
                  -    my $auto_filter_table = exists $args{auto_filter_table}
                 | 
              |
| 610 | 
                  -                          ? $args{auto_filter_table}
                 | 
              |
| 611 | 
                  - : [$table];  | 
              |
| 612 | 
                  - $auto_filter_table ||= [];  | 
              |
| 613 | 
                  -  | 
              |
| 614 | 600 | 
                  # Update keys  | 
              
| 615 | 601 | 
                  my @update_keys = keys %$param;  | 
              
| 616 | 602 | 
                   | 
              
| ... | ... | 
                  @@ -656,7 +642,7 @@ sub update {
                 | 
              
| 656 | 642 | 
                  # Execute query  | 
              
| 657 | 643 | 
                  my $ret_val = $self->execute($source, param => $param,  | 
              
| 658 | 644 | 
                  filter => $filter,  | 
              
| 659 | 
                  - auto_filter_table => $auto_filter_table);  | 
              |
| 645 | 
                  + table => $table);  | 
              |
| 660 | 646 | 
                   | 
              
| 661 | 647 | 
                  return $ret_val;  | 
              
| 662 | 648 | 
                  }  | 
              
| ... | ... | 
                  @@ -981,32 +967,28 @@ C<connect()> method use this value to connect the database.  | 
              
| 981 | 967 | 
                  L<DBIx::Custom> inherits all methods from L<Object::Simple>  | 
              
| 982 | 968 | 
                  and implements the following new ones.  | 
              
| 983 | 969 | 
                   | 
              
| 984 | 
                  -=head2 C<(experimental) auto_filter >  | 
              |
| 970 | 
                  +=head2 C<(experimental) apply_filter >  | 
              |
| 985 | 971 | 
                   | 
              
| 986 | 
                  - $dbi->auto_filter(  | 
              |
| 972 | 
                  + $dbi->apply_filter(  | 
              |
| 987 | 973 | 
                  $table,  | 
              
| 988 | 
                  - [$column1, $bind_filter1, $fetch_filter1],  | 
              |
| 989 | 
                  - [$column2, $bind_filter2, $fetch_filter2],  | 
              |
| 990 | 
                  - [...],  | 
              |
| 974 | 
                  +        $column1 => {in => $infilter1, out => $outfilter1}
                 | 
              |
| 975 | 
                  +        $column2 => {in => $infilter2, out => $outfilter2}
                 | 
              |
| 976 | 
                  + ...,  | 
              |
| 991 | 977 | 
                  );  | 
              
| 992 | 978 | 
                   | 
              
| 993 | 
                  -C<auto_filter> is automatically filter for columns of table.  | 
              |
| 979 | 
                  +C<apply_filter> is automatically filter for columns of table.  | 
              |
| 994 | 980 | 
                  This have effect C<insert>, C<update>, C<delete>. C<select>  | 
              
| 995 | 981 | 
                  and L<DBIx::Custom::Result> object. but this has'nt C<execute> method.  | 
              
| 996 | 982 | 
                   | 
              
| 997 | 
                  -If you want to have effect <execute< method, use C<auto_filter_table>  | 
              |
| 983 | 
                  +If you want to have effect <execute< method, use C<table>  | 
              |
| 998 | 984 | 
                  arguments.  | 
              
| 999 | 985 | 
                   | 
              
| 1000 | 986 | 
                  $result = $dbi->execute(  | 
              
| 1001 | 987 | 
                           "select * from table1 where {= key1} and {= key2};",
                 | 
              
| 1002 | 988 | 
                            param => {key1 => 1, key2 => 2},
                 | 
              
| 1003 | 
                  - auto_filter_table => ['table1']  | 
              |
| 989 | 
                  + table => ['table1']  | 
              |
| 1004 | 990 | 
                  );  | 
              
| 1005 | 991 | 
                   | 
              
| 1006 | 
                  -B<Example:>  | 
              |
| 1007 | 
                  -  | 
              |
| 1008 | 
                  -    $dbi->auto_filter('book', 'sale_date', 'to_date', 'date_to');
                 | 
              |
| 1009 | 
                  -  | 
              |
| 1010 | 992 | 
                  =head2 C<begin_work>  | 
              
| 1011 | 993 | 
                   | 
              
| 1012 | 994 | 
                  $dbi->begin_work;  | 
              
| ... | ... | 
                  @@ -554,7 +554,7 @@ $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 554 | 554 | 
                   $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 555 | 555 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 556 | 556 | 
                   $dbi->register_filter(three_times => sub { $_[0] * 3});
                 | 
              
| 557 | 
                  -$dbi->auto_filter(  | 
              |
| 557 | 
                  +$dbi->apply_filter(  | 
              |
| 558 | 558 | 
                  'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']);  | 
              
| 559 | 559 | 
                   $dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
                 | 
              
| 560 | 560 | 
                   $result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              
| ... | ... | 
                  @@ -564,32 +564,10 @@ is_deeply($row, {key1 => 2, key2 => 6}, "$test : insert");
                 | 
              
| 564 | 564 | 
                   $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 565 | 565 | 
                   $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 566 | 566 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 567 | 
                  -$dbi->register_filter(three_times => sub { $_[0] * 3});
                 | 
              |
| 568 | 
                  -$dbi->auto_filter(  | 
              |
| 569 | 
                  - 'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']);  | 
              |
| 570 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 571 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 572 | 
                  -$row = $result->fetch_hash_first;  | 
              |
| 573 | 
                  -is_deeply($row, {key1 => 1, key2 => 2}, "$test : insert disabe auto_filter_table 1");
                 | 
              |
| 574 | 
                  -  | 
              |
| 575 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 576 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 577 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 578 | 
                  -$dbi->register_filter(three_times => sub { $_[0] * 3});
                 | 
              |
| 579 | 
                  -$dbi->auto_filter(  | 
              |
| 580 | 
                  - 'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']);  | 
              |
| 581 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => []);
                 | 
              |
| 582 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 583 | 
                  -$row = $result->fetch_hash_first;  | 
              |
| 584 | 
                  -is_deeply($row, {key1 => 1, key2 => 2}, "$test : insert disabe auto_filter_table 2");
                 | 
              |
| 585 | 
                  -  | 
              |
| 586 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 587 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 588 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 589 | 
                  -$dbi->auto_filter(  | 
              |
| 567 | 
                  +$dbi->apply_filter(  | 
              |
| 590 | 568 | 
                  'table1', ['key1', 'twice', 'twice']  | 
              
| 591 | 569 | 
                  );  | 
              
| 592 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 570 | 
                  +$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, filter => {key1 => undef});
                 | 
              |
| 593 | 571 | 
                   $dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2});
                 | 
              
| 594 | 572 | 
                   $result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              
| 595 | 573 | 
                  $row = $result->fetch_hash_first;  | 
              
| ... | ... | 
                  @@ -598,34 +576,10 @@ is_deeply($row, {key1 => 4, key2 => 2}, "$test : update");
                 | 
              
| 598 | 576 | 
                   $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 599 | 577 | 
                   $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 600 | 578 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 601 | 
                  -$dbi->auto_filter(  | 
              |
| 602 | 
                  - 'table1', ['key1', 'twice', 'twice']  | 
              |
| 603 | 
                  -);  | 
              |
| 604 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 605 | 
                  -$dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2}, auto_filter_table => []);
                 | 
              |
| 606 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 607 | 
                  -$row = $result->fetch_hash_first;  | 
              |
| 608 | 
                  -is_deeply($row, {key1 => 2, key2 => 2}, "$test : update : disable bind filter1");
                 | 
              |
| 609 | 
                  -  | 
              |
| 610 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 611 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 612 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 613 | 
                  -$dbi->auto_filter(  | 
              |
| 614 | 
                  - 'table1', ['key1', 'twice', 'twice']  | 
              |
| 615 | 
                  -);  | 
              |
| 616 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 617 | 
                  -$dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 618 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 619 | 
                  -$row = $result->fetch_hash_first;  | 
              |
| 620 | 
                  -is_deeply($row, {key1 => 2, key2 => 2}, "$test : update : disable bind filter2");
                 | 
              |
| 621 | 
                  -  | 
              |
| 622 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 623 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 624 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 625 | 
                  -$dbi->auto_filter(  | 
              |
| 579 | 
                  +$dbi->apply_filter(  | 
              |
| 626 | 580 | 
                  'table1', ['key1', 'twice', 'twice']  | 
              
| 627 | 581 | 
                  );  | 
              
| 628 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 582 | 
                  +$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, filter => {key1=> undef});
                 | 
              |
| 629 | 583 | 
                   $dbi->delete(table => 'table1', where => {key1 => 1});
                 | 
              
| 630 | 584 | 
                   $result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              
| 631 | 585 | 
                  $rows = $result->fetch_hash_all;  | 
              
| ... | ... | 
                  @@ -634,34 +588,10 @@ is_deeply($rows, [], "$test : delete");  | 
              
| 634 | 588 | 
                   $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 635 | 589 | 
                   $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 636 | 590 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 637 | 
                  -$dbi->auto_filter(  | 
              |
| 638 | 
                  - 'table1', ['key1', 'twice', 'twice']  | 
              |
| 639 | 
                  -);  | 
              |
| 640 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 641 | 
                  -$dbi->delete(table => 'table1', where => {key1 => 1}, auto_filter_table => undef);
                 | 
              |
| 642 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 643 | 
                  -$rows = $result->fetch_hash_all;  | 
              |
| 644 | 
                  -is_deeply($rows, [{key1 => 2, key2 => 2}], "$test : delete : disable1");
                 | 
              |
| 645 | 
                  -  | 
              |
| 646 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 647 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 648 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 649 | 
                  -$dbi->auto_filter(  | 
              |
| 650 | 
                  - 'table1', ['key1', 'twice', 'twice']  | 
              |
| 651 | 
                  -);  | 
              |
| 652 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 653 | 
                  -$dbi->delete(table => 'table1', where => {key1 => 1}, auto_filter_table => []);
                 | 
              |
| 654 | 
                  -$result = $dbi->execute($SELECT_SOURCES->{0});
                 | 
              |
| 655 | 
                  -$rows = $result->fetch_hash_all;  | 
              |
| 656 | 
                  -is_deeply($rows, [{key1 => 2, key2 => 2}], "$test : delete : disable2");
                 | 
              |
| 657 | 
                  -  | 
              |
| 658 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 659 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 660 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 661 | 
                  -$dbi->auto_filter(  | 
              |
| 591 | 
                  +$dbi->apply_filter(  | 
              |
| 662 | 592 | 
                  'table1', ['key1', 'twice', 'twice']  | 
              
| 663 | 593 | 
                  );  | 
              
| 664 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 594 | 
                  +$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, filter => {key1 => undef});
                 | 
              |
| 665 | 595 | 
                   $result = $dbi->select(table => 'table1', where => {key1 => 1});
                 | 
              
| 666 | 596 | 
                   $result->filter({'key2' => 'twice'});
                 | 
              
| 667 | 597 | 
                  $rows = $result->fetch_hash_all;  | 
              
| ... | ... | 
                  @@ -670,25 +600,13 @@ is_deeply($rows, [{key1 => 4, key2 => 4}], "$test : select");
                 | 
              
| 670 | 600 | 
                   $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 671 | 601 | 
                   $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 672 | 602 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 673 | 
                  -$dbi->auto_filter(  | 
              |
| 674 | 
                  - 'table1', ['key1', 'twice', 'twice']  | 
              |
| 675 | 
                  -);  | 
              |
| 676 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 677 | 
                  -$result = $dbi->select(table => 'table1', where => {key1 => 2}, auto_filter_table => []);
                 | 
              |
| 678 | 
                  -$result->filter({'key2' => 'twice'});
                 | 
              |
| 679 | 
                  -$rows = $result->fetch_hash_all;  | 
              |
| 680 | 
                  -is_deeply($rows, [{key1 => 2, key2 => 4}], "$test : select : disable");
                 | 
              |
| 681 | 
                  -  | 
              |
| 682 | 
                  -$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              |
| 683 | 
                  -$dbi->execute($CREATE_TABLE->{0});
                 | 
              |
| 684 | 
                  -$dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              |
| 685 | 
                  -$dbi->auto_filter(  | 
              |
| 603 | 
                  +$dbi->apply_filter(  | 
              |
| 686 | 604 | 
                  'table1', ['key1', 'twice', 'twice']  | 
              
| 687 | 605 | 
                  );  | 
              
| 688 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 606 | 
                  +$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, filter => {key1 => undef});
                 | 
              |
| 689 | 607 | 
                   $result = $dbi->execute("select * from table1 where {= key1} and {= key2};",
                 | 
              
| 690 | 608 | 
                                           param => {key1 => 1, key2 => 2},
                 | 
              
| 691 | 
                  - auto_filter_table => ['table1']);  | 
              |
| 609 | 
                  + table => ['table1']);  | 
              |
| 692 | 610 | 
                  $rows = $result->fetch_hash_all;  | 
              
| 693 | 611 | 
                   is_deeply($rows, [{key1 => 4, key2 => 2}], "$test : execute");
                 | 
              
| 694 | 612 | 
                   | 
              
| ... | ... | 
                  @@ -697,14 +615,14 @@ $dbi->execute($CREATE_TABLE->{0});
                 | 
              
| 697 | 615 | 
                   $dbi->execute($CREATE_TABLE->{2});
                 | 
              
| 698 | 616 | 
                   $dbi->register_filter(twice => sub { $_[0] * 2 });
                 | 
              
| 699 | 617 | 
                   $dbi->register_filter(three_times => sub { $_[0] * 3 });
                 | 
              
| 700 | 
                  -$dbi->auto_filter(  | 
              |
| 618 | 
                  +$dbi->apply_filter(  | 
              |
| 701 | 619 | 
                  'table1', ['key2', 'twice', 'twice']  | 
              
| 702 | 620 | 
                  );  | 
              
| 703 | 
                  -$dbi->auto_filter(  | 
              |
| 621 | 
                  +$dbi->apply_filter(  | 
              |
| 704 | 622 | 
                  'table2', ['key3', 'three_times', 'three_times']  | 
              
| 705 | 623 | 
                  );  | 
              
| 706 | 
                  -$dbi->insert(table => 'table1', param => {key1 => 5, key2 => 2}, auto_filter_table => undef);
                 | 
              |
| 707 | 
                  -$dbi->insert(table => 'table2', param => {key1 => 5, key3 => 6}, auto_filter_table => undef);
                 | 
              |
| 624 | 
                  +$dbi->insert(table => 'table1', param => {key1 => 5, key2 => 2}, filter => {key2 => undef});
                 | 
              |
| 625 | 
                  +$dbi->insert(table => 'table2', param => {key1 => 5, key3 => 6}, filter => {key3 => undef});
                 | 
              |
| 708 | 626 | 
                  $result = $dbi->select(  | 
              
| 709 | 627 | 
                  table => ['table1', 'table2'],  | 
              
| 710 | 628 | 
                  column => ['key2', 'key3'],  | 
              
| ... | ... | 
                  @@ -723,7 +641,7 @@ $result->filter({'key2' => 'twice'});
                 | 
              
| 723 | 641 | 
                  $rows = $result->fetch_hash_all;  | 
              
| 724 | 642 | 
                   is_deeply($rows, [{key2 => 4, key3 => 18}], "$test : select : join : omit");
                 | 
              
| 725 | 643 | 
                   | 
              
| 726 | 
                  -test 'auto_filter_easy_build';  | 
              |
| 644 | 
                  +test 'apply_filter_easy_build';  | 
              |
| 727 | 645 | 
                   $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
                 | 
              
| 728 | 646 | 
                   $dbi->execute($CREATE_TABLE->{2});
                 | 
              
| 729 | 647 | 
                   $dbi->execute($CREATE_TABLE->{3});
                 |