1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

SCRUM: 'Replication: PURGE LOGS with date' task

Added:

PURGE [MASTER] LOGS BEFORE date/date_expression
expire-logs-days option
  With this option old files are deleted when
      - mysqld is started
      - log is rotated
      - someone does FLUSH LOGS






sql/lex.h:
  For PURGE LOGS BEFORE
sql/log.cc:
  Added purge_logs_before_date to MYSQL_LOG class
sql/mysql_priv.h:
  For startup option --expire-logs-days
sql/mysqld.cc:
  Added options expire-logs-days
  When mysqld is started old log files are deleted.
sql/sql_class.h:
  For PURGE LOGS BEFORE and expire-log-days option
sql/sql_lex.h:
  For PURGE LOGS BEFORE
sql/sql_parse.cc:
  Old logs are deleted
  when someone does FLUSH LOGS
sql/sql_repl.cc:
  For PURGE LOGS BEFORE and expire-log-days option
sql/sql_repl.h:
  For PURGE LOGS BEFORE and expire-log-days option
sql/sql_yacc.yy:
  For PURGE LOGS BEFORE
This commit is contained in:
unknown
2003-02-16 20:39:12 +04:00
parent f993a29ef1
commit e1cf7fb3a8
10 changed files with 164 additions and 17 deletions

View File

@@ -256,15 +256,10 @@ bool log_in_use(const char* log_name)
return result;
}
int purge_master_logs(THD* thd, const char* to_log)
int purge_error_message(THD* thd, int res)
{
char search_file_name[FN_REFLEN];
const char* errmsg = 0;
mysql_bin_log.make_log_name(search_file_name, to_log);
int res = mysql_bin_log.purge_logs(thd, search_file_name);
switch(res) {
case 0: break;
case LOG_INFO_EOF: errmsg = "Target log not found in binlog index"; break;
@@ -288,10 +283,26 @@ binlog purge"; break;
}
else
send_ok(thd);
return 0;
}
int purge_master_logs(THD* thd, const char* to_log)
{
char search_file_name[FN_REFLEN];
mysql_bin_log.make_log_name(search_file_name, to_log);
int res = mysql_bin_log.purge_logs(thd, search_file_name);
return purge_error_message(thd, res);
}
int purge_master_logs_before_date(THD* thd, time_t purge_time)
{
int res = mysql_bin_log.purge_logs_before_date(thd, purge_time);
return purge_error_message(thd ,res);
}
/*
TODO: Clean up loop to only have one call to send_file()
*/