List:Commits« Previous MessageNext Message »
From:Serge Kozlov Date:March 31 2008 4:51pm
Subject:bk commit into 5.1 tree (skozlov:1.2552)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of skozlov.  When skozlov does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2008-03-31 20:51:30+04:00, skozlov@stripped +4 -0
  WL#3734, Slave group execution

  mysql-test/suite/rpl/r/rpl_slave_grp_exec.result@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +170 -0
    Result file

  mysql-test/suite/rpl/r/rpl_slave_grp_exec.result@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +0 -0

  mysql-test/suite/rpl/t/rpl_slave_grp_exec-master.opt@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +1 -0
    Option file for master

  mysql-test/suite/rpl/t/rpl_slave_grp_exec-master.opt@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +0 -0

  mysql-test/suite/rpl/t/rpl_slave_grp_exec-slave.opt@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +1 -0
    Option file for slave

  mysql-test/suite/rpl/t/rpl_slave_grp_exec-slave.opt@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +0 -0

  mysql-test/suite/rpl/t/rpl_slave_grp_exec.test@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +183 -0
    Test case

  mysql-test/suite/rpl/t/rpl_slave_grp_exec.test@stripped, 2008-03-31 20:51:28+04:00, skozlov@stripped +0 -0

diff -Nrup a/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result b/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result	2008-03-31 20:51:28 +04:00
@@ -0,0 +1,170 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+
+*** Preparing data ***
+CREATE TABLE t1 (a INT NOT NULL, b LONGTEXT) ENGINE=MyISAM;
+CREATE TABLE t2 LIKE t1;
+CREATE TABLE t3 LIKE t1;
+CREATE TABLE t4 LIKE t1;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1
+FOR EACH ROW BEGIN
+SET @counter1 = 11;
+REPEAT
+SET @f = REPLACE(NEW.b,'a','bb');
+INSERT INTO t2 VALUES (@id2, @f); 
+SET @counter1 = @counter1 - 1;
+SET @id2 = @id2 + 1;
+UNTIL @counter1= 0      
+END REPEAT;
+INSERT INTO t4 VALUES(NEW.a, NEW.b);
+END|
+CREATE TRIGGER tr2 BEFORE INSERT ON t2
+FOR EACH ROW BEGIN
+SET @counter2 = 11;
+REPEAT
+SET @f = REPLACE(NEW.b,'b','cc');
+INSERT INTO t3 VALUES (@id3, @f); 
+SET @counter2 = @counter2 - 1;
+SET @id3 = @id3 + 1;
+UNTIL @counter2= 0      
+END REPEAT;
+END|
+
+*** Test non-transactional group ***
+RENAME TABLE t4 TO t4_bak;
+SET @id2 = 100;
+SET @id3 = 10000;
+SET @buf= REPEAT('a', 1000);
+INSERT INTO t1 VALUES(1, @buf);
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+11
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+121
+SELECT COUNT(*) FROM t4 ORDER BY a;
+COUNT(*)
+1
+SHOW TABLES LIKE 't%';
+Tables_in_test (t%)
+t1
+t2
+t3
+t4_bak
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+0
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+11_for_stmt_or_0_for_row
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+121_for_stmt_or_0_for_row
+STOP SLAVE;
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+
+*** Test non-transactional group w/ PK ***
+ALTER TABLE t1 ADD PRIMARY KEY (a);
+ALTER TABLE t2 ADD PRIMARY KEY (a);
+ALTER TABLE t3 ADD PRIMARY KEY (a);
+ALTER TABLE t4 ADD PRIMARY KEY (a);
+RENAME TABLE t4 TO t4_bak;
+SET @id2 = 100;
+SET @id3 = 10000;
+INSERT INTO t1 VALUES(1, @buf);
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+1
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+11
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+121
+SELECT COUNT(*) FROM t4 ORDER BY a;
+COUNT(*)
+1
+SHOW TABLES LIKE 't%';
+Tables_in_test (t%)
+t1
+t2
+t3
+t4_bak
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+0
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+0
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+0
+STOP SLAVE;
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+
+*** Test transactional group w/ PK ***
+ALTER TABLE t1 ENGINE=InnoDB;
+ALTER TABLE t2 ENGINE=InnoDB;
+ALTER TABLE t3 ENGINE=InnoDB;
+ALTER TABLE t4 ENGINE=InnoDB;
+RENAME TABLE t4 TO t4_bak;
+SET @id2 = 100;
+SET @id3 = 10000;
+BEGIN;
+INSERT INTO t1 VALUES(1, @buf);
+INSERT INTO t1 VALUES(2, @buf);
+COMMIT;
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+2
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+22
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+242
+SELECT COUNT(*) FROM t4 ORDER BY a;
+COUNT(*)
+2
+SHOW TABLES LIKE 't%';
+Tables_in_test (t%)
+t1
+t2
+t3
+t4_bak
+SELECT COUNT(*) FROM t1 ORDER BY a;
+COUNT(*)
+0
+SELECT COUNT(*) FROM t2 ORDER BY a;
+COUNT(*)
+0
+SELECT COUNT(*) FROM t3 ORDER BY a;
+COUNT(*)
+0
+STOP SLAVE;
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+
+*** Clean up ***
+DROP TABLE t1,t2,t3,t4;
diff -Nrup a/mysql-test/suite/rpl/t/rpl_slave_grp_exec-master.opt b/mysql-test/suite/rpl/t/rpl_slave_grp_exec-master.opt
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/rpl/t/rpl_slave_grp_exec-master.opt	2008-03-31 20:51:28 +04:00
@@ -0,0 +1 @@
+--innodb
diff -Nrup a/mysql-test/suite/rpl/t/rpl_slave_grp_exec-slave.opt b/mysql-test/suite/rpl/t/rpl_slave_grp_exec-slave.opt
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/rpl/t/rpl_slave_grp_exec-slave.opt	2008-03-31 20:51:28 +04:00
@@ -0,0 +1 @@
+--innodb
diff -Nrup a/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test b/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/rpl/t/rpl_slave_grp_exec.test	2008-03-31 20:51:28 +04:00
@@ -0,0 +1,183 @@
+#############################################################
+# Author: Serge Kozlov <skozlov@stripped>
+# Date:   03/21/2008
+# Purpose: Testing slave group execution: stop in middle
+# of a group (of events) should be immpossible on slave.
+#############################################################
+--source include/have_innodb.inc
+--source include/master-slave.inc
+--echo
+
+--connection master
+let $master_log_file= query_get_value(SHOW MASTER STATUS, File, 1);
+
+# Create tables and data
+--echo *** Preparing data ***
+--connection master
+CREATE TABLE t1 (a INT NOT NULL, b LONGTEXT) ENGINE=MyISAM;
+CREATE TABLE t2 LIKE t1;
+CREATE TABLE t3 LIKE t1;
+CREATE TABLE t4 LIKE t1;
+
+DELIMITER |;
+CREATE TRIGGER tr1 BEFORE INSERT ON t1
+  FOR EACH ROW BEGIN
+    SET @counter1 = 11;
+    REPEAT
+      SET @f = REPLACE(NEW.b,'a','bb');
+      INSERT INTO t2 VALUES (@id2, @f); 
+      SET @counter1 = @counter1 - 1;
+      SET @id2 = @id2 + 1;
+    UNTIL @counter1= 0      
+    END REPEAT;
+    INSERT INTO t4 VALUES(NEW.a, NEW.b);
+  END|
+CREATE TRIGGER tr2 BEFORE INSERT ON t2
+  FOR EACH ROW BEGIN
+    SET @counter2 = 11;
+    REPEAT
+      SET @f = REPLACE(NEW.b,'b','cc');
+      INSERT INTO t3 VALUES (@id3, @f); 
+      SET @counter2 = @counter2 - 1;
+      SET @id3 = @id3 + 1;
+    UNTIL @counter2= 0      
+    END REPEAT;
+  END|
+DELIMITER ;|
+--sync_slave_with_master
+--echo
+
+# Test non-transactional group with MyISAM tables w/o PK
+--echo *** Test non-transactional group ***
+
+--connection slave
+RENAME TABLE t4 TO t4_bak;
+
+--connection master
+SET @id2 = 100;
+SET @id3 = 10000;
+SET @buf= REPEAT('a', 1000);
+INSERT INTO t1 VALUES(1, @buf);
+SELECT COUNT(*) FROM t1 ORDER BY a;
+SELECT COUNT(*) FROM t2 ORDER BY a;
+SELECT COUNT(*) FROM t3 ORDER BY a;
+SELECT COUNT(*) FROM t4 ORDER BY a;
+
+--connection slave
+--source include/wait_for_slave_sql_to_stop.inc
+SHOW TABLES LIKE 't%';
+SELECT COUNT(*) FROM t1 ORDER BY a;
+--replace_regex /(0|11)/11_for_stmt_or_0_for_row/
+SELECT COUNT(*) FROM t2 ORDER BY a;
+--replace_regex /(0|121)/121_for_stmt_or_0_for_row/
+SELECT COUNT(*) FROM t3 ORDER BY a;
+
+STOP SLAVE;
+--source include/wait_for_slave_to_stop.inc
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
+
+--connection master
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+--sync_slave_with_master
+--echo
+
+
+# Test non-transactional group with MyISAM tables with PK
+--echo *** Test non-transactional group w/ PK ***
+
+--connection master
+ALTER TABLE t1 ADD PRIMARY KEY (a);
+ALTER TABLE t2 ADD PRIMARY KEY (a);
+ALTER TABLE t3 ADD PRIMARY KEY (a);
+ALTER TABLE t4 ADD PRIMARY KEY (a);
+
+--connection slave
+RENAME TABLE t4 TO t4_bak;
+
+--connection master
+SET @id2 = 100;
+SET @id3 = 10000;
+INSERT INTO t1 VALUES(1, @buf);
+SELECT COUNT(*) FROM t1 ORDER BY a;
+SELECT COUNT(*) FROM t2 ORDER BY a;
+SELECT COUNT(*) FROM t3 ORDER BY a;
+SELECT COUNT(*) FROM t4 ORDER BY a;
+
+--connection slave
+--source include/wait_for_slave_sql_to_stop.inc
+SHOW TABLES LIKE 't%';
+SELECT COUNT(*) FROM t1 ORDER BY a;
+SELECT COUNT(*) FROM t2 ORDER BY a;
+SELECT COUNT(*) FROM t3 ORDER BY a;
+
+STOP SLAVE;
+--source include/wait_for_slave_to_stop.inc
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
+
+--connection master
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+--sync_slave_with_master
+--echo
+
+
+# Test transactional group with InnoDB tables with PK
+--echo *** Test transactional group w/ PK ***
+
+--connection master
+ALTER TABLE t1 ENGINE=InnoDB;
+ALTER TABLE t2 ENGINE=InnoDB;
+ALTER TABLE t3 ENGINE=InnoDB;
+ALTER TABLE t4 ENGINE=InnoDB;
+
+--connection slave
+RENAME TABLE t4 TO t4_bak;
+
+--connection master
+SET @id2 = 100;
+SET @id3 = 10000;
+BEGIN;
+INSERT INTO t1 VALUES(1, @buf);
+INSERT INTO t1 VALUES(2, @buf);
+COMMIT;
+SELECT COUNT(*) FROM t1 ORDER BY a;
+SELECT COUNT(*) FROM t2 ORDER BY a;
+SELECT COUNT(*) FROM t3 ORDER BY a;
+SELECT COUNT(*) FROM t4 ORDER BY a;
+
+--connection slave
+--source include/wait_for_slave_sql_to_stop.inc
+SHOW TABLES LIKE 't%';
+SELECT COUNT(*) FROM t1 ORDER BY a;
+SELECT COUNT(*) FROM t2 ORDER BY a;
+SELECT COUNT(*) FROM t3 ORDER BY a;
+
+STOP SLAVE;
+--source include/wait_for_slave_to_stop.inc
+RENAME TABLE t4_bak TO t4;
+START SLAVE;
+--source include/wait_for_slave_to_start.inc
+
+--connection master
+DELETE FROM t1;
+DELETE FROM t2;
+DELETE FROM t3;
+DELETE FROM t4;
+
+--sync_slave_with_master
+--echo
+
+
+# Clean up
+--echo *** Clean up ***
+--connection master
+DROP TABLE t1,t2,t3,t4;
Thread
bk commit into 5.1 tree (skozlov:1.2552)Serge Kozlov31 Mar