mariadb/mysql-test/suite/rpl/t/rpl_innodb_bug28430.test

154 lines
5.1 KiB
Text
Raw Normal View History

Bug#30907 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" Bug#28430 "Failure in replication of innodb partitioned tables on row/mixed format" Bug#30888 "Innodb table + stored procedure + row deletion = server crash" Apply Oracle patch from Sunny Include tests cases by Omer Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/handler/ha_innodb.cc: Bug30907/28430 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" "Failure in replication of innodb partitioned tables on row/mixed format" Apply Oracle patch from Sunny Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/row/row0sel.c: Bug30888 "Innodb table + stored procedure + row deletion = server crash" Remove endian-specific code. Fix function row_search_autoinc_read_column() to handle any integer size up to 8 bytes. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug28430.result'' mysql-test/suite/rpl/r/rpl_innodb_bug30888.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30888.result'' mysql-test/suite/rpl/t/rpl_innodb-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430.test'' mysql-test/suite/rpl/t/rpl_innodb_bug30888.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30888.test''
2007-09-08 11:19:35 -07:00
--source include/have_innodb.inc
--source include/have_partition.inc
--source include/have_binlog_format_mixed_or_row.inc
Bug#30907 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" Bug#28430 "Failure in replication of innodb partitioned tables on row/mixed format" Bug#30888 "Innodb table + stored procedure + row deletion = server crash" Apply Oracle patch from Sunny Include tests cases by Omer Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/handler/ha_innodb.cc: Bug30907/28430 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" "Failure in replication of innodb partitioned tables on row/mixed format" Apply Oracle patch from Sunny Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/row/row0sel.c: Bug30888 "Innodb table + stored procedure + row deletion = server crash" Remove endian-specific code. Fix function row_search_autoinc_read_column() to handle any integer size up to 8 bytes. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug28430.result'' mysql-test/suite/rpl/r/rpl_innodb_bug30888.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30888.result'' mysql-test/suite/rpl/t/rpl_innodb-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430.test'' mysql-test/suite/rpl/t/rpl_innodb_bug30888.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30888.test''
2007-09-08 11:19:35 -07:00
--source include/master-slave.inc
# Set the default connection to 'master'
--vertical_results
let $engine_type= 'innodb';
######## Creat Table Section #########
use test;
eval CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
fkid MEDIUMINT, filler VARCHAR(255),
PRIMARY KEY(id)) ENGINE=$engine_type;
eval CREATE TABLE test.bykey_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
fkid MEDIUMINT, filler VARCHAR(255),
PRIMARY KEY(id)) ENGINE=$engine_type
PARTITION BY KEY(id) partitions 5;
eval CREATE TABLE test.byrange_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
fkid MEDIUMINT, filler VARCHAR(255),
PRIMARY KEY(id)) ENGINE=$engine_type
PARTITION BY RANGE(id)
SUBPARTITION BY hash(id) subpartitions 2
(PARTITION pa1 values less than (10),
PARTITION pa2 values less than (20),
PARTITION pa3 values less than (30),
PARTITION pa4 values less than (40),
PARTITION pa5 values less than (50),
PARTITION pa6 values less than (60),
PARTITION pa7 values less than (70),
PARTITION pa8 values less than (80),
PARTITION pa9 values less than (90),
PARTITION pa10 values less than (100),
PARTITION pa11 values less than MAXVALUE);
######## Create SPs, Functions, Views and Triggers Section ##############
delimiter |;
CREATE PROCEDURE test.proc_norm()
BEGIN
DECLARE ins_count INT DEFAULT 1000;
DECLARE del_count INT;
DECLARE cur_user VARCHAR(255);
DECLARE local_uuid VARCHAR(255);
DECLARE local_time TIMESTAMP;
SET local_time= NOW();
SET cur_user= CURRENT_USER();
SET local_uuid= UUID();
WHILE ins_count > 0 DO
INSERT INTO test.regular_tbl VALUES (NULL, NOW(), USER() , UUID(),
ins_count,'Going to test MBR for MySQL');
SET ins_count = ins_count - 1;
END WHILE;
SELECT MAX(id) FROM test.regular_tbl INTO del_count;
WHILE del_count > 0 DO
DELETE FROM test.regular_tbl WHERE id = del_count;
SET del_count = del_count - 2;
END WHILE;
END|
CREATE PROCEDURE test.proc_bykey()
BEGIN
DECLARE ins_count INT DEFAULT 1000;
DECLARE del_count INT;
DECLARE cur_user VARCHAR(255);
DECLARE local_uuid VARCHAR(255);
DECLARE local_time TIMESTAMP;
SET local_time= NOW();
SET cur_user= CURRENT_USER();
SET local_uuid= UUID();
WHILE ins_count > 0 DO
INSERT INTO test.bykey_tbl VALUES (NULL, NOW(), USER() , UUID(),
ins_count,'Going to test MBR for MySQL');
SET ins_count = ins_count - 1;
END WHILE;
SELECT MAX(id) FROM test.bykey_tbl INTO del_count;
WHILE del_count > 0 DO
DELETE FROM test.bykey_tbl WHERE id = del_count;
SET del_count = del_count - 2;
END WHILE;
END|
CREATE PROCEDURE test.proc_byrange()
BEGIN
DECLARE ins_count INT DEFAULT 1000;
DECLARE del_count INT;
DECLARE cur_user VARCHAR(255);
DECLARE local_uuid VARCHAR(255);
DECLARE local_time TIMESTAMP;
SET local_time= NOW();
SET cur_user = CURRENT_USER();
SET local_uuid=UUID();
WHILE ins_count > 0 DO
INSERT INTO test.byrange_tbl VALUES (NULL, NOW(), USER(), UUID(),
ins_count,'Going to test MBR for MySQL');
SET ins_count = ins_count - 1;
END WHILE;
SELECT MAX(id) FROM test.byrange_tbl INTO del_count;
WHILE del_count > 0 DO
DELETE FROM test.byrange_tbl WHERE id = del_count;
SET del_count = del_count - 2;
END WHILE;
END|
delimiter ;|
############ Finish Setup Section ###################
############ Test Section ###################
CALL test.proc_norm();
SELECT count(*) as "Master regular" FROM test.regular_tbl;
CALL test.proc_bykey();
SELECT count(*) as "Master bykey" FROM test.bykey_tbl;
CALL test.proc_byrange();
SELECT count(*) as "Master byrange" FROM test.byrange_tbl;
--sync_slave_with_master
connection slave;
show create table test.byrange_tbl;
SELECT count(*) "Slave norm" FROM test.regular_tbl;
SELECT count(*) "Slave bykey" FROM test.bykey_tbl;
SELECT count(*) "Slave byrange" FROM test.byrange_tbl;
###### CLEAN UP SECTION ##############
Bug#30907 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" Bug#28430 "Failure in replication of innodb partitioned tables on row/mixed format" Bug#30888 "Innodb table + stored procedure + row deletion = server crash" Apply Oracle patch from Sunny Include tests cases by Omer Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/handler/ha_innodb.cc: Bug30907/28430 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" "Failure in replication of innodb partitioned tables on row/mixed format" Apply Oracle patch from Sunny Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/row/row0sel.c: Bug30888 "Innodb table + stored procedure + row deletion = server crash" Remove endian-specific code. Fix function row_search_autoinc_read_column() to handle any integer size up to 8 bytes. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug28430.result'' mysql-test/suite/rpl/r/rpl_innodb_bug30888.result: New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30888.result'' mysql-test/suite/rpl/t/rpl_innodb-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430.test'' mysql-test/suite/rpl/t/rpl_innodb_bug30888.test: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30888.test''
2007-09-08 11:19:35 -07:00
connection master;
DROP PROCEDURE test.proc_norm;
DROP PROCEDURE test.proc_bykey;
DROP PROCEDURE test.proc_byrange;
DROP TABLE test.regular_tbl;
DROP TABLE test.bykey_tbl;
DROP TABLE test.byrange_tbl;
--source include/master-slave-end.inc