diff options
author | dlenev@mockturtle.local <> | 2007-03-15 11:55:15 +0300 |
---|---|---|
committer | dlenev@mockturtle.local <> | 2007-03-15 11:55:15 +0300 |
commit | bb233cb349a91ac44bb0b14789e07099abf3d178 (patch) | |
tree | 67a816b8a9328a2f53d0e38dbfb0efbe67be33c2 | |
parent | d9d887ad6d9518b688b040401a673d4775292b2a (diff) | |
parent | e4f88d5215d121cc46dfb143f01a659a849e5d4f (diff) | |
download | mariadb-git-bb233cb349a91ac44bb0b14789e07099abf3d178.tar.gz |
Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg25966-2
into mockturtle.local:/home/dlenev/src/mysql-5.1-bg25966
-rw-r--r-- | sql/mysqld.cc | 6 | ||||
-rw-r--r-- | sql/sp_head.cc | 1 | ||||
-rw-r--r-- | sql/sql_parse.cc | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 758dc54316e..168c4d30b73 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1804,6 +1804,12 @@ static bool cache_thread() thd= thread_cache.get(); thd->thread_stack= (char*) &thd; // For store_globals (void) thd->store_globals(); + /* + THD::mysys_var::abort is associated with physical thread rather + than with THD object. So we need to reset this flag before using + this thread for handling of new THD object/connection. + */ + thd->mysys_var->abort= 0; thd->thr_create_time= time(NULL); threads.append(thd); return(1); diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 1e0986f6e82..4d286d237af 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -1127,6 +1127,7 @@ sp_head::execute(THD *thd) thd->clear_error(); thd->is_fatal_error= 0; thd->killed= THD::NOT_KILLED; + thd->mysys_var->abort= 0; continue; } } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index bfcbd4663b4..d083e01514f 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -689,7 +689,10 @@ bool dispatch_command(enum enum_server_command command, THD *thd, DBUG_ENTER("dispatch_command"); if (thd->killed == THD::KILL_QUERY || thd->killed == THD::KILL_BAD_DATA) + { thd->killed= THD::NOT_KILLED; + thd->mysys_var->abort= 0; + } thd->command=command; /* |