From 921157d9034f6035680b55b6d8c4b340b6e8b837 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 17 Sep 2007 21:39:07 +0500 Subject: Fixed bug #29985. Multiple-result processing is required during the execution of CALL statements for stored procedures, however the mysqlslap client lacked that processing. client/mysqlslap.c: Fixed bug #29985. 1. Connection flags have been changed: the CLIENT_MULTI_STATEMENTS flag has been added. 2. The run_task function has been modified to process multiple result sets. mysql-test/t/mysqlslap.test: Added test case for bug #29985. mysql-test/r/mysqlslap.result: Added test case for bug #29985. --- client/mysqlslap.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'client/mysqlslap.c') diff --git a/client/mysqlslap.c b/client/mysqlslap.c index 02a0cbd04c5..1c54ba86718 100644 --- a/client/mysqlslap.c +++ b/client/mysqlslap.c @@ -140,7 +140,8 @@ static my_bool opt_compress= FALSE, tty_password= FALSE, auto_generate_sql= FALSE; const char *auto_generate_sql_type= "mixed"; -static unsigned long connect_flags= CLIENT_MULTI_RESULTS; +static unsigned long connect_flags= CLIENT_MULTI_RESULTS | + CLIENT_MULTI_STATEMENTS; static int verbose, delimiter_length; static uint commit_rate; @@ -1877,13 +1878,16 @@ limit_not_met: } } - if (mysql_field_count(mysql)) + do { - result= mysql_store_result(mysql); - while ((row = mysql_fetch_row(result))) - counter++; - mysql_free_result(result); - } + if (mysql_field_count(mysql)) + { + result= mysql_store_result(mysql); + while ((row = mysql_fetch_row(result))) + counter++; + mysql_free_result(result); + } + } while(mysql_next_result(mysql) == 0); queries++; if (commit_rate && commit_rate <= trans_counter) -- cgit v1.2.1