diff options
author | Satya B <satya.bn@sun.com> | 2009-05-15 16:33:08 +0530 |
---|---|---|
committer | Satya B <satya.bn@sun.com> | 2009-05-15 16:33:08 +0530 |
commit | 1e37c919ef557f00476779b660ecf0c309c99457 (patch) | |
tree | 1b06fc5572cee939621b7545a98f4e6ab6e9f6f2 /sql/set_var.cc | |
parent | c5548ad7bdb8faa673c8455ebd4d98aad93b43eb (diff) | |
download | mariadb-git-1e37c919ef557f00476779b660ecf0c309c99457.tar.gz |
Fix for BUG#10206 - InnoDB: Transaction requiring Max_BinLog_Cache_size > 4GB
always rollsback.
The global variable max_binlog_cache_size cannot be set more than 4GB on
32 bit systems, limiting transactions of all storage engines to 4G of changes.
The problem is max_binlog_cache_size is declared as ulong which is 4 bytes
on 32 bit and 8 bytes on 64 bit machines.
Fixed by using ulonglong for max_binlog_cache_size which is 8bytes on 32
and 64 bit machines.The range for max_binlog_cache_size on 32 bit and 64 bit
systems is 4096-18446744073709547520 bytes.
mysql-test/r/variables.result:
Result file for BUG#10206
mysql-test/t/variables.test:
Testcase for BUG#10206
sql/mysql_priv.h:
change the extern declaration of max_binlog_cache_size to ulonglong
sql/mysqld.cc:
change the declaration of max_binlog_cache_size to ulonglong and the option is fixed to extend the range of max_binlog_cache_size
sql/set_var.cc:
change the variable declaration of max_binlog_cache_size to ulonglong
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r-- | sql/set_var.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc index bc8c91342e6..0b89333ce03 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -359,8 +359,8 @@ static sys_var_const sys_lower_case_table_names(&vars, &lower_case_table_names); static sys_var_thd_ulong_session_readonly sys_max_allowed_packet(&vars, "max_allowed_packet", &SV::max_allowed_packet); -static sys_var_long_ptr sys_max_binlog_cache_size(&vars, "max_binlog_cache_size", - &max_binlog_cache_size); +static sys_var_ulonglong_ptr sys_max_binlog_cache_size(&vars, "max_binlog_cache_size", + &max_binlog_cache_size); static sys_var_long_ptr sys_max_binlog_size(&vars, "max_binlog_size", &max_binlog_size, fix_max_binlog_size); |