mirror of
https://github.com/MariaDB/server.git
synced 2025-08-27 13:04:36 +03:00
trx_rseg_header_create(): Add a parameter for the value that is
to be written to TRX_RSEG_MAX_TRX_ID. If we omit this write, then
the updated test innodb.undo_truncate will fail for the 4k, 8k, 16k
page sizes. This was broken ever since
commit 947efe17ed
(MDEV-15158)
removed the writes of transaction identifiers to the TRX_SYS page.
srv_do_purge(): Truncate undo tablespaces also during slow shutdown
(innodb_fast_shutdown=0).
Thanks to Krunal Bauskar for noticing this problem.
36 lines
1.0 KiB
Plaintext
36 lines
1.0 KiB
Plaintext
SET @save_undo_logs = @@GLOBAL.innodb_undo_logs;
|
|
SET @save_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
|
SET @save_truncate = @@GLOBAL.innodb_undo_log_truncate;
|
|
SET GLOBAL innodb_undo_log_truncate = 0;
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
|
create table t1(keyc int primary key, c char(100)) engine = innodb;
|
|
create table t2(keyc int primary key, c char(100)) engine = innodb;
|
|
connect con1,localhost,root,,;
|
|
begin;
|
|
insert into t1 select seq,'a' from seq_1_to_20000;
|
|
connect con2,localhost,root,,;
|
|
begin;
|
|
insert into t2 select seq,'a' from seq_1_to_20000;
|
|
connection con1;
|
|
update t1 set c = 'mysql';
|
|
connection con2;
|
|
update t2 set c = 'mysql';
|
|
connection con1;
|
|
update t1 set c = 'oracle';
|
|
connection con2;
|
|
update t2 set c = 'oracle';
|
|
connection con1;
|
|
delete from t1;
|
|
connection con2;
|
|
delete from t2;
|
|
connection con1;
|
|
SET GLOBAL innodb_undo_log_truncate = 1;
|
|
commit;
|
|
disconnect con1;
|
|
connection con2;
|
|
commit;
|
|
disconnect con2;
|
|
connection default;
|
|
set global innodb_fast_shutdown=0;
|
|
drop table t1, t2;
|