22 changed files with 415 additions and 115 deletions
-
7cmake/os/Windows.cmake
-
9mysql-test/main/func_misc.result
-
6mysql-test/main/func_misc.test
-
2mysql-test/suite/galera/disabled.def
-
122mysql-test/suite/galera/r/galera_events2.result
-
19mysql-test/suite/galera/r/galera_var_node_address.result
-
1mysql-test/suite/galera/t/MW-328B.test
-
144mysql-test/suite/galera/t/galera_events2.test
-
22mysql-test/suite/galera/t/galera_var_node_address.test
-
18mysql-test/suite/innodb/r/temporary_table_optimization.result
-
8mysql-test/suite/innodb/t/temporary_table_optimization.test
-
6mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
-
4mysql-test/suite/sys_vars/r/sysvars_innodb.result
-
5mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
-
47sql/CMakeLists.txt
-
40sql/events.cc
-
19sql/item_func.cc
-
11sql/item_func.h
-
1sql/threadpool_win.cc
-
18storage/connect/CMakeLists.txt
-
4storage/innobase/handler/ha_innodb.cc
-
17storage/innobase/ibuf/ibuf0ibuf.cc
@ -0,0 +1,122 @@ |
|||||
|
connection node_1; |
||||
|
connection node_2; |
||||
|
connection node_1; |
||||
|
CREATE TABLE event_table(a int) engine=innodb; |
||||
|
CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND |
||||
|
ENDS NOW() + INTERVAL 6 SECOND |
||||
|
ON COMPLETION NOT PRESERVE |
||||
|
DO |
||||
|
INSERT INTO event_table VALUES (1); |
||||
|
Warnings: |
||||
|
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. |
||||
|
# node_1 event should be there |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND ENABLED NOT PRESERVE |
||||
|
connection node_2; |
||||
|
# node_2 event should be there |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND SLAVESIDE_DISABLED NOT PRESERVE |
||||
|
connection node_1; |
||||
|
SET GLOBAL event_scheduler=ON; |
||||
|
SHOW VARIABLES LIKE 'event_scheduler'; |
||||
|
Variable_name Value |
||||
|
event_scheduler ON |
||||
|
# node_1 event should be removed |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
connection node_2; |
||||
|
# node_2 event should be removed |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
connection node_1; |
||||
|
SET GLOBAL event_scheduler=OFF; |
||||
|
DROP TABLE event_table; |
||||
|
connection node_1; |
||||
|
CREATE DATABASE IF NOT EXISTS events_test; |
||||
|
use events_test; |
||||
|
CREATE USER ev_test@localhost; |
||||
|
GRANT ALL ON events_test.* to ev_test@localhost; |
||||
|
connect ev_con1,localhost,ev_test,,events_test; |
||||
|
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; |
||||
|
Warnings: |
||||
|
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. |
||||
|
SHOW EVENTS; |
||||
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation |
||||
|
events_test one_event ev_test@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE |
||||
|
ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND; |
||||
|
"The definer should be ev_test@localhost" |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE |
||||
|
connection node_2; |
||||
|
use events_test; |
||||
|
"The definer should be ev_test@localhost" |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE |
||||
|
connection node_1; |
||||
|
disconnect ev_con1; |
||||
|
use test; |
||||
|
DROP EVENT events_test.one_event; |
||||
|
DROP USER ev_test@localhost; |
||||
|
DROP DATABASE events_test; |
||||
|
connection node_1; |
||||
|
use test; |
||||
|
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; |
||||
|
Warnings: |
||||
|
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. |
||||
|
# node_1 Event should be enabled |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE |
||||
|
connection node_2; |
||||
|
use test; |
||||
|
# node_2 Event should be SERVERSIDE_DISABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE |
||||
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=InnoDB; |
||||
|
INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'); |
||||
|
SELECT * FROM t1; |
||||
|
f1 f2 |
||||
|
1 a |
||||
|
2 a |
||||
|
3 a |
||||
|
Shutting down server ... |
||||
|
connection node_1; |
||||
|
UPDATE t1 SET f2 = 'b' WHERE f1 > 1; |
||||
|
UPDATE t1 SET f2 = 'c' WHERE f1 > 2; |
||||
|
SELECT * FROM t1; |
||||
|
f1 f2 |
||||
|
1 a |
||||
|
2 b |
||||
|
3 c |
||||
|
connection node_2; |
||||
|
# Force SST from node_1 to node_2 |
||||
|
Starting server ... |
||||
|
SELECT * FROM t1; |
||||
|
f1 f2 |
||||
|
1 a |
||||
|
2 b |
||||
|
3 c |
||||
|
# node_2 Event should be SERVERSIDE_DISABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE |
||||
|
connection node_1; |
||||
|
SELECT * FROM t1; |
||||
|
f1 f2 |
||||
|
1 a |
||||
|
2 b |
||||
|
3 c |
||||
|
# node_1 Event should be ENABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT |
||||
|
def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE |
||||
|
DROP TABLE t1; |
||||
|
DROP EVENT one_event; |
||||
@ -1,17 +1,20 @@ |
|||||
call mtr.add_suppression("WSREP: Stray state UUID msg: .* current group state WAIT_STATE_UUID .*"); |
|
||||
call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .* is not in state transfer (.*). Message ignored."); |
|
||||
call mtr.add_suppression("WSREP: Sending JOIN failed: -[0-9]+ (Transport endpoint is not connected). Will retry in new primary component."); |
|
||||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|
||||
VARIABLE_VALUE = 4 |
|
||||
1 |
|
||||
|
call mtr.add_suppression("WSREP: Stray state UUID msg: .*"); |
||||
|
call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .*"); |
||||
|
call mtr.add_suppression("WSREP: Sending JOIN failed: .*"); |
||||
|
flush tables; |
||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
||||
|
VARIABLE_VALUE |
||||
|
4 |
||||
connection node_1; |
connection node_1; |
||||
CREATE TABLE t1 (f1 INTEGER) ENGINE=INNODB; |
CREATE TABLE t1 (f1 INTEGER) ENGINE=INNODB; |
||||
connection node_2; |
connection node_2; |
||||
|
set global wsrep_sync_wait=15; |
||||
INSERT INTO t1 VALUES (1); |
INSERT INTO t1 VALUES (1); |
||||
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; |
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; |
||||
connection node_3; |
connection node_3; |
||||
SELECT COUNT(*) = 1 FROM t1; |
|
||||
COUNT(*) = 1 |
|
||||
|
set global wsrep_sync_wait=15; |
||||
|
SELECT COUNT(*) FROM t1; |
||||
|
COUNT(*) |
||||
1 |
1 |
||||
connection node_1; |
connection node_1; |
||||
DROP TABLE t1; |
DROP TABLE t1; |
||||
@ -0,0 +1,144 @@ |
|||||
|
--source include/galera_cluster.inc |
||||
|
|
||||
|
# Save original auto_increment_offset values. |
||||
|
--let $node_1=node_1 |
||||
|
--let $node_2=node_2 |
||||
|
--source include/auto_increment_offset_save.inc |
||||
|
|
||||
|
# |
||||
|
# Test case 1: "ONE TIME" events should be dropped on slave nodes after expiring on master (event creator node) |
||||
|
# |
||||
|
|
||||
|
--connection node_1 |
||||
|
|
||||
|
CREATE TABLE event_table(a int) engine=innodb; |
||||
|
|
||||
|
CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND |
||||
|
ENDS NOW() + INTERVAL 6 SECOND |
||||
|
ON COMPLETION NOT PRESERVE |
||||
|
DO |
||||
|
INSERT INTO event_table VALUES (1); |
||||
|
|
||||
|
--echo # node_1 event should be there |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
|
||||
|
--connection node_2 |
||||
|
--echo # node_2 event should be there |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
|
||||
|
--connection node_1 |
||||
|
SET GLOBAL event_scheduler=ON; |
||||
|
SHOW VARIABLES LIKE 'event_scheduler'; |
||||
|
|
||||
|
# Let event_2 reach the end of its execution interval |
||||
|
let $wait_condition=select count(*) = 0 from information_schema.events where event_name='event_2'; |
||||
|
--source include/wait_condition.inc |
||||
|
|
||||
|
--echo # node_1 event should be removed |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
|
||||
|
--connection node_2 |
||||
|
--echo # node_2 event should be removed |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; |
||||
|
|
||||
|
--connection node_1 |
||||
|
SET GLOBAL event_scheduler=OFF; |
||||
|
DROP TABLE event_table; |
||||
|
|
||||
|
# |
||||
|
# Test case 2: After doing ALTER EVENT, slave nodes should have same definer as master |
||||
|
# |
||||
|
|
||||
|
--connection node_1 |
||||
|
|
||||
|
CREATE DATABASE IF NOT EXISTS events_test; |
||||
|
use events_test; |
||||
|
CREATE USER ev_test@localhost; |
||||
|
GRANT ALL ON events_test.* to ev_test@localhost; |
||||
|
connect (ev_con1,localhost,ev_test,,events_test); |
||||
|
|
||||
|
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; |
||||
|
--replace_column 8 # 9 # |
||||
|
SHOW EVENTS; |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME; |
||||
|
ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND; |
||||
|
--echo "The definer should be ev_test@localhost" |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
--connection node_2 |
||||
|
use events_test; |
||||
|
--echo "The definer should be ev_test@localhost" |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
--connection node_1 |
||||
|
--disconnect ev_con1 |
||||
|
use test; |
||||
|
DROP EVENT events_test.one_event; |
||||
|
DROP USER ev_test@localhost; |
||||
|
DROP DATABASE events_test; |
||||
|
|
||||
|
# |
||||
|
# Test case 3: After SST from master node (the one where event is ENABLED) , slave event status should be 'SLAVESIDE_DISABLED' |
||||
|
# |
||||
|
|
||||
|
--connection node_1 |
||||
|
use test; |
||||
|
CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; |
||||
|
|
||||
|
--echo # node_1 Event should be enabled |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
--connection node_2 |
||||
|
use test; |
||||
|
--echo # node_2 Event should be SERVERSIDE_DISABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=InnoDB; |
||||
|
INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'); |
||||
|
|
||||
|
SELECT * FROM t1; |
||||
|
|
||||
|
# Initiate normal shutdown on the node 2 and wait until shutdown has been completed: |
||||
|
|
||||
|
--echo Shutting down server ... |
||||
|
--source include/shutdown_mysqld.inc |
||||
|
|
||||
|
--connection node_1 |
||||
|
|
||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
||||
|
--source include/wait_condition.inc |
||||
|
|
||||
|
UPDATE t1 SET f2 = 'b' WHERE f1 > 1; |
||||
|
UPDATE t1 SET f2 = 'c' WHERE f1 > 2; |
||||
|
|
||||
|
SELECT * FROM t1; |
||||
|
|
||||
|
--connection node_2 |
||||
|
|
||||
|
# Remove the "grastate.dat" file (to initiate new SST) and restart node 2 |
||||
|
|
||||
|
--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat |
||||
|
|
||||
|
--echo # Force SST from node_1 to node_2 |
||||
|
--let $start_mysqld_params= |
||||
|
--echo Starting server ... |
||||
|
--source include/start_mysqld.inc |
||||
|
|
||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
||||
|
--source include/wait_condition.inc |
||||
|
|
||||
|
# Sanity check (node 2 is running now and can perform SQL operators): |
||||
|
|
||||
|
SELECT * FROM t1; |
||||
|
--echo # node_2 Event should be SERVERSIDE_DISABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
--connection node_1 |
||||
|
SELECT * FROM t1; |
||||
|
--echo # node_1 Event should be ENABLED |
||||
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; |
||||
|
|
||||
|
DROP TABLE t1; |
||||
|
DROP EVENT one_event; |
||||
|
|
||||
|
--source include/auto_increment_offset_restore.inc |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue