You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: mysql-test/r/events.result
+8-8
Original file line number
Diff line number
Diff line change
@@ -197,7 +197,7 @@ create event
197
197
SHOW CREATE EVENT ����21;
198
198
Event sql_mode time_zone Create Event
199
199
����21 SYSTEM CREATE EVENT `����21` ON SCHEDULE EVERY '51 0:0:35' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE COMMENT '���� � 1251 ��������' DO select 1
Copy file name to clipboardExpand all lines: mysql-test/r/events_scheduling.result
+31-19
Original file line number
Diff line number
Diff line change
@@ -44,44 +44,56 @@ CREATE TABLE table_1(a int);
44
44
CREATE TABLE table_2(a int);
45
45
CREATE TABLE table_3(a int);
46
46
CREATE TABLE table_4(a int);
47
-
CREATE TABLE T19170(s1 TIMESTAMP);
48
47
SET GLOBAL event_scheduler=ON;
49
-
CREATE EVENT two_sec ON SCHEDULE EVERY 2 SECOND DO INSERT INTO table_1 VALUES(1);
50
-
CREATE EVENT start_n_end
51
-
ON SCHEDULE EVERY 1 SECOND
48
+
CREATE EVENT event_1 ON SCHEDULE EVERY 2 SECOND
49
+
DO
50
+
INSERT INTO table_1 VALUES (1);
51
+
CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND
52
52
ENDS NOW() + INTERVAL 6 SECOND
53
53
ON COMPLETION PRESERVE
54
-
DO INSERT INTO table_2 VALUES(1);
55
-
CREATE EVENT only_one_time ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND DO INSERT INTO table_3 VALUES(1);
56
-
CREATE EVENT two_time ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND ON COMPLETION PRESERVE DO INSERT INTO table_4 VALUES(1);
54
+
DO
55
+
INSERT INTO table_2 VALUES (1);
56
+
CREATE EVENT event_3 ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND
57
+
ON COMPLETION NOT PRESERVE
58
+
DO
59
+
INSERT INTO table_3 VALUES (1);
60
+
CREATE EVENT event_4 ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND
61
+
ON COMPLETION PRESERVE
62
+
DO
63
+
INSERT INTO table_4 VALUES (1);
57
64
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
58
65
IF(SUM(a) >= 4, 'OK', 'ERROR')
59
66
OK
60
67
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
61
68
IF(SUM(a) >= 5, 'OK', 'ERROR')
62
69
OK
63
-
SELECT IF(SUM(a) > 0, 'OK', 'ERROR') FROM table_3;
64
-
IF(SUM(a) > 0, 'OK', 'ERROR')
70
+
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_3;
71
+
IF(SUM(a) >= 1, 'OK', 'ERROR')
65
72
OK
66
-
SELECT IF(SUM(a) > 0, 'OK', 'ERROR') FROM table_4;
67
-
IF(SUM(a) > 0, 'OK', 'ERROR')
73
+
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_4;
74
+
IF(SUM(a) >= 1, 'OK', 'ERROR')
68
75
OK
69
-
DROP EVENT two_sec;
70
-
SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
81
+
SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR')
82
+
FROM INFORMATION_SCHEMA.EVENTS
83
+
WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2';
74
84
IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR')
75
85
OK
76
-
DROP EVENT IF EXISTS events_test.start_n_end;
77
86
"Already dropped because ended. Therefore an error."
78
-
DROP EVENT only_one_time;
79
-
ERROR HY000: Unknown event 'only_one_time'
87
+
DROP EVENT event_3;
88
+
ERROR HY000: Unknown event 'event_3'
89
+
DROP EVENT event_1;
80
90
"Should be preserved"
81
91
SELECT EVENT_NAME, STATUS FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_NAME;
Copy file name to clipboardExpand all lines: mysql-test/t/events_scheduling.test
+58-19
Original file line number
Diff line number
Diff line change
@@ -34,34 +34,73 @@ CREATE TABLE table_1(a int);
34
34
CREATE TABLE table_2(a int);
35
35
CREATE TABLE table_3(a int);
36
36
CREATE TABLE table_4(a int);
37
-
CREATE TABLE T19170(s1 TIMESTAMP);
37
+
38
38
SET GLOBAL event_scheduler=ON;
39
39
# We need to have 2 to make it safe with valgrind. This is probably because
40
40
# of when we calculate the timestamp value
41
-
CREATE EVENT two_sec ON SCHEDULE EVERY 2 SECOND DO INSERT INTO table_1 VALUES(1);
42
-
CREATE EVENT start_n_end
43
-
ON SCHEDULE EVERY 1 SECOND
44
-
ENDS NOW() + INTERVAL 6 SECOND
45
-
ON COMPLETION PRESERVE
46
-
DO INSERT INTO table_2 VALUES(1);
47
-
--sleep 5
48
-
CREATE EVENT only_one_time ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND DO INSERT INTO table_3 VALUES(1);
49
-
CREATE EVENT two_time ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND ON COMPLETION PRESERVE DO INSERT INTO table_4 VALUES(1);
50
-
--sleep 5
41
+
CREATE EVENT event_1 ON SCHEDULE EVERY 2 SECOND
42
+
DO
43
+
INSERT INTO table_1 VALUES (1);
44
+
45
+
CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND
46
+
ENDS NOW() + INTERVAL 6 SECOND
47
+
ON COMPLETION PRESERVE
48
+
DO
49
+
INSERT INTO table_2 VALUES (1);
50
+
51
+
CREATE EVENT event_3 ON SCHEDULE EVERY 2 SECOND ENDS NOW() + INTERVAL 1 SECOND
52
+
ON COMPLETION NOT PRESERVE
53
+
DO
54
+
INSERT INTO table_3 VALUES (1);
55
+
56
+
CREATE EVENT event_4 ON SCHEDULE EVERY 1 SECOND ENDS NOW() + INTERVAL 1 SECOND
57
+
ON COMPLETION PRESERVE
58
+
DO
59
+
INSERT INTO table_4 VALUES (1);
60
+
61
+
# Let event_1 insert at least 4 records into the table
62
+
let $wait_condition=select count(*) >= 4 from table_1;
63
+
--source include/wait_condition.inc
64
+
65
+
# Let event_2 reach the end of its execution interval
66
+
let $wait_condition=select count(*) = 0 from information_schema.events
67
+
where event_name='event_2' and status='enabled';
68
+
--source include/wait_condition.inc
69
+
70
+
# Let event_3, which is ON COMPLETION NOT PRESERVE execute and drop itself
71
+
let $wait_condition=select count(*) = 0 from information_schema.events
72
+
where event_name='event_3';
73
+
--source include/wait_condition.inc
74
+
75
+
# Let event_4 reach the end of its execution interval
76
+
let $wait_condition=select count(*) = 0 from information_schema.events
77
+
where event_name='event_4' and status='enabled';
78
+
--source include/wait_condition.inc
79
+
80
+
# check the data
81
+
51
82
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
52
83
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
53
-
SELECT IF(SUM(a) > 0, 'OK', 'ERROR') FROM table_3;
54
-
SELECT IF(SUM(a) > 0, 'OK', 'ERROR') FROM table_4;
55
-
DROP EVENT two_sec;
56
-
SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
57
-
SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR') FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='start_n_end' AND ENDS IS NOT NULL;
58
-
DROP EVENT IF EXISTS events_test.start_n_end;
84
+
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_3;
85
+
SELECT IF(SUM(a) >= 1, 'OK', 'ERROR') FROM table_4;
0 commit comments