Skip to content

Commit aa88da4

Browse files
committed
Move mysql_fetch_fields closer to point of use.
1 parent d0fef7c commit aa88da4

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

ext/mysql2/result.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ static VALUE rb_mysql_result_fetch_row(VALUE self, MYSQL_FIELD * fields, const r
511511
{
512512
VALUE rowVal;
513513
MYSQL_ROW row;
514+
MYSQL_FIELD * fields;
514515
unsigned int i = 0;
515516
unsigned long * fieldLengths;
516517
void * ptr;
@@ -542,6 +543,9 @@ static VALUE rb_mysql_result_fetch_row(VALUE self, MYSQL_FIELD * fields, const r
542543
wrapper->fields = rb_ary_new2(wrapper->numberOfFields);
543544
}
544545

546+
/* get the MySQL field types to convert to Ruby field types */
547+
fields = mysql_fetch_fields(wrapper->result);
548+
545549
for (i = 0; i < wrapper->numberOfFields; i++) {
546550
VALUE field = rb_mysql_result_fetch_field(self, i, args->symbolizeKeys);
547551
if (row[i]) {
@@ -774,8 +778,6 @@ static VALUE rb_mysql_result_each_(VALUE self,
774778
if (!wrapper->streamingComplete) {
775779
VALUE row;
776780

777-
fields = mysql_fetch_fields(wrapper->result);
778-
779781
do {
780782
row = fetch_row_func(self, fields, args);
781783
if (row != Qnil) {
@@ -808,7 +810,6 @@ static VALUE rb_mysql_result_each_(VALUE self,
808810
} else {
809811
unsigned long rowsProcessed = 0;
810812
rowsProcessed = RARRAY_LEN(wrapper->rows);
811-
fields = mysql_fetch_fields(wrapper->result);
812813

813814
for (i = 0; i < wrapper->numberOfRows; i++) {
814815
VALUE row;

0 commit comments

Comments
 (0)