List:Internals« Previous MessageNext Message »
From:gluh Date:May 27 2005 3:01pm
Subject:bk commit into 5.0 tree (gluh:1.1928) BUG#9992
View as plain text  
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();
 
Thread
bk commit into 5.0 tree (gluh:1.1928) BUG#9992gluh27 May