~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/include/rpl_events.inc

  • Committer: Monty Taylor
  • Date: 2008-08-05 19:01:20 UTC
  • mto: (266.1.1 codestyle)
  • mto: This revision was merged to the branch mainline in revision 266.
  • Revision ID: monty@inaugust.com-20080805190120-tsuziqz2mfqcw7pe
Removed libmysyslt.la, made mysys a noinst_ and made everything use it. It's
not a standalone lib, there's no reason to pretend otherwise.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
##################################################################
2
 
# Author: Giuseppe, Chuck Bell                                   #
3
 
# Date: 17-January-2007                                          #
4
 
# Purpose: To test that event effects are replicated             #
5
 
# in both row based and statement based format                   #
6
 
##################################################################
7
 
 
8
 
--disable_warnings
9
 
DROP EVENT IF EXISTS test.justonce;
10
 
drop table if exists t1,t2;
11
 
--enable_warnings
12
 
 
13
 
# first, we need a table to record something from an event
14
 
 
15
 
eval CREATE TABLE `t1` (
16
 
  `id` INT(10) NOT NULL,
17
 
  `c` VARCHAR(50) NOT NULL,
18
 
  `ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
19
 
  PRIMARY KEY (`id`)
20
 
) ENGINE=$engine_type DEFAULT CHARSET=utf8;
21
 
 
22
 
INSERT INTO t1 (id, c) VALUES (1, 'manually');
23
 
 
24
 
# We create the event so that it inserts exactly 1 row in the table
25
 
# A recuring event is used so that we can be sure the event will
26
 
# fire regardless of timing delays on the server. Otherwise, it is
27
 
# possible for the event to timeout before it has inserted a row.
28
 
--echo "Creating event test.justonce on the master"
29
 
CREATE EVENT test.justonce ON SCHEDULE EVERY 2 SECOND DO 
30
 
  INSERT IGNORE INTO t1 (id, c) VALUES (2, 'from justonce');
31
 
 
32
 
# Show the event is alive and present on master
33
 
--echo "Checking event is active on master"
34
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
35
 
 
36
 
# Wait until event has fired. We know this because t1 will contain 
37
 
# the row from the event.
38
 
let $wait_condition=
39
 
  SELECT COUNT(*) = 1 FROM t1 WHERE c = 'from justonce';
40
 
--source include/wait_condition.inc
41
 
 
42
 
# check that table t1 contains something
43
 
--echo "Checking event data on the master"
44
 
--enable_info
45
 
--replace_column 3 TIMESTAMP
46
 
SELECT * FROM t1 ORDER BY id;
47
 
--disable_info
48
 
 
49
 
sync_slave_with_master;
50
 
 
51
 
--echo "Checking event data on the slave"
52
 
--enable_info
53
 
--replace_column 3 TIMESTAMP
54
 
SELECT * FROM t1 ORDER BY id;
55
 
--disable_info
56
 
 
57
 
--echo "Checking event is inactive on slave"
58
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'justonce';
59
 
 
60
 
# Create an event on the slave and check to see what the originator is.
61
 
--echo "Dropping event test.slave_once on the slave"
62
 
--disable_warnings
63
 
DROP EVENT IF EXISTS test.slave_once;
64
 
--enable_warnings
65
 
 
66
 
CREATE EVENT test.slave_once ON SCHEDULE EVERY 5 MINUTE DO 
67
 
  INSERT IGNORE INTO t1(id, c) VALUES (3, 'from slave_once');
68
 
 
69
 
--echo "Checking event status on the slave for originator value = slave's server_id"
70
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_once';
71
 
 
72
 
--echo "Dropping event test.slave_once on the slave"
73
 
--disable_warnings
74
 
DROP EVENT IF EXISTS test.slave_once;
75
 
--enable_warnings
76
 
 
77
 
connection master;
78
 
 
79
 
# BUG#20384 - disable events on slave
80
 
--echo "Dropping event test.justonce on the master"
81
 
--disable_warnings
82
 
DROP EVENT IF EXISTS test.justonce;
83
 
--enable_warnings
84
 
 
85
 
--echo "Creating event test.er on the master"
86
 
CREATE EVENT test.er ON SCHEDULE EVERY 3 SECOND DO 
87
 
  INSERT IGNORE INTO t1(id, c) VALUES (4, 'from er');
88
 
 
89
 
--echo "Checking event status on the master"
90
 
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
91
 
 
92
 
sync_slave_with_master;
93
 
 
94
 
--echo "Checking event status on the slave"
95
 
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
96
 
 
97
 
connection master;
98
 
--echo "Altering event test.er on the master"
99
 
ALTER EVENT test.er ON SCHEDULE EVERY 5 SECOND DO 
100
 
  INSERT IGNORE INTO t1(id, c) VALUES (5, 'from alter er');
101
 
 
102
 
--echo "Checking event status on the master"
103
 
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
104
 
 
105
 
sync_slave_with_master;
106
 
 
107
 
--echo "Checking event status on the slave"
108
 
SELECT db, name, status, originator, body FROM mysql.event WHERE db = 'test' AND name = 'er';
109
 
 
110
 
connection master;
111
 
--echo "Dropping event test.er on the master"
112
 
DROP EVENT test.er;
113
 
 
114
 
--echo "Checking event status on the master"
115
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
116
 
 
117
 
--disable_info
118
 
 
119
 
sync_slave_with_master;
120
 
 
121
 
--echo "Checking event status on the slave"
122
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test';
123
 
 
124
 
# test the DISABLE ON SLAVE for setting event SLAVESIDE_DISABLED as status
125
 
# on CREATE EVENT
126
 
 
127
 
--echo "Creating event test.slave_terminate on the slave"
128
 
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DO 
129
 
  INSERT IGNORE INTO t1(id, c) VALUES (6, 'from slave_terminate');
130
 
 
131
 
--echo "Checking event status on the slave"
132
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
133
 
 
134
 
--echo "Dropping event test.slave_terminate on the slave"
135
 
DROP EVENT test.slave_terminate;
136
 
 
137
 
--echo "Creating event test.slave_terminate with DISABLE ON SLAVE on the slave"
138
 
CREATE EVENT test.slave_terminate ON SCHEDULE EVERY 3 SECOND DISABLE ON SLAVE DO 
139
 
  INSERT IGNORE INTO t1(c) VALUES (7, 'from slave_terminate');
140
 
 
141
 
--echo "Checking event status on the slave"
142
 
SELECT db, name, status, originator FROM mysql.event WHERE db = 'test' AND name = 'slave_terminate';
143
 
 
144
 
--echo "Dropping event test.slave_terminate on the slave"
145
 
DROP EVENT test.slave_terminate;
146
 
 
147
 
--echo "Cleanup"
148
 
connection master;
149
 
DROP TABLE t1;
150
 
sync_slave_with_master;
151
 
connection master;
152