Skip to content

Commit 00b85c4

Browse files
author
kostja@vajra.(none)
committed
Post-merge and post-review fixes for the patch for
Bug#23631 "Events: SHOW VARIABLES doesn't work when mysql.event is damaged:
1 parent 701ed29 commit 00b85c4

12 files changed

+209
-118
lines changed

mysql-test/r/events.result

+8-8
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ create event
197197
SHOW CREATE EVENT ����21;
198198
Event sql_mode time_zone Create Event
199199
����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
200-
insert into mysql.event (db, name, body, definer, interval_value, interval_field) values (database(), "root22", "select 1", user(), 100, "SECOND_MICROSECOND");
200+
insert into mysql.event (db, name, body, definer, interval_value, interval_field, originator) values (database(), "root22", "select 1", user(), 100, "SECOND_MICROSECOND", 1);
201201
show create event root22;
202202
ERROR 42000: This version of MySQL doesn't yet support 'MICROSECOND'
203203
SHOW EVENTS;
@@ -231,8 +231,8 @@ Create a test event. Only event metadata is relevant,
231231
the actual schedule and body are not.
232232
CREATE EVENT intact_check ON SCHEDULE EVERY 10 HOUR DO SELECT "nothing";
233233
SHOW EVENTS;
234-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
235-
events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED
234+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
235+
events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
236236
Try to alter mysql.event: the server should fail to load
237237
event information after mysql.event was tampered with.
238238

@@ -241,8 +241,8 @@ works as before
241241

242242
ALTER TABLE mysql.event ADD dummy INT;
243243
SHOW EVENTS;
244-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
245-
events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED
244+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
245+
events_test intact_check root@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1
246246
SELECT event_name FROM INFORMATION_SCHEMA.events;
247247
event_name
248248
intact_check
@@ -330,7 +330,7 @@ ERROR HY000: Cannot load from mysql.event. The table is probably corrupted
330330
DROP EVENT no_such_event;
331331
ERROR HY000: Unknown event 'no_such_event'
332332
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
333-
ERROR HY000: Column count of mysql.event is wrong. Expected 17, found 15. The table is probably corrupted
333+
ERROR HY000: Column count of mysql.event is wrong. Expected 18, found 16. The table is probably corrupted
334334
ALTER EVENT intact_check_1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
335335
ERROR HY000: Unknown event 'intact_check_1'
336336
ALTER EVENT intact_check_1 RENAME TO intact_check_2;
@@ -400,7 +400,7 @@ Restore the original table.
400400
CREATE TABLE mysql.event like event_like;
401401
DROP TABLE event_like;
402402
SHOW EVENTS;
403-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
403+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
404404
create event e_26 on schedule at '2017-01-01 00:00:00' disable do set @a = 5;
405405
select db, name, body, definer, convert_tz(execute_at, 'UTC', 'SYSTEM'), on_completion from mysql.event;
406406
db name body definer convert_tz(execute_at, 'UTC', 'SYSTEM') on_completion
@@ -512,7 +512,7 @@ ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
512512
SHOW EVENTS FROM ``;
513513
ERROR 42000: Incorrect database name ''
514514
SHOW EVENTS FROM `events\\test`;
515-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
515+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
516516

517517
LOCK TABLES mode.
518518

mysql-test/r/events_bugs.result

