summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2012-10-01 02:30:44 +0300
committerMichael Widenius <monty@askmonty.org>2012-10-01 02:30:44 +0300
commit8ac1b41cf358029b8e08e977f45bb6197a1c1c19 (patch)
tree2e77415664e1f259259f393da8b22effa1493a07 /sql/rpl_rli.cc
parent5a4b5869a039bd50ce5a040114ede77bbae58c80 (diff)
downloadmariadb-git-8ac1b41cf358029b8e08e977f45bb6197a1c1c19.tar.gz
Made max_relay_log_size depending on master connection.
Changed names of multi-source log files so that original suffixes are kept. include/my_sys.h: Added fn_ext2(), which returns pointer to last '.' in file name mysql-test/extra/rpl_tests/rpl_max_relay_size.test: Updated test mysql-test/suite/multi_source/info_logs-master.opt: Test with strange file names mysql-test/suite/multi_source/info_logs.result: Updated results mysql-test/suite/multi_source/info_logs.test: Changed to test with complex names to be able to verify the filename generator code mysql-test/suite/multi_source/relaylog_events.result: Updated results mysql-test/suite/multi_source/reset_slave.result: Updated results mysql-test/suite/multi_source/skip_counter.result: Updated results mysql-test/suite/multi_source/skip_counter.test: Added testing of max_relay_log_size mysql-test/suite/rpl/r/rpl_row_max_relay_size.result: Updated results mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result: Updated results mysql-test/suite/sys_vars/r/max_relay_log_size_basic.result: Updated results mysql-test/suite/sys_vars/t/max_relay_log_size_basic.test: Updated results mysys/mf_fn_ext.c: Added fn_ext2(), which returns pointer to last '.' in file name sql/log.cc: Removed some wrong casts sql/log.h: Updated comment to reflect new code sql/log_event.cc: Updated DBUG_PRINT sql/mysqld.cc: Added that max_relay_log_size copies it's values from max_binlog_size sql/mysqld.h: Removed max_relay_log_size sql/rpl_mi.cc: Changed names of multi-source log files so that original suffixes are kept. sql/rpl_mi.h: Updated prototype sql/rpl_rli.cc: Updated comment to reflect new code Made max_relay_log_size depending on master connection. sql/rpl_rli.h: Made max_relay_log_size depending on master connection. sql/set_var.h: Made option global so that one can check and change min & max values (sorry Sergei) sql/sql_class.h: Made max_relay_log_size depending on master connection. sql/sql_repl.cc: Updated calls to create_signed_file_name() sql/sys_vars.cc: Made max_relay_log_size depending on master connection. Made old code more reusable sql/sys_vars.h: Changed Sys_var_multi_source_uint to ulong to be able to handle max_relay_log_size Made old code more reusable
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r--sql/rpl_rli.cc17
1 files changed, 4 insertions, 13 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 49c8390ff9b..362ebab9fa0 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -69,6 +69,7 @@ Relay_log_info::Relay_log_info(bool is_slave_recovery)
group_relay_log_name[0]= event_relay_log_name[0]=
group_master_log_name[0]= 0;
until_log_name[0]= ign_master_log_name_end[0]= 0;
+ max_relay_log_size= global_system_variables.max_relay_log_size;
bzero((char*) &info_file, sizeof(info_file));
bzero((char*) &cache_buf, sizeof(cache_buf));
cached_charset_invalidate();
@@ -149,15 +150,6 @@ int init_relay_log_info(Relay_log_info* rli,
event, in flush_master_info(mi, 1, ?).
*/
- /*
- For the maximum log size, we choose max_relay_log_size if it is
- non-zero, max_binlog_size otherwise. If later the user does SET
- GLOBAL on one of these variables, fix_max_binlog_size and
- fix_max_relay_log_size will reconsider the choice (for example
- if the user changes max_relay_log_size to zero, we have to
- switch to using max_binlog_size for the relay log) and update
- rli->relay_log.max_size (and mysql_bin_log.max_size).
- */
{
/* Reports an error and returns, if the --relay-log's path
is a directory.*/
@@ -212,7 +204,7 @@ a file name for --relay-log-index option", opt_relaylog_index_name);
char *buf_relaylog_index_name= opt_relaylog_index_name;
create_signed_file_name(buf_relay_logname, sizeof(buf_relay_logname),
- ln, '-', &mi->connection_name);
+ ln, 1, &mi->connection_name);
ln= buf_relay_logname;
if (opt_relaylog_index_name)
@@ -220,7 +212,7 @@ a file name for --relay-log-index option", opt_relaylog_index_name);
buf_relaylog_index_name= buf_relaylog_index_name_buff;
create_signed_file_name(buf_relaylog_index_name_buff,
sizeof(buf_relaylog_index_name_buff),
- opt_relaylog_index_name, '-',
+ opt_relaylog_index_name, 0,
&mi->connection_name);
}
@@ -232,8 +224,7 @@ a file name for --relay-log-index option", opt_relaylog_index_name);
*/
if (rli->relay_log.open_index_file(buf_relaylog_index_name, ln, TRUE) ||
rli->relay_log.open(ln, LOG_BIN, 0, SEQ_READ_APPEND,
- (max_relay_log_size ? max_relay_log_size :
- max_binlog_size), 1, TRUE))
+ mi->rli.max_relay_log_size, 1, TRUE))
{
mysql_mutex_unlock(&rli->data_lock);
sql_print_error("Failed when trying to open logs for '%s' in init_relay_log_info(). Error: %M", ln, my_errno);