mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
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
This commit is contained in:
@ -1201,4 +1201,13 @@ SET GLOBAL server_id = -1;
|
||||
SELECT @@GLOBAL.server_id;
|
||||
SET GLOBAL server_id = @old_server_id;
|
||||
|
||||
--echo #
|
||||
--echo # BUG#10206 - InnoDB: Transaction requiring Max_BinLog_Cache_size > 4GB always rollsback
|
||||
--echo #
|
||||
|
||||
SET @old_max_binlog_cache_size = @@GLOBAL.max_binlog_cache_size;
|
||||
--echo # Set the max_binlog_cache_size to size more than 4GB.
|
||||
SET GLOBAL max_binlog_cache_size = 5 * 1024 * 1024 * 1024;
|
||||
SELECT @@GLOBAL.max_binlog_cache_size;
|
||||
SET GLOBAL max_binlog_cache_size = @old_max_binlog_cache_size;
|
||||
--echo End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user