Hi Serge!
The patch looks good, but I would like to have the title of the test
case in the cset comment, as well as a description of the problem and
how the patch solves the problem.
Comments inline below.
Just my few cents,
Mats Kindahl
Serge Kozlov wrote:
> 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-04-02 00:44:36+04:00, skozlov@stripped +2 -0
> Bug#30128
>
The title for the test case is missing, as is a description of what the
problem was and how the patch solves the problem.
> mysql-test/include/rpl_events.inc@stripped, 2008-04-02 00:44:34+04:00, skozlov@stripped
> +4 -4
> Updated test file
>
> mysql-test/suite/rpl/r/rpl_events.result@stripped, 2008-04-02 00:44:34+04:00,
> skozlov@stripped +8 -8
> Updated result file
>
> diff -Nrup a/mysql-test/include/rpl_events.inc b/mysql-test/include/rpl_events.inc
> --- a/mysql-test/include/rpl_events.inc 2007-08-10 01:18:31 +04:00
> +++ b/mysql-test/include/rpl_events.inc 2008-04-02 00:44:34 +04:00
> @@ -63,7 +63,7 @@ SELECT db, name, status, originator FROM
> DROP EVENT IF EXISTS test.slave_once;
> --enable_warnings
>
> -CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
> +CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP +
> INTERVAL 1 HOUR DO
>
It could be good to add a comment to what the purpose of the event is
(i.e., that it is not supposed to be executed, but rather the intention
is to create the event and ensure that it is disabled on the slave).
> INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
>
> --echo "Checking event status on the slave for originator value = slave's
> server_id"
> @@ -83,7 +83,7 @@ DROP EVENT IF EXISTS test.justonce;
> --enable_warnings
>
> --echo "Creating event test.er on the master"
> -CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL
> 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
>
> --echo "Checking event status on the master"
> @@ -96,7 +96,7 @@ SELECT db, name, status, originator, bod
>
> connection master;
> --echo "Altering event test.er on the master"
> -ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
> +ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 1
> HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
>
> --echo "Checking event status on the master"
> @@ -125,7 +125,7 @@ SELECT db, name, status, originator FROM
> # on CREATE EVENT
>
> --echo "Creating event test.slave_terminate on the slave"
> -CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND STARTS
> CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
>
> --echo "Checking event status on the slave"
> diff -Nrup a/mysql-test/suite/rpl/r/rpl_events.result
> b/mysql-test/suite/rpl/r/rpl_events.result
> --- a/mysql-test/suite/rpl/r/rpl_events.result 2008-02-14 12:52:59 +03:00
> +++ b/mysql-test/suite/rpl/r/rpl_events.result 2008-04-02 00:44:34 +04:00
> @@ -40,7 +40,7 @@ db name status originator
> test justonce SLAVESIDE_DISABLED 1
> "Dropping event test.slave_once on the slave"
> DROP EVENT IF EXISTS test.slave_once;
> -CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
> +CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP +
> INTERVAL 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
> "Checking event status on the slave for originator value = slave's server_id"
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name =
> 'slave_once';
> @@ -51,7 +51,7 @@ DROP EVENT IF EXISTS test.slave_once;
> "Dropping event test.justonce on the master"
> DROP EVENT IF EXISTS test.justonce;
> "Creating event test.er on the master"
> -CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL
> 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
> "Checking event status on the master"
> SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND
> name = 'er';
> @@ -62,7 +62,7 @@ SELECT db, name, status, originator, bod
> db name status originator body
> test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
> "Altering event test.er on the master"
> -ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
> +ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 1
> HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
> "Checking event status on the master"
> SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND
> name = 'er';
> @@ -81,7 +81,7 @@ db name status originator
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
> db name status originator
> "Creating event test.slave_terminate on the slave"
> -CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND STARTS
> CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
> "Checking event status on the slave"
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name =
> 'slave_terminate';
> @@ -135,7 +135,7 @@ db name status originator
> test justonce SLAVESIDE_DISABLED 1
> "Dropping event test.slave_once on the slave"
> DROP EVENT IF EXISTS test.slave_once;
> -CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO
> +CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP +
> INTERVAL 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
> "Checking event status on the slave for originator value = slave's server_id"
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name =
> 'slave_once';
> @@ -146,7 +146,7 @@ DROP EVENT IF EXISTS test.slave_once;
> "Dropping event test.justonce on the master"
> DROP EVENT IF EXISTS test.justonce;
> "Creating event test.er on the master"
> -CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL
> 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
> "Checking event status on the master"
> SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND
> name = 'er';
> @@ -157,7 +157,7 @@ SELECT db, name, status, originator, bod
> db name status originator body
> test er SLAVESIDE_DISABLED 1 INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er')
> "Altering event test.er on the master"
> -ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO
> +ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 1
> HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
> "Checking event status on the master"
> SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND
> name = 'er';
> @@ -176,7 +176,7 @@ db name status originator
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
> db name status originator
> "Creating event test.slave_terminate on the slave"
> -CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO
> +CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND STARTS
> CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO
> INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
> "Checking event status on the slave"
> SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name =
> 'slave_terminate';
>
>
--
Mats Kindahl
Lead Software Developer
Replication Team
MySQL AB, www.mysql.com