List:Commits« Previous MessageNext Message »
From:Serge Kozlov Date:August 27 2007 2:44pm
Subject:bk commit into 5.1 tree (skozlov:1.2564) BUG#29020
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of ksm. When ksm 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, 2007-08-27 18:44:13+04:00, skozlov@stripped +3 -0
  WL#3694 Replication of Invocation and Invoked Features Testing.
  Bug#29020 Event results not correctly replicated to slave in RBR: partially.

  mysql-test/suite/rpl/r/rpl_invoked_features.result@stripped, 2007-08-27 18:44:03+04:00, skozlov@stripped +14 -16
    Updated result file.

  mysql-test/suite/rpl/t/disabled.def@stripped, 2007-08-27 18:44:03+04:00, skozlov@stripped +0 -3
    removed test cases: rpl_invoked_features and rpl_innodb_mixed_* (alreade were commented out)

  mysql-test/suite/rpl/t/rpl_invoked_features.test@stripped, 2007-08-27 18:44:03+04:00, skozlov@stripped +49 -31
    Added comments, implemented the waiting via include/wait_condition, minor fixes.

diff -Nrup a/mysql-test/suite/rpl/r/rpl_invoked_features.result b/mysql-test/suite/rpl/r/rpl_invoked_features.result
--- a/mysql-test/suite/rpl/r/rpl_invoked_features.result	2007-06-27 16:44:13 +04:00
+++ b/mysql-test/suite/rpl/r/rpl_invoked_features.result	2007-08-27 18:44:03 +04:00
@@ -17,13 +17,13 @@ DROP EVENT IF EXISTS e11;
 CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT, c VARCHAR(64)) ENGINE=myisam;
 INSERT INTO t1 VALUES (1,1,'1');
 INSERT INTO t1 VALUES (2,2,UUID());
-CREATE TABLE t2 (a INT, b INT, c VARCHAR(64)) ENGINE=myisam;
+CREATE TABLE t2 (a INT UNIQUE, b INT, c VARCHAR(64)) ENGINE=myisam;
 INSERT INTO t2 VALUES (1,1,'1');
 INSERT INTO t2 VALUES (2,2,UUID());
 CREATE TABLE t11 (a INT NOT NULL PRIMARY KEY, b INT, c VARCHAR(64)) ENGINE=innodb;
 INSERT INTO t11 VALUES (1,1,'1');
 INSERT INTO t11 VALUES (2,2,UUID());
-CREATE TABLE t12 (a INT, b INT, c VARCHAR(64)) ENGINE=innodb;
+CREATE TABLE t12 (a INT UNIQUE, b INT, c VARCHAR(64)) ENGINE=innodb;
 INSERT INTO t12 VALUES (1,1,'1');
 INSERT INTO t12 VALUES (2,2,UUID());
 
@@ -49,21 +49,15 @@ BEGIN
 UPDATE t12 SET c = '';
 UPDATE t13 SET c = '';
 END|
-CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND ENABLE DO
+CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND DISABLE DO
 BEGIN
-DECLARE c INT;
-SELECT a INTO c FROM t1 WHERE a < 11 ORDER BY a DESC LIMIT 1;
-IF c = 7 THEN
+ALTER EVENT e1 DISABLE;
 CALL p1(10, '');  
-END IF;
 END|
-CREATE EVENT e11 ON SCHEDULE EVERY 1 SECOND ENABLE DO
+CREATE EVENT e11 ON SCHEDULE EVERY 1 SECOND DISABLE DO
 BEGIN
-DECLARE c INT;
-SELECT a INTO c FROM t11 WHERE a < 11 ORDER BY a DESC LIMIT 1;
-IF c = 7 THEN
+ALTER EVENT e11 DISABLE;
 CALL p11(10, '');  
-END IF;
 END|
 CREATE FUNCTION f1 (x INT) RETURNS VARCHAR(64)
 BEGIN
@@ -78,11 +72,11 @@ RETURN f1(x);
 END|
 CREATE PROCEDURE p1 (IN x INT, IN y VARCHAR(64))
 BEGIN
-INSERT INTO t1 VALUES (x,x,y);
+INSERT IGNORE INTO t1 VALUES (x,x,y);
 END|
 CREATE PROCEDURE p11 (IN x INT, IN y VARCHAR(64))
 BEGIN
-INSERT INTO t11 VALUES (x,x,y);
+INSERT IGNORE INTO t11 VALUES (x,x,y);
 END|
 
 CREATE TABLE t3 SELECT * FROM v1;
@@ -110,6 +104,8 @@ INSERT INTO t11 VALUES(7,7,f2(7));
 INSERT INTO t11 VALUES (103,103,'');
 
 SET GLOBAL EVENT_SCHEDULER = on;
+ALTER EVENT e1 ENABLE;
+ALTER EVENT e11 ENABLE;
 SET GLOBAL EVENT_SCHEDULER = off;
 
 SHOW TABLES LIKE 't%';
@@ -138,8 +134,8 @@ PROCEDURE	p1
 PROCEDURE	p11
 SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
 event_name	status
-e1	ENABLED
-e11	ENABLED
+e1	DISABLED
+e11	DISABLED
 
 SELECT COUNT(*) FROM t1;
 COUNT(*)
@@ -438,6 +434,8 @@ UPDATE t3 SET c='';
 UPDATE t11 SET c='';
 UPDATE t12 SET c='';
 UPDATE t13 SET c='';
+ALTER TABLE t3 ORDER BY a;
+ALTER TABLE t13 ORDER BY a;
 
 
 
diff -Nrup a/mysql-test/suite/rpl/t/disabled.def b/mysql-test/suite/rpl/t/disabled.def
--- a/mysql-test/suite/rpl/t/disabled.def	2007-08-20 12:31:11 +04:00
+++ b/mysql-test/suite/rpl/t/disabled.def	2007-08-27 18:44:03 +04:00
@@ -11,9 +11,6 @@
 ##############################################################################
 
 rpl_ddl                  : BUG#26418 2007-03-01 mleich Slave out of sync after CREATE/DROP TEMPORARY TABLE + ROLLBACK on master
-#rpl_innodb_mixed_ddl     : Bug #29363 rpl.rpl_innodb_mixed_* test failures
-#rpl_innodb_mixed_dml     : Bug #29363 rpl.rpl_innodb_mixed_* test failures
-rpl_invoked_features     : BUG#29020 2007-06-21 Lars Non-deterministic test case
 rpl_auto_increment_11932   : Bug#29809 2007-07-16 ingo Slave SQL errors in warnings file
 rpl_stm_extraColmaster_ndb : WL#3915 : Statement-based replication not supported in ndb. Enable test when supported.
 rpl_row_extraColmaster_ndb : BUG#29549 : Replication of BLOBs fail for NDB
diff -Nrup a/mysql-test/suite/rpl/t/rpl_invoked_features.test b/mysql-test/suite/rpl/t/rpl_invoked_features.test
--- a/mysql-test/suite/rpl/t/rpl_invoked_features.test	2007-06-27 16:44:05 +04:00
+++ b/mysql-test/suite/rpl/t/rpl_invoked_features.test	2007-08-27 18:44:03 +04:00
@@ -8,10 +8,9 @@
 --source include/master-slave.inc
 --source include/have_innodb.inc
 
-
-#
-# Define variables used by test case
-#
+# --disable_warnings/--enable_warnings added before/after query 
+# if one uses UUID() function because we need to avoid warnings
+# for STATEMENT binlog format
 
 # Non-transactional engine
 --let $engine_type= myisam
@@ -45,20 +44,24 @@ DROP EVENT IF EXISTS e11;
 
 --echo
 eval CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT, c VARCHAR(64)) ENGINE=$engine_type;
---disable_warnings
 INSERT INTO t1 VALUES (1,1,'1');
+--disable_warnings
 INSERT INTO t1 VALUES (2,2,UUID());
