summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <lzhou/zhl@dev3-63.(none)>2007-02-01 17:34:20 +0000
committerunknown <lzhou/zhl@dev3-63.(none)>2007-02-01 17:34:20 +0000
commitd760847276059930913c5b3837fb253b936a7173 (patch)
tree43d2528007f225d8a978b925a4b0ae1c88ca5e47 /sql
parent4415af757e9bb64e76e4f0fb8fa7f1b498221282 (diff)
parentb4f04231db5d7922ec60be1a747a052bd7880d44 (diff)
downloadmariadb-git-d760847276059930913c5b3837fb253b936a7173.tar.gz
Merge dev3-63.(none):/home/zhl/mysql/tree-merge/5.1/mysql-5.1-new-ndb-bj
into dev3-63.(none):/home/zhl/mysql/tree-merge/5.1/mysql-5.1-new-ndb sql/log_event.cc: Auto merged sql/protocol.h: Auto merged sql/slave.cc: Auto merged storage/ndb/src/common/debugger/EventLogger.cpp: Auto merged storage/ndb/src/kernel/blocks/backup/Backup.cpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged storage/ndb/src/mgmclient/CommandInterpreter.cpp: Auto merged storage/ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged storage/ndb/src/mgmsrv/main.cpp: Auto merged storage/ndb/src/ndbapi/ClusterMgr.cpp: Auto merged
Diffstat (limited to 'sql')
-rw-r--r--sql/log_event.cc23
-rw-r--r--sql/protocol.h2
-rw-r--r--sql/slave.cc2
3 files changed, 23 insertions, 4 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 82fb64bfe15..d38a9accecc 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -5717,9 +5717,26 @@ int Rows_log_event::exec_event(st_relay_log_info *rli)
{
if (!need_reopen)
{
- slave_print_msg(ERROR_LEVEL, rli, error,
- "Error in %s event: when locking tables",
- get_type_str());
+ if (thd->query_error || thd->is_fatal_error)
+ {
+ /*
+ Error reporting borrowed from Query_log_event with many excessive
+ simplifications (we don't honour --slave-skip-errors)
+ */
+ uint actual_error= thd->net.last_errno;
+ slave_print_msg(ERROR_LEVEL, rli, actual_error,
+ "Error '%s' in %s event: when locking tables",
+ (actual_error ? thd->net.last_error :
+ "unexpected success or fatal error"),
+ get_type_str());
+ thd->is_fatal_error= 1;
+ }
+ else
+ {
+ slave_print_msg(ERROR_LEVEL, rli, error,
+ "Error in %s event: when locking tables",
+ get_type_str());
+ }
rli->clear_tables_to_lock();
DBUG_RETURN(error);
}
diff --git a/sql/protocol.h b/sql/protocol.h
index 0e00a7c21e0..6c4c7414ea5 100644
--- a/sql/protocol.h
+++ b/sql/protocol.h
@@ -58,6 +58,8 @@ public:
String *storage_packet() { return packet; }
inline void free() { packet->free(); }
virtual bool write();
+ inline bool store(int from)
+ { return store_long((longlong) from); }
inline bool store(uint32 from)
{ return store_long((longlong) from); }
inline bool store(longlong from)
diff --git a/sql/slave.cc b/sql/slave.cc
index c21aec49e88..e34077403a7 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1295,7 +1295,7 @@ bool show_master_info(THD* thd, MASTER_INFO* mi)
rpl_filter->get_wild_ignore_table(&tmp);
protocol->store(&tmp);
- protocol->store((uint32) mi->rli.last_slave_errno);
+ protocol->store(mi->rli.last_slave_errno);
protocol->store(mi->rli.last_slave_error, &my_charset_bin);
protocol->store((uint32) mi->rli.slave_skip_counter);
protocol->store((ulonglong) mi->rli.group_master_log_pos);