... | ... |
@@ -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 |
|