Commit a1523345 authored by unknown's avatar unknown

Fix for BUG#5064 "SET GLOBAL SYNC_BINLOG does not work on some platforms":

var->save_result.ulong_value was 0 on Mac OS X probably due to positions
of members in the union. sys_var::check() only sets ulonglong_value


sql/set_var.cc:
  Of the save_result union, sys_var::check() only updates ulonglong_value;
  so other types of the union are garbage. Here we must use ulonglong_value
  in sys_var_sync_binlog_period::update(), not ulong_value (which is )
parent a5f1fea0
......@@ -34,6 +34,12 @@
- If the variable should show up in 'show variables' add it to the
init_vars[] struct in this file
NOTES:
- Be careful with var->save_result: sys_var::check() only updates
ulonglong_value; so other members of the union are garbage then; to use
them you must first assign a value to them (in specific ::check() for
example).
TODO:
- Add full support for the variable character_set (for 4.1)
......@@ -2332,7 +2338,7 @@ bool sys_var_slave_skip_counter::update(THD *thd, set_var *var)
bool sys_var_sync_binlog_period::update(THD *thd, set_var *var)
{
pthread_mutex_t *lock_log= mysql_bin_log.get_log_lock();
sync_binlog_period= var->save_result.ulong_value;
sync_binlog_period= (ulong) var->save_result.ulonglong_value;
/*
Must reset the counter otherwise it may already be beyond the new period
and so the new period will not be taken into account. Need mutex otherwise
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment