@@ -346,15 +346,15 @@ static VALUE rb_mysql_result_fetch_row_stmt(VALUE self, MYSQL_FIELD * fields, co
346
346
conn_enc = rb_to_encoding (wrapper -> encoding );
347
347
#endif
348
348
349
+ if (wrapper -> fields == Qnil ) {
350
+ wrapper -> numberOfFields = mysql_num_fields (wrapper -> result );
351
+ wrapper -> fields = rb_ary_new2 (wrapper -> numberOfFields );
352
+ }
349
353
if (args -> asArray ) {
350
354
rowVal = rb_ary_new2 (wrapper -> numberOfFields );
351
355
} else {
352
356
rowVal = rb_hash_new ();
353
357
}
354
- if (wrapper -> fields == Qnil ) {
355
- wrapper -> numberOfFields = mysql_num_fields (wrapper -> result );
356
- wrapper -> fields = rb_ary_new2 (wrapper -> numberOfFields );
357
- }
358
358
359
359
if (wrapper -> result_buffers == NULL ) {
360
360
rb_mysql_result_alloc_result_buffers (self , fields );
@@ -541,16 +541,16 @@ static VALUE rb_mysql_result_fetch_row(VALUE self, MYSQL_FIELD * fields, const r
541
541
return Qnil ;
542
542
}
543
543
544
+ if (wrapper -> fields == Qnil ) {
545
+ wrapper -> numberOfFields = mysql_num_fields (wrapper -> result );
546
+ wrapper -> fields = rb_ary_new2 (wrapper -> numberOfFields );
547
+ }
544
548
if (args -> asArray ) {
545
549
rowVal = rb_ary_new2 (wrapper -> numberOfFields );
546
550
} else {
547
551
rowVal = rb_hash_new ();
548
552
}
549
553
fieldLengths = mysql_fetch_lengths (wrapper -> result );
550
- if (wrapper -> fields == Qnil ) {
551
- wrapper -> numberOfFields = mysql_num_fields (wrapper -> result );
552
- wrapper -> fields = rb_ary_new2 (wrapper -> numberOfFields );
553
- }
554
554
555
555
for (i = 0 ; i < wrapper -> numberOfFields ; i ++ ) {
556
556
VALUE field = rb_mysql_result_fetch_field (self , i , args -> symbolizeKeys );
@@ -913,13 +913,8 @@ static VALUE rb_mysql_result_each(int argc, VALUE * argv, VALUE self) {
913
913
app_timezone = Qnil ;
914
914
}
915
915
916
- if (wrapper -> lastRowProcessed == 0 && !wrapper -> is_streaming ) {
916
+ if (wrapper -> rows == Qnil && !wrapper -> is_streaming ) {
917
917
wrapper -> numberOfRows = wrapper -> stmt_wrapper ? mysql_stmt_num_rows (wrapper -> stmt_wrapper -> stmt ) : mysql_num_rows (wrapper -> result );
918
- if (wrapper -> numberOfRows == 0 ) {
919
- rb_mysql_result_free_result (wrapper );
920
- wrapper -> rows = rb_ary_new ();
921
- return wrapper -> rows ;
922
- }
923
918
wrapper -> rows = rb_ary_new2 (wrapper -> numberOfRows );
924
919
}
925
920
0 commit comments