-eval CREATE TABLE t2 (a INT, b INT, c VARCHAR(64)) ENGINE=$engine_type;
+--enable_warnings
+eval CREATE TABLE t2 (a INT UNIQUE, b INT, c VARCHAR(64)) ENGINE=$engine_type;
 INSERT INTO t2 VALUES (1,1,'1');
+--disable_warnings
 INSERT INTO t2 VALUES (2,2,UUID());
 --enable_warnings
 
 eval CREATE TABLE t11 (a INT NOT NULL PRIMARY KEY, b INT, c VARCHAR(64)) ENGINE=$engine_type2;
---disable_warnings
 INSERT INTO t11 VALUES (1,1,'1');
+--disable_warnings
 INSERT INTO t11 VALUES (2,2,UUID());
-eval CREATE TABLE t12 (a INT, b INT, c VARCHAR(64)) ENGINE=$engine_type2;
+--enable_warnings
+eval CREATE TABLE t12 (a INT UNIQUE, b INT, c VARCHAR(64)) ENGINE=$engine_type2;
 INSERT INTO t12 VALUES (1,1,'1');
+--disable_warnings
 INSERT INTO t12 VALUES (2,2,UUID());
 --enable_warnings
 
@@ -96,22 +99,16 @@ BEGIN
 END|
 
 # Create events which will run every 1 sec
-CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND ENABLE DO
+CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND DISABLE DO
 BEGIN
-  DECLARE c INT;
-  SELECT a INTO c FROM t1 WHERE a < 11 ORDER BY a DESC LIMIT 1;
-  IF c = 7 THEN
-    CALL p1(10, '');  
-  END IF;
+  ALTER EVENT e1 DISABLE;
+  CALL p1(10, '');  
 END|
 
-CREATE EVENT e11 ON SCHEDULE EVERY 1 SECOND ENABLE DO
+CREATE EVENT e11 ON SCHEDULE EVERY 1 SECOND DISABLE DO
 BEGIN
-  DECLARE c INT;
-  SELECT a INTO c FROM t11 WHERE a < 11 ORDER BY a DESC LIMIT 1;
-  IF c = 7 THEN
-    CALL p11(10, '');  
-  END IF;
+  ALTER EVENT e11 DISABLE;
+  CALL p11(10, '');  
 END|
 
 # Create functions and procedures used for events
@@ -130,12 +127,12 @@ END|
 
 CREATE PROCEDURE p1 (IN x INT, IN y VARCHAR(64))
 BEGIN
-  INSERT INTO t1 VALUES (x,x,y);
+  INSERT IGNORE INTO t1 VALUES (x,x,y);
 END|
 
 CREATE PROCEDURE p11 (IN x INT, IN y VARCHAR(64))
 BEGIN
-  INSERT INTO t11 VALUES (x,x,y);
+  INSERT IGNORE INTO t11 VALUES (x,x,y);
 END|
 
 DELIMITER ;|
@@ -147,17 +144,24 @@ DELIMITER ;|
 
 # Do some actions for non-transactional tables
 --echo
---disable_warnings
 CREATE TABLE t3 SELECT * FROM v1;
 INSERT INTO t1 VALUES (3,3,'');
 UPDATE t1 SET c='2' WHERE a = 1;
+--disable_warnings
 INSERT INTO t1 VALUES(4,4,f1(4));
+--enable_warnings
 INSERT INTO t1 VALUES (100,100,'');
+--disable_warnings
 CALL p1(5, UUID());
+--enable_warnings
 INSERT INTO t1 VALUES (101,101,'');
+--disable_warnings
 INSERT INTO t1 VALUES(6,6,f1(6));
+--enable_warnings
 INSERT INTO t1 VALUES (102,102,'');
+--disable_warnings
 INSERT INTO t1 VALUES(7,7,f2(7));
+--enable_warnings
 INSERT INTO t1 VALUES (103,103,'');
 
 # Do some actions for transactional tables
