From: Date: May 27 2005 3:01pm Subject: bk commit into 5.0 tree (gluh:1.1928) BUG#9992 List-Archive: http://lists.mysql.com/internals/25302 X-Bug: 9992 Message-Id: <200505271301.j4RD1G3A014882@eagle.intranet.mysql.r18.ru> Below is the list of changes that have just been committed into a local 5.0 repository of gluh. When gluh does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.1928 05/05/27 18:01:09 gluh@stripped +2 -0 Fix for bug #9992: mysql_next_result hangs on error set net->no_send_error to 0 before execution of each element of multiquery statement to provide the sending of error to client tests/mysql_client_test.c 1.120 05/05/27 18:00:12 gluh@stripped +23 -3 Fix for bug #9992: mysql_next_result hangs on error test case sql/sql_parse.cc 1.436 05/05/27 18:00:12 gluh@stripped +1 -0 Fix for bug #9992: mysql_next_result hangs on error set net->no_send_error to 0 before execution of each element of multiquery statement to provide the sending of error to client # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gluh # Host: eagle.intranet.mysql.r18.ru # Root: /home/gluh/MySQL/Merge/mysql-5.0 --- 1.435/sql/sql_parse.cc Thu May 26 23:00:20 2005 +++ 1.436/sql/sql_parse.cc Fri May 27 18:00:12 2005 @@ -1655,6 +1655,7 @@ while (!thd->killed && thd->lex->found_semicolon && !thd->net.report_error) { char *packet= thd->lex->found_semicolon; + net->no_send_error= 0; /* Multiple queries exits, execute them individually in embedded server - just store them to be executed later --- 1.119/tests/mysql_client_test.c Wed May 18 12:41:30 2005 +++ 1.120/tests/mysql_client_test.c Fri May 27 18:00:12 2005 @@ -233,7 +233,7 @@ /* Connect to the server */ -static void client_connect() +static void client_connect(ulong flag) { int rc; myheader_r("client_connect"); @@ -251,7 +251,7 @@ if (!(mysql_real_connect(mysql, opt_host, opt_user, opt_password, opt_db ? opt_db:"test", opt_port, - opt_unix_socket, 0))) + opt_unix_socket, flag))) { opt_silent= 0; myerror("connection failed"); @@ -13478,6 +13478,22 @@ } +static void check_mupltiquery_bug9992() +{ + + MYSQL_RES* res ; + mysql_query(mysql,"SHOW TABLES;SHOW DATABASE;SELECT 1;"); + + fprintf(stdout, "\n\n!!! check_mupltiquery_bug9992 !!!\n"); + do + { + if (!(res= mysql_store_result(mysql))) + return; + mysql_free_result(res); + } while (!mysql_next_result(mysql)); + fprintf(stdout, "\n\n!!! SUCCESS !!!\n"); + return; +} /*************************************************************************** main routine ***************************************************************************/ @@ -13499,7 +13515,7 @@ (char**) embedded_server_groups)) DIE("Can't initialize MySQL server"); - client_connect(); /* connect to server */ + client_connect(0); /* connect to server */ total_time= 0; for (iter_count= 1; iter_count <= opt_count; iter_count++) @@ -13543,6 +13559,10 @@ } client_disconnect(); /* disconnect from server */ + + client_connect(CLIENT_MULTI_STATEMENTS); + check_mupltiquery_bug9992(); + client_disconnect(); free_defaults(defaults_argv); print_test_output();