+31-31
Original file line numberDiff line numberDiff line change
@@ -390,30 +390,30 @@ SET TIME_ZONE= '+00:00';
390390
SET TIMESTAMP= UNIX_TIMESTAMP('2005-12-31 23:58:59');
391391
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
392392
SHOW EVENTS;
393-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
394-
events_test e1 root@localhost +00:00 RECURRING NULL 1 DAY 2005-12-31 23:58:59 NULL ENABLED
393+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
394+
events_test e1 root@localhost +00:00 RECURRING NULL 1 DAY 2005-12-31 23:58:59 NULL ENABLED 1
395395
SET TIME_ZONE= '-01:00';
396396
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2000-01-01 00:00:00';
397397
SHOW EVENTS;
398-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
399-
events_test e1 root@localhost -01:00 RECURRING NULL 1 DAY 2000-01-01 00:00:00 NULL ENABLED
398+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
399+
events_test e1 root@localhost -01:00 RECURRING NULL 1 DAY 2000-01-01 00:00:00 NULL ENABLED 1
400400
SET TIME_ZONE= '+02:00';
401401
ALTER EVENT e1 ON SCHEDULE AT '2000-01-02 00:00:00'
402402
ON COMPLETION PRESERVE DISABLE;
403403
SHOW EVENTS;
404-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
405-
events_test e1 root@localhost +02:00 ONE TIME 2000-01-02 00:00:00 NULL NULL NULL NULL DISABLED
404+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
405+
events_test e1 root@localhost +02:00 ONE TIME 2000-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1
406406
SET TIME_ZONE= '-03:00';
407407
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2030-01-03 00:00:00'
408408
ON COMPLETION PRESERVE DISABLE;
409409
SHOW EVENTS;
410-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
411-
events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 DISABLED
410+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
411+
events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 DISABLED 1
412412
SET TIME_ZONE= '+04:00';
413413
ALTER EVENT e1 DO SELECT 2;
414414
SHOW EVENTS;
415-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
416-
events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 ENABLED
415+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
416+
events_test e1 root@localhost -03:00 RECURRING NULL 1 DAY 2005-12-31 20:58:59 2030-01-03 00:00:00 ENABLED 1
417417
DROP EVENT e1;
418418
SET TIME_ZONE='+05:00';
419419
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
@@ -427,15 +427,15 @@ SET TIME_ZONE='+00:00';
427427
CREATE EVENT e3 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
428428
SELECT 1;
429429
SELECT * FROM INFORMATION_SCHEMA.EVENTS ORDER BY event_name;
430-
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT
431-
NULL events_test e1 root@localhost +05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:58:59 2005-12-31 23:58:59 NULL
432-
NULL events_test e2 root@localhost -05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:00 2005-12-31 23:59:00 NULL
433-
NULL events_test e3 root@localhost +00:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:01 2005-12-31 23:59:01 NULL
430+
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR
431+
NULL events_test e1 root@localhost +05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:58:59 2005-12-31 23:58:59 NULL 1
432+
NULL events_test e2 root@localhost -05:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:00 2005-12-31 23:59:00 NULL 1
433+
NULL events_test e3 root@localhost +00:00 SQL SELECT 1 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED NOT PRESERVE 2005-12-31 23:59:01 2005-12-31 23:59:01 NULL 1
434434
SHOW EVENTS;
435-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
436-
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
437-
events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
438-
events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
435+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
436+
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
437+
events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
438+
events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
439439
SHOW CREATE EVENT e1;
440440
Event sql_mode time_zone Create Event
441441
e1 +05:00 CREATE EVENT `e1` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1
@@ -475,10 +475,10 @@ SELECT 1;
475475
Warnings:
476476
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
477477
SHOW EVENTS;
478-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
479-
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
480-
events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
481-
events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED
478+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
479+
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
480+
events_test e2 root@localhost -05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
481+
events_test e3 root@localhost +00:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1
482482
The following should succeed giving a warning.
483483
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
484484
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE;
@@ -511,15 +511,15 @@ CREATE EVENT e8 ON SCHEDULE AT '1999-01-01 00:00:00'
511511
DO
512512
SELECT 1;
513513
SHOW EVENTS;
514-
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status
515-
events_test e1 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED
516-
events_test e2 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED
517-
events_test e3 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED
518-
events_test e4 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED
519-
events_test e5 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED
520-
events_test e6 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED
521-
events_test e7 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED
522-
events_test e8 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED
514+
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator
515+
events_test e1 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
516+
events_test e2 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1
517+
events_test e3 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
518+
events_test e4 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
519+
events_test e5 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1
520+
events_test e6 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 NULL ENABLED 1
521+
events_test e7 root@localhost +00:00 RECURRING NULL 1 HOUR 1999-01-01 00:00:00 1999-01-02 00:00:00 DISABLED 1
522+
events_test e8 root@localhost +00:00 ONE TIME 1999-01-01 00:00:00 NULL NULL NULL NULL DISABLED 1
523523
DROP EVENT e8;
524524
DROP EVENT e7;
525525
DROP EVENT e6;

