summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-10-03 13:55:31 -0600
committerunknown <sasha@mysql.sashanet.com>2001-10-03 13:55:31 -0600
commit5a18acf35f208c3cfa9534b337fe31d333615e4f (patch)
treec17cde775f3df9c527ba8f87a755ce2ae2cf8d04 /sql/log_event.cc
parent0cf4750f3d495b61480d6b7a9b5ea19ae93eadf0 (diff)
downloadmariadb-git-5a18acf35f208c3cfa9534b337fe31d333615e4f.tar.gz
fixed slave to clean up load data infile temp files
instrumented the server with DBUG_SYNC_POINT() macro mysql-test/t/rpl_log.test: no change sql/item_func.cc: debug_sync_point() sql/log_event.cc: clead load data file tmpdir on slave on start/stop events sql/mysql_priv.h: DBUG_SYNC_POINT sql/sql_repl.cc: DBUG_SYNC_POINT in Create_file_event
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc23
1 files changed, 22 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 78ba50acea7..7183e4caebb 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -21,6 +21,7 @@
#endif
#include "mysql_priv.h"
#include "slave.h"
+#include <my_dir.h>
#endif /* MYSQL_CLIENT */
#ifdef MYSQL_CLIENT
@@ -127,6 +128,25 @@ Log_event::Log_event(THD* thd_arg, uint16 flags_arg):
when = time(NULL);
}
}
+
+static void cleanup_load_tmpdir()
+{
+ MY_DIR *dirp;
+ FILEINFO *file;
+ uint i;
+ if (!(dirp=my_dir(slave_load_tmpdir,MYF(MY_WME))))
+ return;
+
+ for (i=0;i<(uint)dirp->number_off_files;i++)
+ {
+ file=dirp->dir_entry+i;
+ if (!memcmp(file->name,"SQL_LOAD-",9))
+ my_delete(file->name,MYF(MY_WME));
+ }
+
+ my_dirend(dirp);
+}
+
#endif
Log_event::Log_event(const char* buf):cached_event_len(0),temp_buf(0)
@@ -1638,6 +1658,7 @@ int Load_log_event::exec_event(NET* net, struct st_master_info* mi)
int Start_log_event::exec_event(struct st_master_info* mi)
{
close_temporary_tables(thd);
+ cleanup_load_tmpdir();
return Log_event::exec_event(mi);
}
@@ -1646,7 +1667,7 @@ int Stop_log_event::exec_event(struct st_master_info* mi)
if(mi->pos > 4) // stop event should be ignored after rotate event
{
close_temporary_tables(thd);
- //clean_up_load_tmp_dir();
+ cleanup_load_tmpdir();
mi->inc_pos(get_event_len(), log_seq);
flush_master_info(mi);
}