summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2003-12-04 22:42:18 +0100
committerunknown <guilhem@mysql.com>2003-12-04 22:42:18 +0100
commit66927c51fa8e25f9d8a9d818f4ff7ed2a64c5ecb (patch)
treeca8ac74120edb9722c802f5ad77a4b4ecdae17d2 /sql/slave.cc
parent0a9ae10f9e3087ace610b2cfa508eb280f3dd7ad (diff)
downloadmariadb-git-66927c51fa8e25f9d8a9d818f4ff7ed2a64c5ecb.tar.gz
- Fix for BUG#1858 "SQL-Thread stops working when using optimize table":
we change THD::system_thread from a 'bool' to a bitmap to be able to distinguish between delayed-insert threads and slave threads. - Fix for BUG#1701 "Update from multiple tables" (one line in sql_parse.cc, plus a new test rpl_multi_update.test). That's just adding an initialization. sql/repl_failsafe.cc: comment to warn about this unused code sql/slave.cc: Now thd->system_thread is a bitmap, not a bool. sql/sql_class.h: 'bool' for THD::system_thread is not accurate enough; sometimes we need to distinguish between delayed-insert threads and slave threads; so changing THD::system_thread to a bitmap (uint). sql/sql_insert.cc: thd.system_thread is now a bitmap sql/sql_parse.cc: We need to initialize thd->lex.select_lex.options in mysql_init_query(); it's already initialized in dispatch_command() but replication calls mysql_parse() directly, thus bypassing dispatch_command(). Not initing it here leads to a query influencing the next query, in the slave SQL thread. The initialization in dispatch_command() must be kept as this command uses the variable in tests, even when the command was not a query (i.e. when mysql_init_query() was not called).
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index 5bc31fd6a21..25eeb34e3a7 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2021,7 +2021,9 @@ improper_arguments: %d timed_out: %d",
static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
{
DBUG_ENTER("init_slave_thread");
- thd->system_thread = thd->bootstrap = 1;
+ thd->system_thread = (thd_type == SLAVE_THD_SQL) ?
+ SYSTEM_THREAD_SLAVE_SQL : SYSTEM_THREAD_SLAVE_IO;
+ thd->bootstrap= 1;
thd->host_or_ip= "";
thd->client_capabilities = 0;
my_net_init(&thd->net, 0);