mysql-test/r/events_scheduling.result

+31-19
Original file line numberDiff line numberDiff line change
@@ -44,44 +44,56 @@ CREATE TABLE table_1(a int);
4444
CREATE TABLE table_2(a int);
4545
CREATE TABLE table_3(a int);
4646
CREATE TABLE table_4(a int);
47-
CREATE TABLE T19170(s1 TIMESTAMP);
4847
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
5252
ENDS NOW() + INTERVAL 6 SECOND
5353
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);
5764
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
5865
IF(SUM(a) >= 4, 'OK', 'ERROR')
5966
OK
6067
SELECT IF(SUM(a) >= 5, 'OK', 'ERROR') FROM table_2;
6168
IF(SUM(a) >= 5, 'OK', 'ERROR')
6269
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')
6572
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')
6875
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;
76+
SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR')
77+
FROM INFORMATION_SCHEMA.EVENTS
78+
WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2';
7179
IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR')
7280
OK
73-
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';
7484
IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR')
7585
OK
76-
DROP EVENT IF EXISTS events_test.start_n_end;
7786
"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;
8090
"Should be preserved"
8191
SELECT EVENT_NAME, STATUS FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_NAME;
8292
EVENT_NAME STATUS
83-
two_time DISABLED
84-
DROP EVENT two_time;
93+
event_2 DISABLED
94+
event_4 DISABLED
95+
DROP EVENT event_2;
96+
DROP EVENT event_4;
8597
DROP TABLE table_1;
8698
DROP TABLE table_2;
8799
DROP TABLE table_3;

mysql-test/t/events_scheduling.test

+58-19
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,73 @@ CREATE TABLE table_1(a int);
3434
CREATE TABLE table_2(a int);
3535
CREATE TABLE table_3(a int);
3636
CREATE TABLE table_4(a int);
37-
CREATE TABLE T19170(s1 TIMESTAMP);
37+
3838
SET GLOBAL event_scheduler=ON;
3939
# We need to have 2 to make it safe with valgrind. This is probably because
4040
# 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+
5182
SELECT IF(SUM(a) >= 4, 'OK', 'ERROR') FROM table_1;
5283
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;
86+
87+
SELECT IF(TIME_TO_SEC(TIMEDIFF(ENDS,STARTS))=6, 'OK', 'ERROR')
88+
FROM INFORMATION_SCHEMA.EVENTS
89+
WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2';
90+
91+
SELECT IF(LAST_EXECUTED-ENDS < 3, 'OK', 'ERROR')
92+
FROM INFORMATION_SCHEMA.EVENTS
93+
WHERE EVENT_SCHEMA=DATABASE() AND EVENT_NAME='event_2';
94+
5995
--echo "Already dropped because ended. Therefore an error."
6096
--error ER_EVENT_DOES_NOT_EXIST
61-
DROP EVENT only_one_time;
97+
DROP EVENT event_3;
98+
99+
DROP EVENT event_1;
62100
--echo "Should be preserved"
63101
SELECT EVENT_NAME, STATUS FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_NAME;
64-
DROP EVENT two_time;
102+
DROP EVENT event_2;
103+
DROP EVENT event_4;
65104
DROP TABLE table_1;
66105
DROP TABLE table_2;
67106
DROP TABLE table_3;

0 commit comments

Comments
 (0)