⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.124
Server IP:
50.28.103.30
Server:
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
server
/
mysql
/
mysql-test
/
suite
/
innodb
/
t
/
View File Name :
innodb_wl6915.test
# # WL#6915: InnoDB: Undo logs for temp-tables (and related objects) should # reside in temp-tablespace # --source include/no_valgrind_without_big.inc --source include/have_innodb.inc ################################################################################ # # Will test following scenarios: # 1. Try loading table with commit and rollback action # (this will ensure proper rseg is being used). # 2. Load temp and non-temp table with purge activity. # 3. In xa trx try loading temp + non-temp table. # (Same as case-2 but from xa perspective) # ################################################################################ #----------------------------------------------------------------------------- # # create test-bed # set global innodb_file_per_table = off; let $MYSQL_TMP_DIR = `select @@tmpdir`; let $MYSQL_DATA_DIR = `select @@datadir`; let SEARCH_FILE = $MYSQLTEST_VARDIR/log/my_restart.err; let $args = --loose-console > $SEARCH_FILE 2>&1; let crash = $args --innodb-force-recovery-crash; #----------------------------------------------------------------------------- # # 1. Try loading table with commit and rollback action. # (this will ensure proper rseg is being used). # use test; create temporary table t1 (a int, b char(100), c char(100)) engine = innodb; --source suite/innodb/include/innodb_undo_logs_action.inc drop table t1; # create table t1 (a int, b char(100), c char(100)) engine = innodb; --source suite/innodb/include/innodb_undo_logs_action.inc drop table t1; #----------------------------------------------------------------------------- # # 2. Load temp and non-temp table with purge activity. # use test; create temporary table t1 (a int, b char(100), c char(100)) engine = innodb; create table t2 (a int, b char(100), c char(100)) engine = innodb; delimiter |; create procedure populate_t1_t2() begin declare i int default 1; while (i <= 2000) DO insert into t1 values (i, 'a', 'b'); insert into t2 values (i, 'a', 'b'); set i = i + 1; end while; end| create procedure populate_t1_t2_small() begin declare i int default 1; while (i <= 200) DO insert into t1 values (i, 'a', 'b'); insert into t2 values (i, 'a', 'b'); set i = i + 1; end while; end| delimiter ;| begin; call populate_t1_t2(); commit; select count(*) from t1; select count(*) from t2; # begin; delete from t1 where a <= 100; delete from t2 where a > 1900; select count(*) from t1; select count(*) from t2; commit; # begin; update t1 set b = 'innodb' where b = 'a' and a <= 1000; update t2 set b = 'myisam' where c = 'b' and a > 1000; commit; # delete from t1 where b = 'a'; delete from t2 where c = 'myisam'; select count(*) from t1; select count(*) from t2; # insert into t1 values (1000000, 'mysql', 'db'); begin; call populate_t1_t2_small(); select count(*) from t1; select count(*) from t2; rollback; select count(*) from t1; select count(*) from t2; # drop table t2; drop table t1; drop procedure populate_t1_t2; drop procedure populate_t1_t2_small; #----------------------------------------------------------------------------- # # 3. In xa trx try loading temp + non-temp table. # (Same as case-2 but from xa perspective) # create temporary table t1 (i int) engine=innodb; create table t2 (i int) engine=innodb; insert into t1 values (1); insert into t2 values (101); select * from t1; select * from t2; # xa start 'tx1'; insert into t1 values (2), (3); insert into t2 values (202), (303); select * from t1; select * from t2; xa end 'tx1'; xa prepare 'tx1'; xa commit 'tx1'; select * from t1; select * from t2; # xa start 'tx1'; insert into t1 values (2), (3); insert into t2 values (202), (303); select * from t1; select * from t2; xa end 'tx1'; xa prepare 'tx1'; xa rollback 'tx1'; select * from t1; select * from t2; # # xa start 'tx1'; insert into t1 values (2), (3); select * from t1; xa end 'tx1'; xa prepare 'tx1'; xa commit 'tx1'; select * from t1; # drop table t1; drop table t2; #----------------------------------------------------------------------------- # # remove test-bed # set global innodb_file_per_table=default;