| ... | ... | 
                  @@ -1,3 +1,5 @@  | 
              
| 1 | 
                  +0.1698  | 
              |
| 2 | 
                  + - fixed DBIx::Custom::Where to_string method small bug  | 
              |
| 1 | 3 | 
                  0.1697  | 
              
| 2 | 4 | 
                  - added EXPERIMENTAL map_param method  | 
              
| 3 | 5 | 
                  0.1696  | 
              
| ... | ... | 
                  @@ -67,20 +67,24 @@ sub _parse {
                 | 
              
| 67 | 67 | 
                                 qq{"$op" is passed} . _subname . ")"
                 | 
              
| 68 | 68 | 
                             unless $VALID_OPERATIONS{$op};
                 | 
              
| 69 | 69 | 
                   | 
              
| 70 | 
                  + my $pushed_array;  | 
              |
| 70 | 71 | 
                  # Parse internal clause  | 
              
| 71 | 72 | 
                           for (my $i = 1; $i < @$clause; $i++) {
                 | 
              
| 72 | 73 | 
                  my $pushed = $self->_parse($clause->[$i], $where, $count, $op);  | 
              
| 73 | 74 | 
                  push @$where, $op if $pushed;  | 
              
| 75 | 
                  + $pushed_array = 1 if $pushed;  | 
              |
| 74 | 76 | 
                  }  | 
              
| 75 | 77 | 
                  pop @$where if $where->[-1] eq $op;  | 
              
| 76 | 78 | 
                   | 
              
| 77 | 79 | 
                  # Undo  | 
              
| 78 | 80 | 
                           if ($where->[-1] eq '(') {
                 | 
              
| 79 | 81 | 
                  pop @$where;  | 
              
| 80 | 
                  - pop @$where;  | 
              |
| 82 | 
                  + pop @$where if ($where->[-1] || '') eq $op;  | 
              |
| 81 | 83 | 
                  }  | 
              
| 82 | 84 | 
                  # End  | 
              
| 83 | 85 | 
                           else { push @$where, ')' }
                 | 
              
| 86 | 
                  +  | 
              |
| 87 | 
                  + return $pushed_array;  | 
              |
| 84 | 88 | 
                  }  | 
              
| 85 | 89 | 
                   | 
              
| 86 | 90 | 
                  # String  | 
              
| ... | ... | 
                  @@ -139,6 +143,7 @@ sub _parse {
                 | 
              
| 139 | 143 | 
                  }  | 
              
| 140 | 144 | 
                  return $pushed;  | 
              
| 141 | 145 | 
                  }  | 
              
| 146 | 
                  + return;  | 
              |
| 142 | 147 | 
                  }  | 
              
| 143 | 148 | 
                   | 
              
| 144 | 149 | 
                  1;  | 
              
| ... | ... | 
                  @@ -1342,6 +1342,30 @@ is_deeply($row, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], 'not_exists');
                 | 
              
| 1342 | 1342 | 
                   eval {$dbi->where(ppp => 1) };
                 | 
              
| 1343 | 1343 | 
                  like($@, qr/invalid/);  | 
              
| 1344 | 1344 | 
                   | 
              
| 1345 | 
                  +$where = $dbi->where(  | 
              |
| 1346 | 
                  + clause => ['and', ['or'], ['and', 'key1 = :key1', 'key2 = :key2']],  | 
              |
| 1347 | 
                  +    param => {key1 => 1, key2 => 2}
                 | 
              |
| 1348 | 
                  +);  | 
              |
| 1349 | 
                  +$result = $dbi->select(  | 
              |
| 1350 | 
                  + table => 'table1',  | 
              |
| 1351 | 
                  + where => $where,  | 
              |
| 1352 | 
                  +);  | 
              |
| 1353 | 
                  +$row = $result->all;  | 
              |
| 1354 | 
                  +is_deeply($row, [{key1 => 1, key2 => 2}]);
                 | 
              |
| 1355 | 
                  +  | 
              |
| 1356 | 
                  +  | 
              |
| 1357 | 
                  +$where = $dbi->where(  | 
              |
| 1358 | 
                  + clause => ['and', ['or'], ['or', ':key1', ':key2']],  | 
              |
| 1359 | 
                  +    param => {}
                 | 
              |
| 1360 | 
                  +);  | 
              |
| 1361 | 
                  +$result = $dbi->select(  | 
              |
| 1362 | 
                  + table => 'table1',  | 
              |
| 1363 | 
                  + where => $where,  | 
              |
| 1364 | 
                  +);  | 
              |
| 1365 | 
                  +$row = $result->all;  | 
              |
| 1366 | 
                  +is_deeply($row, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}]);
                 | 
              |
| 1367 | 
                  +  | 
              |
| 1368 | 
                  +  | 
              |
| 1345 | 1369 | 
                  test 'dbi_option default';  | 
              
| 1346 | 1370 | 
                  $dbi = DBIx::Custom->new;  | 
              
| 1347 | 1371 | 
                   is_deeply($dbi->dbi_option, {});
                 |