| ... | ... |
@@ -283,8 +283,8 @@ sub fetch_all {
|
| 283 | 283 |
my $self = shift; |
| 284 | 284 |
|
| 285 | 285 |
my $rows = []; |
| 286 |
- while(my %row = $self->fetch) {
|
|
| 287 |
- push @$rows, {%row};
|
|
| 286 |
+ while(my @row = $self->fetch) {
|
|
| 287 |
+ push @$rows, [@row]; |
|
| 288 | 288 |
} |
| 289 | 289 |
return wantarray ? @$rows : $rows; |
| 290 | 290 |
} |
| ... | ... |
@@ -69,55 +69,75 @@ $t->new->create_table1->insert({k1 => 1, k2 => 2}, {k1 => 3, k2 => 4})->test(sub
|
| 69 | 69 |
my @rows; |
| 70 | 70 |
my $rows; |
| 71 | 71 |
|
| 72 |
- # Simple query array ref |
|
| 72 |
+ #---------- |
|
| 73 | 73 |
$r = $dbi->query("select k1, k2 from t1");
|
| 74 | 74 |
|
| 75 | 75 |
@rows = (); |
| 76 | 76 |
while (my $row = $r->fetch) {
|
| 77 | 77 |
push @rows, [@$row]; |
| 78 | 78 |
} |
| 79 |
- is_deeply(\@rows, [[1, 2], [3, 4]], 'Simple query array ref'); |
|
| 80 |
- |
|
| 81 |
- |
|
| 82 |
- # Simple query array |
|
| 79 |
+ is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch'); |
|
| 80 |
+ |
|
| 81 |
+ |
|
| 82 |
+ #---------- |
|
| 83 | 83 |
$r = $dbi->query("select k1, k2 from t1");
|
| 84 | 84 |
|
| 85 | 85 |
@rows = (); |
| 86 | 86 |
while (my @row = $r->fetch) {
|
| 87 | 87 |
push @rows, [@row]; |
| 88 | 88 |
} |
| 89 |
- is_deeply(\@rows, [[1, 2], [3, 4]], 'Simple query array'); |
|
| 89 |
+ is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch list context'); |
|
| 90 | 90 |
|
| 91 | 91 |
|
| 92 |
- # Simple query hash ref |
|
| 92 |
+ #----------- |
|
| 93 | 93 |
$r = $dbi->query("select k1, k2 from t1;");
|
| 94 | 94 |
|
| 95 | 95 |
@rows = (); |
| 96 | 96 |
while (my $row = $r->fetch_hash) {
|
| 97 | 97 |
push @rows, {%$row};
|
| 98 | 98 |
} |
| 99 |
- is_deeply(\@rows, [{k1 => 1, k2 => 2}, {k1 => 3, k2 => 4}], 'Simple query hash ref');
|
|
| 99 |
+ is_deeply(\@rows, [{k1 => 1, k2 => 2}, {k1 => 3, k2 => 4}], 'fetch_hash');
|
|
| 100 | 100 |
|
| 101 |
- |
|
| 102 |
- # Simple query hash |
|
| 101 |
+ |
|
| 102 |
+ #----------- |
|
| 103 | 103 |
$r = $dbi->query("select k1, k2 from t1;");
|
| 104 | 104 |
|
| 105 | 105 |
@rows = (); |
| 106 | 106 |
while (my %row = $r->fetch_hash) {
|
| 107 | 107 |
push @rows, {%row};
|
| 108 | 108 |
} |
| 109 |
- is_deeply(\@rows, [{k1 => 1, k2 => 2}, {k1 => 3, k2 => 4}], 'Simple query hash ref');
|
|
| 109 |
+ is_deeply(\@rows, [{k1 => 1, k2 => 2}, {k1 => 3, k2 => 4}], 'fetch hash list context');
|
|
| 110 | 110 |
|
| 111 | 111 |
|
| 112 |
- # Simple query array ref all |
|
| 112 |
+ #----------- |
|
| 113 | 113 |
$r = $dbi->query("select k1, k2 from t1");
|
| 114 | 114 |
|
| 115 | 115 |
$rows = $r->fetch_all; |
| 116 |
- is_deeply($rows, [[1, 2], [3, 4]], 'Simple query array'); |
|
| 116 |
+ is_deeply($rows, [[1, 2], [3, 4]], 'fetch_all'); |
|
| 117 | 117 |
|
| 118 | 118 |
|
| 119 |
+ #------------ |
|
| 120 |
+ $r = $dbi->query("select k1, k2 from t1");
|
|
| 121 |
+ |
|
| 122 |
+ @rows = $r->fetch_all; |
|
| 123 |
+ is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch_all list context'); |
|
| 124 |
+ |
|
| 125 |
+ |
|
| 126 |
+ #------------ |
|
| 127 |
+ $r = $dbi->query("select k1, k2 from t1");
|
|
| 128 |
+ |
|
| 129 |
+ @rows = $r->fetch_all_hash; |
|
| 130 |
+ is_deeply($rows, [[1, 2], [3, 4]], 'fetch_all_hash'); |
|
| 119 | 131 |
|
| 120 | 132 |
|
| 133 |
+ #------------- |
|
| 134 |
+ $r = $dbi->query("select k1, k2 from t1");
|
|
| 135 |
+ |
|
| 136 |
+ @rows = $r->fetch_all; |
|
| 137 |
+ is_deeply(\@rows, [[1, 2], [3, 4]], 'fetch_all_hash list context'); |
|
| 138 |
+ |
|
| 139 |
+ |
|
| 140 |
+ #--------------------------------------------------------------------- |
|
| 121 | 141 |
$dbi->fetch_filter(sub {
|
| 122 | 142 |
my ($key, $value) = @_; |
| 123 | 143 |
if ($key eq 'k1' && $value == 1 ) {
|
| ... | ... |
@@ -126,12 +146,20 @@ $t->new->create_table1->insert({k1 => 1, k2 => 2}, {k1 => 3, k2 => 4})->test(sub
|
| 126 | 146 |
return $value; |
| 127 | 147 |
}); |
| 128 | 148 |
|
| 149 |
+ #----------------------------------- |
|
| 129 | 150 |
$r = $dbi->query("select k1, k2 from t1");
|
| 130 | 151 |
|
| 131 |
- my $row = $r->fetch; |
|
| 132 |
- my @values = @$row; |
|
| 133 |
- $r->finish; |
|
| 152 |
+ $rows = $r->fetch_all; |
|
| 153 |
+ |
|
| 154 |
+ is_deeply($rows, [[3, 2], [3, 4]], 'fetch_filter array'); |
|
| 134 | 155 |
|
| 135 |
- is_deeply(\@values, [3, 2]); |
|
| 156 |
+ |
|
| 157 |
+ #---------------------------------- |
|
| 158 |
+ $r = $dbi->query("select k1, k2 from t1");
|
|
| 159 |
+ |
|
| 160 |
+ $rows = $r->fetch_all_hash; |
|
| 161 |
+ |
|
| 162 |
+ is_deeply($rows, [{k1 => 3, k2 => 2}, {k1 => 3, k2 => 4}], 'fetch_filter hash');
|
|
| 163 |
+ |
|
| 136 | 164 |
}); |
| 137 | 165 |
|