Do not schedule && retrieve the result if #query_with_result is false
This commit is contained in:
parent
85141abf09
commit
4e5967bd24
27
ext/mysql.c
27
ext/mysql.c
@ -260,7 +260,6 @@ static void optimize_for_async( VALUE obj )
|
|||||||
|
|
||||||
vio_fastsend( m->handler.net.vio );
|
vio_fastsend( m->handler.net.vio );
|
||||||
async_in_progress_set( obj, Qfalse );
|
async_in_progress_set( obj, Qfalse );
|
||||||
/*last_connection_identifier(obj);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void schedule_connect(VALUE obj )
|
static void schedule_connect(VALUE obj )
|
||||||
@ -838,13 +837,6 @@ static VALUE readable( int argc, VALUE* argv, VALUE obj )
|
|||||||
return ( vio_poll_read( m->net.vio, INT2NUM(timeout) ) == 0 ? Qtrue : Qfalse );
|
return ( vio_poll_read( m->net.vio, INT2NUM(timeout) ) == 0 ? Qtrue : Qfalse );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ready */
|
|
||||||
static VALUE ready( VALUE obj )
|
|
||||||
{
|
|
||||||
MYSQL* m = GetHandler(obj);
|
|
||||||
return ( m->status == MYSQL_STATUS_READY ) ? Qtrue : Qfalse;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* retry */
|
/* retry */
|
||||||
static VALUE retry( VALUE obj )
|
static VALUE retry( VALUE obj )
|
||||||
{
|
{
|
||||||
@ -924,11 +916,13 @@ static VALUE get_result(VALUE obj)
|
|||||||
}
|
}
|
||||||
if (mysql_read_query_result(m) != 0)
|
if (mysql_read_query_result(m) != 0)
|
||||||
mysql_raise(m);
|
mysql_raise(m);
|
||||||
|
|
||||||
|
async_in_progress_set( obj, Qfalse );
|
||||||
|
|
||||||
if (GetMysqlStruct(obj)->query_with_result == Qfalse)
|
if (GetMysqlStruct(obj)->query_with_result == Qfalse)
|
||||||
return obj;
|
return obj;
|
||||||
if (mysql_field_count(m) == 0)
|
if (mysql_field_count(m) == 0)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
async_in_progress_set( obj, Qfalse );
|
|
||||||
return store_result(obj);
|
return store_result(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -957,15 +951,17 @@ static VALUE async_query(int argc, VALUE* argv, VALUE obj)
|
|||||||
|
|
||||||
rb_scan_args(argc, argv, "11", &sql, &timeout);
|
rb_scan_args(argc, argv, "11", &sql, &timeout);
|
||||||
|
|
||||||
/*last_connection_identifier( obj );*/
|
|
||||||
|
|
||||||
async_in_progress_set( obj, Qfalse );
|
async_in_progress_set( obj, Qfalse );
|
||||||
|
|
||||||
send_query(obj,sql);
|
send_query(obj,sql);
|
||||||
|
|
||||||
schedule_query(obj, timeout);
|
if (GetMysqlStruct(obj)->query_with_result == Qfalse){
|
||||||
|
async_in_progress_set( obj, Qfalse );
|
||||||
return get_result(obj);
|
return obj;
|
||||||
|
} else {
|
||||||
|
schedule_query(obj, timeout);
|
||||||
|
return get_result(obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MYSQL_VERSION_ID >= 40100
|
#if MYSQL_VERSION_ID >= 40100
|
||||||
@ -2263,7 +2259,6 @@ void Init_mysql(void)
|
|||||||
rb_define_method(cMysql, "get_result", get_result, 0);
|
rb_define_method(cMysql, "get_result", get_result, 0);
|
||||||
rb_define_method(cMysql, "readable?", readable, -1);
|
rb_define_method(cMysql, "readable?", readable, -1);
|
||||||
rb_define_method(cMysql, "retry?", retry, 0);
|
rb_define_method(cMysql, "retry?", retry, 0);
|
||||||
rb_define_method(cMysql, "ready?", ready, 0);
|
|
||||||
rb_define_method(cMysql, "interrupted?", interrupted, 0);
|
rb_define_method(cMysql, "interrupted?", interrupted, 0);
|
||||||
rb_define_method(cMysql, "blocking?", blocking, 0);
|
rb_define_method(cMysql, "blocking?", blocking, 0);
|
||||||
rb_define_method(cMysql, "socket", socket, 0);
|
rb_define_method(cMysql, "socket", socket, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user