|
16 | 16 |
|
17 | 17 | VALUE cMysql2Client;
|
18 | 18 | extern VALUE mMysql2, cMysql2Error, cMysql2TimeoutError;
|
19 |
| -static VALUE sym_id, sym_version, sym_header_version, sym_async, sym_symbolize_keys, sym_as, sym_array, sym_stream; |
| 19 | +static VALUE sym_id, sym_version, sym_header_version, sym_async, sym_symbolize_keys, sym_as, sym_array, sym_stream, sym_read_timeout; |
20 | 20 | static VALUE sym_no_good_index_used, sym_no_index_used, sym_query_was_slow;
|
21 | 21 | static ID intern_brackets, intern_merge, intern_merge_bang, intern_new_with_args;
|
22 | 22 |
|
@@ -639,7 +639,10 @@ static VALUE do_query(void *args) {
|
639 | 639 | int retval;
|
640 | 640 | VALUE read_timeout;
|
641 | 641 |
|
642 |
| - read_timeout = rb_iv_get(async_args->self, "@read_timeout"); |
| 642 | + read_timeout = rb_hash_aref(rb_iv_get(async_args->self, "@current_query_options"), sym_read_timeout); |
| 643 | + if (NIL_P(read_timeout)) { |
| 644 | + read_timeout = rb_iv_get(async_args->self, "@read_timeout"); |
| 645 | + } |
643 | 646 |
|
644 | 647 | tvp = NULL;
|
645 | 648 | if (!NIL_P(read_timeout)) {
|
@@ -1452,6 +1455,7 @@ void init_mysql2_client() {
|
1452 | 1455 | sym_as = ID2SYM(rb_intern("as"));
|
1453 | 1456 | sym_array = ID2SYM(rb_intern("array"));
|
1454 | 1457 | sym_stream = ID2SYM(rb_intern("stream"));
|
| 1458 | + sym_read_timeout = ID2SYM(rb_intern("read_timeout")); |
1455 | 1459 |
|
1456 | 1460 | sym_no_good_index_used = ID2SYM(rb_intern("no_good_index_used"));
|
1457 | 1461 | sym_no_index_used = ID2SYM(rb_intern("no_index_used"));
|
|
0 commit comments