WL#3629 - Replication of Invocation and Invoked Features
This patch removes the SLAVESIDE_DISABLED token from the event status clause and adds the ability to mark an event as status = SLAVESIDE_DISABLED by using the syntax DISABLE ON SLAVE instead. The patch also adds tests to rpl_events to check the new syntax. mysql-test/include/rpl_events.inc: WL#3629 - Replication of Invocation and Invoked Features This patch adds tests to check the SQL syntax change from SLAVESIDE_DISABLED to DISABLE ON SLAVE. mysql-test/r/rpl_events.result: WL#3629 - Replication of Invocation and Invoked Features This patch adds the results for the tests to check the SQL syntax change from SLAVESIDE_DISABLED to DISABLE ON SLAVE. sql/lex.h: WL#3629 - Replication of Invocation and Invoked Features This patch removes the SLAVESIDE_DISABLED token. sql/sql_yacc.yy: WL#3629 - Replication of Invocation and Invoked Features This patch removes the SLAVESIDE_DISABLED token from the event status clause and adds the ability to mark an event as status = SLAVESIDE_DISABLED by using the syntax DISABLE ON SLAVE instead.
This commit is contained in:
parent
89a21abafe
commit
c0b96432fa
@ -15,8 +15,7 @@ drop table if exists t1,t2;
|
||||
eval CREATE TABLE `t1` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`c` VARCHAR(50) NOT NULL,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
|
||||
CURRENT_TIMESTAMP,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=$engine_type DEFAULT CHARSET=utf8;
|
||||
|
||||
@ -99,6 +98,21 @@ sync_slave_with_master;
|
||||
--echo "in the slave"
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
|
||||
|
||||
# test the DISABLE ON SLAVE for setting event SLAVESIDE_DISABLED as status
|
||||
# on CREATE EVENT
|
||||
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
|
||||
DROP EVENT test.slave_terminate;
|
||||
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
|
||||
DROP EVENT test.slave_terminate;
|
||||
|
||||
--echo "in the master"
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
|
@ -11,8 +11,7 @@ drop table if exists t1,t2;
|
||||
CREATE TABLE `t1` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`c` VARCHAR(50) NOT NULL,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
|
||||
CURRENT_TIMESTAMP,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 (c) VALUES ('manually');
|
||||
@ -69,6 +68,18 @@ db name status originator
|
||||
"in the slave"
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
|
||||
db name status originator
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
db name status originator
|
||||
test slave_terminate ENABLED 2
|
||||
DROP EVENT test.slave_terminate;
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
db name status originator
|
||||
test slave_terminate SLAVESIDE_DISABLED 2
|
||||
DROP EVENT test.slave_terminate;
|
||||
"in the master"
|
||||
DROP TABLE t1;
|
||||
set binlog_format=statement;
|
||||
@ -77,8 +88,7 @@ drop table if exists t1,t2;
|
||||
CREATE TABLE `t1` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`c` VARCHAR(50) NOT NULL,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
|
||||
CURRENT_TIMESTAMP,
|
||||
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 (c) VALUES ('manually');
|
||||
@ -135,5 +145,17 @@ db name status originator
|
||||
"in the slave"
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
|
||||
db name status originator
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
db name status originator
|
||||
test slave_terminate ENABLED 2
|
||||
DROP EVENT test.slave_terminate;
|
||||
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND
|
||||
DISABLE ON SLAVE DO INSERT INTO t1(c) VALUES ('from slave_terminate');
|
||||
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
|
||||
db name status originator
|
||||
test slave_terminate SLAVESIDE_DISABLED 2
|
||||
DROP EVENT test.slave_terminate;
|
||||
"in the master"
|
||||
DROP TABLE t1;
|
||||
|
@ -467,7 +467,6 @@ static SYMBOL symbols[] = {
|
||||
{ "SIGNED", SYM(SIGNED_SYM)},
|
||||
{ "SIMPLE", SYM(SIMPLE_SYM)},
|
||||
{ "SLAVE", SYM(SLAVE)},
|
||||
{ "SLAVESIDE_DISABLE", SYM(SLAVESIDE_DISABLE_SYM)},
|
||||
{ "SNAPSHOT", SYM(SNAPSHOT_SYM)},
|
||||
{ "SMALLINT", SYM(SMALLINT)},
|
||||
{ "SOCKET", SYM(SOCKET_SYM)},
|
||||
|
@ -1774,7 +1774,7 @@ opt_ev_status: /* empty */ { $$= 0; }
|
||||
Lex->event_parse_data->status= Event_basic::ENABLED;
|
||||
$$= 1;
|
||||
}
|
||||
| SLAVESIDE_DISABLE_SYM
|
||||
| DISABLE_SYM ON SLAVE
|
||||
{
|
||||
Lex->event_parse_data->status= Event_basic::SLAVESIDE_DISABLED;
|
||||
$$= 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user