summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorunknown <gluh@gluh.mysql.r18.ru>2003-04-23 18:00:07 +0500
committerunknown <gluh@gluh.mysql.r18.ru>2003-04-23 18:00:07 +0500
commitc14f989ff83e27d0c28964cf1a97e5e58a53c4ff (patch)
tree630c0de1000122a73a4c374cfe78d36ff24860de /sql/log_event.cc
parenta792b31b90ec4414da4a1cc787818523875fde89 (diff)
downloadmariadb-git-c14f989ff83e27d0c28964cf1a97e5e58a53c4ff.tar.gz
Task 761:'mysqlbinlog should not die when reading
unknown event' client/mysqlbinlog.cc: Task 761:'mysqlbinlog should not die when reading unknown event' The 'force-read' option has been added. sql/log_event.cc: Task 761:'mysqlbinlog should not die when reading unknown event' The'Unknown_log_event' class has been added sql/log_event.h: Task 761:'mysqlbinlog should not die when reading unknown event' The 'Unknown_log_event' class has been added.
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc22
1 files changed, 21 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index b627636186b..05d5788f5ae 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -659,9 +659,18 @@ Log_event* Log_event::read_log_event(const char* buf, int event_len,
}
if (!ev || !ev->is_valid())
{
- *error= "Found invalid event in binary log";
delete ev;
+#ifdef MYSQL_CLIENT
+ if (!force_opt)
+ {
+ *error= "Found invalid event in binary log";
+ return 0;
+ }
+ ev= new Unknown_log_event(buf, old_format);
+#else
+ *error= "Found invalid event in binary log";
return 0;
+#endif
}
ev->cached_event_len = event_len;
return ev;
@@ -1695,6 +1704,17 @@ void Execute_load_log_event::pack_info(String* packet)
}
#endif
+#ifdef MYSQL_CLIENT
+void Unknown_log_event::print(FILE* file, bool short_form, char* last_db)
+{
+ if (short_form)
+ return;
+ print_header(file);
+ fputc('\n', file);
+ fprintf(file, "# %s", "Unknown event\n");
+}
+#endif
+
#ifndef MYSQL_CLIENT
int Query_log_event::exec_event(struct st_relay_log_info* rli)
{