summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2000-11-27 11:13:05 -0700
committerunknown <sasha@mysql.sashanet.com>2000-11-27 11:13:05 -0700
commitd95ec59726ad44cc26bee2e32c9bffa0052b0a51 (patch)
tree66e0033b6a729fa25769f98640f7ec7b1bfc719f /sql/slave.cc
parent241e25389f99fa5a536ac3a0bb50d269ec637f07 (diff)
parent7648e3bc3c3dd27f97b878760938f748499fd378 (diff)
downloadmariadb-git-d95ec59726ad44cc26bee2e32c9bffa0052b0a51.tar.gz
Merge work.mysql.com:/home/bk/mysql
into mysql.sashanet.com:/home/sasha/src/bk/mysql sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/slave.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc17
1 files changed, 7 insertions, 10 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index f2636ab5380..c969d7f11ae 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -761,6 +761,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
thd->query_error = 0; // clear error
thd->net.last_errno = 0;
thd->net.last_error[0] = 0;
+ thd->slave_proxy_id = qev->thread_id; // for temp tables
mysql_parse(thd, thd->query, q_len);
int expected_error,actual_error;
if((expected_error = qev->error_code) !=
@@ -781,24 +782,17 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
thd->convert_set = 0; // assume no convert for next query
// unless set explictly
close_thread_tables(thd);
- free_root(&thd->mem_root,0);
- if (thd->query_error)
+ if (thd->query_error || thd->fatal_error)
{
sql_print_error("Slave: error running query '%s' ",
qev->query);
+ free_root(&thd->mem_root,0);
delete ev;
return 1;
}
-
+ free_root(&thd->mem_root,0);
delete ev;
-
- if(thd->fatal_error)
- {
- sql_print_error("Slave: Fatal error running query '%s' ",
- thd->query);
- return 1;
- }
mi->inc_pos(event_len);
flush_master_info(mi);
@@ -874,6 +868,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
List<Item> fields;
lev->set_fields(fields);
+ thd->slave_proxy_id = thd->thread_id;
thd->net.vio = net->vio;
// mysql_load will use thd->net to read the file
thd->net.pkt_nr = net->pkt_nr;
@@ -919,11 +914,13 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
}
case START_EVENT:
+ close_temporary_tables(thd);
mi->inc_pos(event_len);
flush_master_info(mi);
break;
case STOP_EVENT:
+ close_temporary_tables(thd);
mi->inc_pos(event_len);
flush_master_info(mi);
break;