@@ -165,21 +169,34 @@ INSERT INTO t1 VALUES (103,103,'');
 CREATE TABLE t13 SELECT * FROM v11;
 INSERT INTO t11 VALUES (3,3,'');
 UPDATE t11 SET c='2' WHERE a = 1;
+--disable_warnings
 INSERT INTO t11 VALUES(4,4,f1(4));
+--enable_warnings
 INSERT INTO t11 VALUES (100,100,'');
+--disable_warnings
 CALL p11(5, UUID());
+--enable_warnings
 INSERT INTO t11 VALUES (101,101,'');
+--disable_warnings
 INSERT INTO t11 VALUES(6,6,f1(6));
+--enable_warnings
 INSERT INTO t11 VALUES (102,102,'');
+--disable_warnings
 INSERT INTO t11 VALUES(7,7,f2(7));
-INSERT INTO t11 VALUES (103,103,'');
 --enable_warnings
+INSERT INTO t11 VALUES (103,103,'');
 
 # Scheduler is on
 --echo
+# Temporally events fire sequentally due Bug#29020.
 SET GLOBAL EVENT_SCHEDULER = on;
-# Wait 2 sec while events will executed
---sleep 2
+# Wait while events will executed
+ALTER EVENT e1 ENABLE;
+let $wait_condition= SELECT COUNT(*) = 1 FROM t1 WHERE t1.a = 10;
+--source include/wait_condition.inc
+ALTER EVENT e11 ENABLE;
+let $wait_condition= SELECT COUNT(*) = 1 FROM t11 WHERE t11.a = 10;
+--source include/wait_condition.inc
 SET GLOBAL EVENT_SCHEDULER = off;
 
 # Check original objects
@@ -234,7 +251,7 @@ SELECT COUNT(*) FROM t13;
 SELECT a,b FROM t13 ORDER BY a;
 SELECT a,b FROM v11 ORDER BY a;
 
-# Remove UUID() before comparing
+# Remove UUID() before comparing and sort tables
 
 --connection master
 --echo
@@ -245,6 +262,9 @@ UPDATE t11 SET c='';
 UPDATE t12 SET c='';
 UPDATE t13 SET c='';
 
+ALTER TABLE t3 ORDER BY a;
+ALTER TABLE t13 ORDER BY a;
+
 --sync_slave_with_master slave
 
 # Compare a data from master and slave
@@ -260,13 +280,12 @@ UPDATE t13 SET c='';
 
 # Remove dumps
 --echo
---exec rm $MYSQLTEST_VARDIR/tmp/rpl_invoked_features_master.sql
---exec rm $MYSQLTEST_VARDIR/tmp/rpl_invoked_features_slave.sql
+#--exec rm $MYSQLTEST_VARDIR/tmp/rpl_invoked_features_master.sql
+#--exec rm $MYSQLTEST_VARDIR/tmp/rpl_invoked_features_slave.sql
 
 # Remove tables,views,procedures,functions
 --connection master
 --echo
---disable_warnings
 DROP VIEW IF EXISTS v1,v11;
 DROP TABLE IF EXISTS t1,t2,t3,t11,t12,t13;
 DROP PROCEDURE IF EXISTS p1;
@@ -275,7 +294,6 @@ DROP FUNCTION IF EXISTS f1;
 DROP FUNCTION IF EXISTS f2;
 DROP EVENT IF EXISTS e1;
 DROP EVENT IF EXISTS e11;
---enable_warnings
 
 --sync_slave_with_master slave
 
Thread
bk commit into 5.1 tree (skozlov:1.2564) BUG#29020Serge Kozlov27 Aug
  • RE: bk commit into 5.1 tree (skozlov:1.2564) BUG#29020Chuck Bell28 Aug
  • Re: bk commit into 5.1 tree (skozlov:1.2564) BUG#29020Magnus Svensson7 Sep
    • Re: bk commit into 5.1 tree (skozlov:1.2564) BUG#29020Serge Kozlov7 Sep