| ... | ... | 
                  @@ -170,6 +170,7 @@ sub create_query {
                 | 
              
| 170 | 170 | 
                   | 
              
| 171 | 171 | 
                   sub execute {
                 | 
              
| 172 | 172 | 
                  my ($self, $query, $params) = @_;  | 
              
| 173 | 
                  +    $params ||= {};
                 | 
              |
| 173 | 174 | 
                   | 
              
| 174 | 175 | 
                  # Create query if First argument is template  | 
              
| 175 | 176 | 
                       if (!ref $query) {
                 | 
              
| ... | ... | 
                  @@ -28,6 +28,7 @@ my $sql;  | 
              
| 28 | 28 | 
                  my $result;  | 
              
| 29 | 29 | 
                  my @rows;  | 
              
| 30 | 30 | 
                  my $rows;  | 
              
| 31 | 
                  +my $query;  | 
              |
| 31 | 32 | 
                   | 
              
| 32 | 33 | 
                   | 
              
| 33 | 34 | 
                  # Prepare table  | 
              
| ... | ... | 
                  @@ -39,66 +40,62 @@ $sth->execute(1, 2);  | 
              
| 39 | 40 | 
                  $sth->execute(3, 4);  | 
              
| 40 | 41 | 
                   | 
              
| 41 | 42 | 
                   | 
              
| 42 | 
                  -__END__  | 
              |
| 43 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 43 | 
                  +test 'DBI::Custom::Result test';  | 
              |
| 44 | 
                  +$tmpl = "select key1, key2 from table1";  | 
              |
| 45 | 
                  +$query = $dbi->create_query($tmpl);  | 
              |
| 46 | 
                  +$result = $dbi->execute($query);  | 
              |
| 44 | 47 | 
                   | 
              
| 45 | 48 | 
                  @rows = ();  | 
              
| 46 | 49 | 
                   while (my $row = $result->fetch) {
                 | 
              
| 47 | 50 | 
                  push @rows, [@$row];  | 
              
| 48 | 51 | 
                  }  | 
              
| 49 | 
                  -is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch');  | 
              |
| 52 | 
                  +is_deeply(\@rows, [[1, 2], [3, 4]], "$test : fetch scalar context");  | 
              |
| 50 | 53 | 
                   | 
              
| 51 | 54 | 
                   | 
              
| 52 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 53 | 
                  -  | 
              |
| 55 | 
                  +$result = $dbi->execute($query);  | 
              |
| 54 | 56 | 
                  @rows = ();  | 
              
| 55 | 57 | 
                   while (my @row = $result->fetch) {
                 | 
              
| 56 | 58 | 
                  push @rows, [@row];  | 
              
| 57 | 59 | 
                  }  | 
              
| 58 | 
                  -is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch list context');  | 
              |
| 60 | 
                  +is_deeply(\@rows, [[1, 2], [3, 4]], "$test : fetch list context");  | 
              |
| 59 | 61 | 
                   | 
              
| 60 | 62 | 
                   | 
              
| 61 | 
                  -$result = $dbi->execute("select key1, key2 from table1;");
                 | 
              |
| 62 | 
                  -  | 
              |
| 63 | 
                  +$result = $dbi->execute($query);  | 
              |
| 63 | 64 | 
                  @rows = ();  | 
              
| 64 | 65 | 
                   while (my $row = $result->fetch_hash) {
                 | 
              
| 65 | 66 | 
                       push @rows, {%$row};
                 | 
              
| 66 | 67 | 
                  }  | 
              
| 67 | 
                  -is_deeply(\@rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], 'fetch_hash');
                 | 
              |
| 68 | 
                  -  | 
              |
| 68 | 
                  +is_deeply(\@rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "$test : fetch_hash scalar context");
                 | 
              |
| 69 | 69 | 
                   | 
              
| 70 | 
                  -$result = $dbi->execute("select key1, key2 from table1;");
                 | 
              |
| 71 | 70 | 
                   | 
              
| 71 | 
                  +$result = $dbi->execute($query);  | 
              |
| 72 | 72 | 
                  @rows = ();  | 
              
| 73 | 73 | 
                   while (my %row = $result->fetch_hash) {
                 | 
              
| 74 | 74 | 
                       push @rows, {%row};
                 | 
              
| 75 | 75 | 
                  }  | 
              
| 76 | 
                  -is_deeply(\@rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], 'fetch hash list context');
                 | 
              |
| 76 | 
                  +is_deeply(\@rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "$test : fetch hash list context");
                 | 
              |
| 77 | 77 | 
                   | 
              
| 78 | 78 | 
                   | 
              
| 79 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 80 | 
                  -  | 
              |
| 79 | 
                  +$result = $dbi->execute($query);  | 
              |
| 81 | 80 | 
                  $rows = $result->fetch_all;  | 
              
| 82 | 
                  -is_deeply($rows, [[1, 2], [3, 4]], 'fetch_all');  | 
              |
| 81 | 
                  +is_deeply($rows, [[1, 2], [3, 4]], "$test : fetch_all scalar context");  | 
              |
| 83 | 82 | 
                   | 
              
| 84 | 83 | 
                   | 
              
| 85 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 86 | 
                  -  | 
              |
| 84 | 
                  +$result = $dbi->execute($query);  | 
              |
| 87 | 85 | 
                  @rows = $result->fetch_all;  | 
              
| 88 | 
                  -is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch_all list context');  | 
              |
| 86 | 
                  +is_deeply(\@rows, [[1, 2], [3, 4]], "$test : fetch_all list context");  | 
              |
| 89 | 87 | 
                   | 
              
| 90 | 88 | 
                   | 
              
| 91 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 92 | 
                  -  | 
              |
| 89 | 
                  +$result = $dbi->execute($query);  | 
              |
| 93 | 90 | 
                  @rows = $result->fetch_all_hash;  | 
              
| 94 | 
                  -is_deeply($rows, [[1, 2], [3, 4]], 'fetch_all_hash');  | 
              |
| 91 | 
                  +is_deeply($rows, [[1, 2], [3, 4]], "$test : fetch_all_hash scalar context");  | 
              |
| 95 | 92 | 
                   | 
              
| 96 | 93 | 
                   | 
              
| 97 | 
                  -$result = $dbi->execute("select key1, key2 from table1");
                 | 
              |
| 98 | 
                  -  | 
              |
| 94 | 
                  +$result = $dbi->execute($query);  | 
              |
| 99 | 95 | 
                  @rows = $result->fetch_all;  | 
              
| 100 | 
                  -is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch_all_hash list context');  | 
              |
| 96 | 
                  +is_deeply(\@rows, [[1, 2], [3, 4]], "$test : fetch_all_hash list context");  | 
              |
| 101 | 97 | 
                   | 
              
| 98 | 
                  +__END__  | 
              |
| 102 | 99 | 
                   | 
              
| 103 | 100 | 
                   $dbi->fetch_filter(sub {
                 | 
              
| 104 | 101 | 
                  my ($key, $value, $type, $sth, $i) = @_;  |