diff options
author | unknown <guilhem@mysql.com> | 2003-12-04 22:42:18 +0100 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2003-12-04 22:42:18 +0100 |
commit | 66927c51fa8e25f9d8a9d818f4ff7ed2a64c5ecb (patch) | |
tree | ca8ac74120edb9722c802f5ad77a4b4ecdae17d2 /sql/slave.cc | |
parent | 0a9ae10f9e3087ace610b2cfa508eb280f3dd7ad (diff) | |
download | mariadb-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.cc | 4 |
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); |