diff options
Diffstat (limited to 'mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test')
-rw-r--r-- | mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test new file mode 100644 index 00000000000..1f446938775 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test @@ -0,0 +1,70 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc +--source include/big_test.inc + +# +# This test creates a new FK constraint while concurrent INSERTS are running +# + +CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB; +INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); + +CREATE TABLE parent ( + id INT PRIMARY KEY AUTO_INCREMENT, + f2 INTEGER, + KEY (id) +) ENGINE=InnoDB; + +CREATE TABLE child ( + id INT PRIMARY KEY AUTO_INCREMENT, + parent_id INT +) ENGINE=InnoDB; + +INSERT INTO parent VALUES (DEFAULT, 0); + +--connection node_2 +--send INSERT INTO child (parent_id) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; + +--let $galera_connection_name = node_1a +--let $galera_server_number = 1 +--source include/galera_connect.inc +--connection node_1a +--send INSERT INTO parent (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; + +--let $galera_connection_name = node_2a +--let $galera_server_number = 2 +--source include/galera_connect.inc +--connection node_2a +--send INSERT INTO parent (f2) SELECT 2 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; + +--let $galera_connection_name = node_1b +--let $galera_server_number = 1 +--source include/galera_connect.inc +--connection node_1b +--sleep 2 +--send ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(id); + +--connection node_1a +--reap + +--connection node_1b +--reap + +--connection node_2 +--reap + +--connection node_2a +--reap + +--connection node_1 +SELECT COUNT(*) = 20001 FROM parent; +SELECT COUNT(*) = 10000 FROM child; + +--connection node_2 +SELECT COUNT(*) = 20001 FROM parent; +SELECT COUNT(*) = 10000 FROM child; + +DROP TABLE child; +DROP TABLE parent; + +DROP TABLE ten; |