~ubuntu-branches/ubuntu/trusty/mariadb-5.5/trusty-proposed

« back to all changes in this revision

Viewing changes to mysql-test/r/events_bugs.result

  • Committer: Package Import Robot
  • Author(s): Otto Kekäläinen
  • Date: 2013-12-22 10:27:05 UTC
  • Revision ID: package-import@ubuntu.com-20131222102705-mndw7s12mz0szrcn
Tags: upstream-5.5.32
Import upstream version 5.5.32

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop database if exists events_test;
 
2
drop database if exists mysqltest_db1;
 
3
drop database if exists mysqltest_db2;
 
4
create database events_test;
 
5
use events_test;
 
6
set @concurrent_insert= @@global.concurrent_insert;
 
7
set @@global.concurrent_insert = 0;
 
8
select * from information_schema.global_variables where variable_name like 'event_scheduler';
 
9
VARIABLE_NAME   VARIABLE_VALUE
 
10
EVENT_SCHEDULER ON
 
11
SET GLOBAL event_scheduler = 'OFF';
 
12
CREATE EVENT lower_case ON SCHEDULE EVERY 1 MINUTE DO SELECT 1;
 
13
CREATE EVENT Lower_case ON SCHEDULE EVERY 2 MINUTE DO SELECT 2;
 
14
ERROR HY000: Event 'Lower_case' already exists
 
15
DROP EVENT Lower_case;
 
16
SET NAMES cp1251;
 
17
CREATE EVENT �����_��������_1251 ON SCHEDULE EVERY 1 YEAR DO SELECT 100;
 
18
CREATE EVENT �����_��������_1251 ON SCHEDULE EVERY 2 YEAR DO SELECT 200;
 
19
ERROR HY000: Event '�����_��������_1251' already exists
 
20
DROP EVENT �����_��������_1251;
 
21
SET NAMES utf8;
 
22
CREATE EVENT долен_регистър_утф8 ON SCHEDULE EVERY 3 YEAR DO SELECT 300;
 
23
CREATE EVENT ДОЛЕН_регистър_утф8 ON SCHEDULE EVERY 4 YEAR DO SELECT 400;
 
24
ERROR HY000: Event 'ДОЛЕН_регистър_утф8' already exists
 
25
DROP EVENT ДОЛЕН_регистър_утф8;
 
26
SET NAMES latin1;
 
27
set @a=3;
 
28
CREATE PROCEDURE p_16 () CREATE EVENT e_16 ON SCHEDULE EVERY @a SECOND DO SET @a=5;
 
29
ERROR HY000: Recursion of EVENT DDL statements is forbidden when body is present
 
30
create event e_55 on schedule at 99990101000000 do drop table t;
 
31
ERROR HY000: Incorrect AT value: '99990101000000'
 
32
create event e_55 on schedule every 10 hour starts 99990101000000 do drop table t;
 
33
ERROR HY000: Incorrect STARTS value: '99990101000000'
 
34
create event e_55 on schedule every 10 minute ends 99990101000000 do drop table t;
 
35
ERROR HY000: ENDS is either invalid or before STARTS
 
36
create event e_55 on schedule at 10000101000000 do drop table t;
 
37
ERROR HY000: Incorrect AT value: '10000101000000'
 
38
create event e_55 on schedule at 20000101000000 do drop table t;
 
39
Warnings:
 
40
Note    1588    Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
41
show events;
 
42
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
43
create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
 
44
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'starts 10000101000000 do drop table t' at line 1
 
45
create event e_55 on schedule at 20200101000000 ends 10000101000000 do drop table t;
 
46
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ends 10000101000000 do drop table t' at line 1
 
47
create event e_55 on schedule at 20200101000000 starts 10000101000000 ends 10000101000000 do drop table t;
 
48
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'starts 10000101000000 ends 10000101000000 do drop table t' at line 1
 
49
create event e_55 on schedule every 10 hour starts 10000101000000 do drop table t;
 
50
ERROR HY000: Incorrect STARTS value: '10000101000000'
 
51
set global event_scheduler=off;
 
52
delete from mysql.event;
 
53
set global event_scheduler= on;
 
54
set @old_sql_mode:=@@sql_mode;
 
55
set sql_mode=ansi;
 
56
select get_lock('test_bug16407', 60);
 
57
get_lock('test_bug16407', 60)
 
58
1
 
59
create event e_16407 on schedule every 60 second do
 
60
begin
 
61
select get_lock('test_bug16407', 60);
 
62
end|
 
63
"Now if everything is fine the event has compiled and is locked"
 
64
select /*1*/ user, host, db, info from information_schema.processlist
 
65
where state = 'User lock' and info = 'select get_lock(\'test_bug16407\', 60)';
 
66
user    host    db      info
 
67
root    localhost       events_test     select get_lock('test_bug16407', 60)
 
68
select release_lock('test_bug16407');
 
69
release_lock('test_bug16407')
 
70
1
 
71
set global event_scheduler= off;
 
72
select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name;
 
73
event_schema    event_name      sql_mode
 
74
events_test     e_16407 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI
 
75
"Let's check whether we change the sql_mode on ALTER EVENT"
 
76
set sql_mode='traditional';
 
77
alter event e_16407 do select 1;
 
78
select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name;
 
79
event_schema    event_name      sql_mode
 
80
events_test     e_16407 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
81
drop event e_16407;
 
82
set sql_mode="ansi";
 
83
select get_lock('ee_16407_2', 60);
 
84
get_lock('ee_16407_2', 60)
 
85
1
 
86
set global event_scheduler= 1;
 
87
"Another sql_mode test"
 
88
set sql_mode="traditional";
 
89
create table events_smode_test(ev_name char(10), a date);
 
90
"This should never insert something"
 
91
create event ee_16407_2 on schedule every 60 second do
 
92
begin
 
93
select get_lock('ee_16407_2', 60) /*ee_16407_2*/;
 
94
select release_lock('ee_16407_2');
 
95
insert into events_test.events_smode_test values('ee_16407_2','1980-19-02');
 
96
end|
 
97
insert into events_test.events_smode_test values ('test','1980-19-02')|
 
98
ERROR 22007: Incorrect date value: '1980-19-02' for column 'a' at row 1
 
99
"This is ok"
 
100
create event ee_16407_3 on schedule every 60 second do
 
101
begin
 
102
select get_lock('ee_16407_2', 60) /*ee_16407_3*/;
 
103
select release_lock('ee_16407_2');
 
104
insert into events_test.events_smode_test values ('ee_16407_3','1980-02-19');
 
105
insert into events_test.events_smode_test values ('ee_16407_3','1980-02-29');
 
106
end|
 
107
set sql_mode=""|
 
108
"This will insert rows but they will be truncated"
 
109
create event ee_16407_4 on schedule every 60 second do
 
110
begin
 
111
select get_lock('ee_16407_2', 60) /*ee_16407_4*/;
 
112
select release_lock('ee_16407_2');
 
113
insert into events_test.events_smode_test values ('ee_16407_4','10-11-1956');
 
114
end|
 
115
select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name;
 
116
event_schema    event_name      sql_mode
 
117
events_test     ee_16407_2      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
118
events_test     ee_16407_3      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
119
events_test     ee_16407_4      
 
120
select /*2*/ user, host, db, info from information_schema.processlist
 
121
where state = 'User lock' and info = 'select get_lock(\'ee_16407_2\', 60)';
 
122
user    host    db      info
 
123
root    localhost       events_test     select get_lock('ee_16407_2', 60)
 
124
root    localhost       events_test     select get_lock('ee_16407_2', 60)
 
125
root    localhost       events_test     select get_lock('ee_16407_2', 60)
 
126
select release_lock('ee_16407_2');
 
127
release_lock('ee_16407_2')
 
128
1
 
129
select /*3*/ user, host, db, info from information_schema.processlist
 
130
where state = 'User lock' and info = 'select get_lock(\'ee_16407_2\', 60)';
 
131
user    host    db      info
 
132
set global event_scheduler= off;
 
133
select * from events_test.events_smode_test order by ev_name, a;
 
134
ev_name a
 
135
ee_16407_3      1980-02-19
 
136
ee_16407_3      1980-02-29
 
137
ee_16407_4      0000-00-00
 
138
"OK, last check before we drop them"
 
139
select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name;
 
140
event_schema    event_name      sql_mode
 
141
events_test     ee_16407_2      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
142
events_test     ee_16407_3      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
143
events_test     ee_16407_4      
 
144
drop event ee_16407_2;
 
145
drop event ee_16407_3;
 
146
drop event ee_16407_4;
 
147
"And now one last test regarding sql_mode and call of SP from an event"
 
148
delete from events_test.events_smode_test;
 
149
set sql_mode='ansi';
 
150
select get_lock('ee_16407_5', 60);
 
151
get_lock('ee_16407_5', 60)
 
152
1
 
153
set global event_scheduler= on;
 
154
set sql_mode='traditional';
 
155
create procedure ee_16407_5_pendant() begin insert into events_test.events_smode_test values('ee_16407_5','2001-02-29'); end|
 
156
create procedure ee_16407_6_pendant() begin insert into events_test.events_smode_test values('ee_16407_6','2004-02-29'); end|
 
157
create event ee_16407_5 on schedule every 60 second do
 
158
begin
 
159
select get_lock('ee_16407_5', 60) /*ee_16407_5*/;
 
160
select release_lock('ee_16407_5');
 
161
call events_test.ee_16407_5_pendant();
 
162
end|
 
163
create event ee_16407_6 on schedule every 60 second do
 
164
begin
 
165
select get_lock('ee_16407_5', 60) /*ee_16407_6*/;
 
166
select release_lock('ee_16407_5');
 
167
call events_test.ee_16407_6_pendant();
 
168
end|
 
169
"Should have 2 locked processes"
 
170
select /*4*/ user, host, db, info from information_schema.processlist
 
171
where state = 'User lock' and info = 'select get_lock(\'ee_16407_5\', 60)';
 
172
user    host    db      info
 
173
root    localhost       events_test     select get_lock('ee_16407_5', 60)
 
174
root    localhost       events_test     select get_lock('ee_16407_5', 60)
 
175
select release_lock('ee_16407_5');
 
176
release_lock('ee_16407_5')
 
177
1
 
178
"Should have 0 processes locked"
 
179
select /*5*/ user, host, db, info from information_schema.processlist
 
180
where state = 'User lock' and info = 'select get_lock(\'ee_16407_5\', 60)';
 
181
user    host    db      info
 
182
select * from events_test.events_smode_test order by ev_name, a;
 
183
ev_name a
 
184
ee_16407_6      2004-02-29
 
185
"And here we check one more time before we drop the events"
 
186
select event_schema, event_name, sql_mode from information_schema.events order by event_schema, event_name;
 
187
event_schema    event_name      sql_mode
 
188
events_test     ee_16407_5      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
189
events_test     ee_16407_6      STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
190
drop event ee_16407_5;
 
191
drop event ee_16407_6;
 
192
drop procedure ee_16407_5_pendant;
 
193
drop procedure ee_16407_6_pendant;
 
194
set global event_scheduler= off;
 
195
drop table events_smode_test;
 
196
set sql_mode=@old_sql_mode;
 
197
set global event_scheduler=off;
 
198
delete from mysql.user where User like 'mysqltest_%';
 
199
delete from mysql.db where User like 'mysqltest_%';
 
200
flush privileges;
 
201
drop database if exists mysqltest_db1;
 
202
create user mysqltest_user1@localhost;
 
203
create database mysqltest_db1;
 
204
grant event on events_test.* to mysqltest_user1@localhost;
 
205
create event mysqltest_user1 on schedule every 10 second do select 42;
 
206
alter event mysqltest_user1 rename to mysqltest_db1.mysqltest_user1;
 
207
ERROR 42000: Access denied for user 'mysqltest_user1'@'localhost' to database 'mysqltest_db1'
 
208
"Let's test now rename when there is no select DB"
 
209
select database();
 
210
database()
 
211
NULL
 
212
alter event events_test.mysqltest_user1 rename to mysqltest_user1;
 
213
ERROR 3D000: No database selected
 
214
select event_schema, event_name, definer, event_type, status from information_schema.events;
 
215
event_schema    event_name      definer event_type      status
 
216
events_test     mysqltest_user1 mysqltest_user1@localhost       RECURRING       ENABLED
 
217
drop event events_test.mysqltest_user1;
 
218
drop user mysqltest_user1@localhost;
 
219
drop database mysqltest_db1;
 
220
create event e_53 on schedule at (select s1 from ttx) do drop table t;
 
221
ERROR 42000: This version of MariaDB doesn't yet support 'Usage of subqueries or stored function calls as part of this statement'
 
222
create event e_53 on schedule every (select s1 from ttx) second do drop table t;
 
223
ERROR 42000: This version of MariaDB doesn't yet support 'Usage of subqueries or stored function calls as part of this statement'
 
224
create event e_53 on schedule every 5 second starts (select s1 from ttx) do drop table t;
 
225
ERROR 42000: This version of MariaDB doesn't yet support 'Usage of subqueries or stored function calls as part of this statement'
 
226
create event e_53 on schedule every 5 second ends (select s1 from ttx) do drop table t;
 
227
ERROR 42000: This version of MariaDB doesn't yet support 'Usage of subqueries or stored function calls as part of this statement'
 
228
drop event if exists e_16;
 
229
drop procedure if exists p_16;
 
230
create event e_16 on schedule every 1 second do set @a=5;
 
231
create procedure p_16 () alter event e_16 on schedule every @a second;
 
232
set @a = null;
 
233
call p_16();
 
234
ERROR HY000: Incorrect INTERVAL value: 'NULL'
 
235
call p_16();
 
236
ERROR HY000: Incorrect INTERVAL value: 'NULL'
 
237
set @a= 6;
 
238
call p_16();
 
239
drop procedure p_16;
 
240
drop event e_16;
 
241
drop function if exists f22830;
 
242
drop event if exists e22830;
 
243
drop event if exists e22830_1;
 
244
drop event if exists e22830_2;
 
245
drop event if exists e22830_3;
 
246
drop event if exists e22830_4;
 
247
drop table if exists t1;
 
248
drop table if exists t2;
 
249
create table t1 (a int);
 
250
insert into t1 values (2);
 
251
create table t2 (a char(20));
 
252
insert into t2 values ("e22830_1");
 
253
create function f22830 () returns int return 5;
 
254
select get_lock('ee_22830', 60);
 
255
get_lock('ee_22830', 60)
 
256
1
 
257
set global event_scheduler=on;
 
258
create procedure p22830_wait()
 
259
begin
 
260
select get_lock('ee_22830', 60);
 
261
select release_lock('ee_22830');
 
262
end|
 
263
create event e22830 on schedule every f22830() second do
 
264
begin
 
265
call p22830_wait();
 
266
select 123;
 
267
end|
 
268
ERROR 42000: This version of MariaDB doesn't yet support 'Usage of subqueries or stored function calls as part of this statement'
 
269
create event e22830_1 on schedule every 1 hour do
 
270
begin
 
271
call p22830_wait();
 
272
alter event e22830_1 on schedule every (select 8 from dual) hour;
 
273
end|
 
274
create event e22830_2 on schedule every 1 hour do
 
275
begin
 
276
call p22830_wait();
 
277
alter event e22830_2 on schedule every (select 8 from t1) hour;
 
278
end|
 
279
create event e22830_3 on schedule every 1 hour do
 
280
begin
 
281
call p22830_wait();
 
282
alter event e22830_3 on schedule every f22830() hour;
 
283
end|
 
284
create event e22830_4 on schedule every 1 hour do
 
285
begin
 
286
call p22830_wait();
 
287
alter event e22830_4 on schedule every (select f22830() from dual) hour;
 
288
end|
 
289
"All events should be blocked in get_lock()"
 
290
select event_name, event_definition, interval_value, interval_field from information_schema.events order by event_name;
 
291
event_name      event_definition        interval_value  interval_field
 
292
e22830_1        begin
 
293
call p22830_wait();
 
294
alter event e22830_1 on schedule every (select 8 from dual) hour;
 
295
end     1       HOUR
 
296
e22830_2        begin
 
297
call p22830_wait();
 
298
alter event e22830_2 on schedule every (select 8 from t1) hour;
 
299
end     1       HOUR
 
300
e22830_3        begin
 
301
call p22830_wait();
 
302
alter event e22830_3 on schedule every f22830() hour;
 
303
end     1       HOUR
 
304
e22830_4        begin
 
305
call p22830_wait();
 
306
alter event e22830_4 on schedule every (select f22830() from dual) hour;
 
307
end     1       HOUR
 
308
select release_lock('ee_22830');
 
309
release_lock('ee_22830')
 
310
1
 
311
set global event_scheduler=off;
 
312
select event_name, event_definition, interval_value, interval_field from information_schema.events order by event_name;
 
313
event_name      event_definition        interval_value  interval_field
 
314
e22830_1        begin
 
315
call p22830_wait();
 
316
alter event e22830_1 on schedule every (select 8 from dual) hour;
 
317
end     8       HOUR
 
318
e22830_2        begin
 
319
call p22830_wait();
 
320
alter event e22830_2 on schedule every (select 8 from t1) hour;
 
321
end     1       HOUR
 
322
e22830_3        begin
 
323
call p22830_wait();
 
324
alter event e22830_3 on schedule every f22830() hour;
 
325
end     1       HOUR
 
326
e22830_4        begin
 
327
call p22830_wait();
 
328
alter event e22830_4 on schedule every (select f22830() from dual) hour;
 
329
end     1       HOUR
 
330
drop procedure p22830_wait;
 
331
drop function f22830;
 
332
drop event (select a from t2);
 
333
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(select a from t2)' at line 1
 
334
drop event e22830_1;
 
335
drop event e22830_2;
 
336
drop event e22830_3;
 
337
drop event e22830_4;
 
338
drop table t1;
 
339
drop table t2;
 
340
DROP USER mysqltest_u1@localhost;
 
341
CREATE USER mysqltest_u1@localhost;
 
342
GRANT EVENT ON events_test.* TO mysqltest_u1@localhost;
 
343
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
344
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
345
event_name      definer
 
346
e1      root@localhost
 
347
DROP EVENT e1;
 
348
CREATE DEFINER=CURRENT_USER EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
349
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
350
event_name      definer
 
351
e1      root@localhost
 
352
ALTER DEFINER=mysqltest_u1@localhost EVENT e1 ON SCHEDULE EVERY 1 HOUR;
 
353
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
354
event_name      definer
 
355
e1      mysqltest_u1@localhost
 
356
DROP EVENT e1;
 
357
CREATE DEFINER=CURRENT_USER() EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
358
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
359
event_name      definer
 
360
e1      root@localhost
 
361
DROP EVENT e1;
 
362
CREATE DEFINER=mysqltest_u1@localhost EVENT e1 ON SCHEDULE EVERY 1 DAY DO
 
363
SELECT 1;
 
364
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
365
event_name      definer
 
366
e1      mysqltest_u1@localhost
 
367
DROP EVENT e1;
 
368
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
369
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
370
event_name      definer
 
371
e1      mysqltest_u1@localhost
 
372
DROP EVENT e1;
 
373
CREATE DEFINER=CURRENT_USER EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
374
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
375
event_name      definer
 
376
e1      mysqltest_u1@localhost
 
377
ALTER DEFINER=root@localhost EVENT e1 ON SCHEDULE EVERY 1 HOUR;
 
378
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
 
379
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
380
event_name      definer
 
381
e1      mysqltest_u1@localhost
 
382
DROP EVENT e1;
 
383
CREATE DEFINER=CURRENT_USER() EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
384
SELECT event_name, definer FROM INFORMATION_SCHEMA.EVENTS;
 
385
event_name      definer
 
386
e1      mysqltest_u1@localhost
 
387
DROP EVENT e1;
 
388
CREATE DEFINER=root@localhost EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
389
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
 
390
DROP EVENT e1;
 
391
ERROR HY000: Unknown event 'e1'
 
392
DROP USER mysqltest_u1@localhost;
 
393
SET GLOBAL EVENT_SCHEDULER= OFF;
 
394
SET @save_time_zone= @@TIME_ZONE;
 
395
SET TIME_ZONE= '+00:00';
 
396
SET TIMESTAMP= UNIX_TIMESTAMP('2005-12-31 23:58:59');
 
397
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
398
SHOW EVENTS;
 
399
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
400
events_test     e1      root@localhost  +00:00  RECURRING       NULL    1       DAY     2005-12-31 23:58:59     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
401
SET TIME_ZONE= '-01:00';
 
402
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2000-01-01 00:00:00';
 
403
SHOW EVENTS;
 
404
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
405
events_test     e1      root@localhost  -01:00  RECURRING       NULL    1       DAY     2000-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
406
SET TIME_ZONE= '+02:00';
 
407
ALTER EVENT e1 ON SCHEDULE AT '2000-01-02 00:00:00'
 
408
  ON COMPLETION PRESERVE DISABLE;
 
409
SHOW EVENTS;
 
410
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
411
events_test     e1      root@localhost  +02:00  ONE TIME        2000-01-02 00:00:00     NULL    NULL    NULL    NULL    DISABLED        1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
412
SET TIME_ZONE= '-03:00';
 
413
ALTER EVENT e1 ON SCHEDULE EVERY 1 DAY ENDS '2030-01-03 00:00:00'
 
414
  ON COMPLETION PRESERVE DISABLE;
 
415
SHOW EVENTS;
 
416
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
417
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
418
SET TIME_ZONE= '+04:00';
 
419
ALTER EVENT e1 DO SELECT 2;
 
420
SHOW EVENTS;
 
421
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
422
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
423
DROP EVENT e1;
 
424
SET TIME_ZONE='+05:00';
 
425
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
 
426
SELECT 1;
 
427
SET TIMESTAMP= @@TIMESTAMP + 1;
 
428
SET TIME_ZONE='-05:00';
 
429
CREATE EVENT e2 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
 
430
SELECT 1;
 
431
SET TIMESTAMP= @@TIMESTAMP + 1;
 
432
SET TIME_ZONE='+00:00';
 
433
CREATE EVENT e3 ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' DO
 
434
SELECT 1;
 
435
SELECT * FROM INFORMATION_SCHEMA.EVENTS ORDER BY event_name;
 
436
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      CHARACTER_SET_CLIENT    COLLATION_CONNECTION    DATABASE_COLLATION
 
437
def     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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
438
def     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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
439
def     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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
440
SHOW EVENTS;
 
441
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
442
events_test     e1      root@localhost  +05:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
443
events_test     e2      root@localhost  -05:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
444
events_test     e3      root@localhost  +00:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
445
SHOW CREATE EVENT e1;
 
446
Event   sql_mode        time_zone       Create Event    character_set_client    collation_connection    Database Collation
 
447
e1              +05:00  CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1  latin1_swedish_ci       latin1_swedish_ci
 
448
SHOW CREATE EVENT e2;
 
449
Event   sql_mode        time_zone       Create Event    character_set_client    collation_connection    Database Collation
 
450
e2              -05:00  CREATE DEFINER=`root`@`localhost` EVENT `e2` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1  latin1_swedish_ci       latin1_swedish_ci
 
451
SHOW CREATE EVENT e3;
 
452
Event   sql_mode        time_zone       Create Event    character_set_client    collation_connection    Database Collation
 
453
e3              +00:00  CREATE DEFINER=`root`@`localhost` EVENT `e3` ON SCHEDULE EVERY 1 DAY STARTS '2006-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1 latin1  latin1_swedish_ci       latin1_swedish_ci
 
454
The following should fail, and nothing should be altered.
 
455
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
456
  ENDS '1999-01-02 00:00:00';
 
457
ERROR HY000: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
458
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
459
  ENDS '1999-01-02 00:00:00' DISABLE;
 
460
ERROR HY000: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
461
The following should give warnings, and nothing should be created.
 
462
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
463
  ENDS '1999-01-02 00:00:00'
 
464
DO
 
465
SELECT 1;
 
466
Warnings:
 
467
Note    1588    Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
468
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
469
  ENDS '1999-01-02 00:00:00' DISABLE
 
470
DO
 
471
SELECT 1;
 
472
Warnings:
 
473
Note    1588    Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
474
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DO
 
475
SELECT 1;
 
476
Warnings:
 
477
Note    1588    Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
478
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DISABLE
 
479
DO
 
480
SELECT 1;
 
481
Warnings:
 
482
Note    1588    Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
 
483
SHOW EVENTS;
 
484
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
485
events_test     e1      root@localhost  +05:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
486
events_test     e2      root@localhost  -05:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
487
events_test     e3      root@localhost  +00:00  RECURRING       NULL    1       DAY     2006-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
488
The following should succeed giving a warning.
 
489
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
490
  ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE;
 
491
Warnings:
 
492
Note    1544    Event execution time is in the past. Event has been disabled
 
493
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
494
  ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE
 
495
DO
 
496
SELECT 1;
 
497
Warnings:
 
498
Note    1544    Event execution time is in the past. Event has been disabled
 
499
CREATE EVENT e5 ON SCHEDULE AT '1999-01-01 00:00:00'
 
500
  ON COMPLETION PRESERVE
 
501
DO
 
502
SELECT 1;
 
503
Warnings:
 
504
Note    1544    Event execution time is in the past. Event has been disabled
 
505
The following should succeed without warnings.
 
506
ALTER EVENT e2 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00';
 
507
ALTER EVENT e3 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
508
  ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE;
 
509
CREATE EVENT e6 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' DO
 
510
SELECT 1;
 
511
CREATE EVENT e7 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
 
512
  ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE DISABLE
 
513
DO
 
514
SELECT 1;
 
515
CREATE EVENT e8 ON SCHEDULE AT '1999-01-01 00:00:00'
 
516
  ON COMPLETION PRESERVE DISABLE
 
517
DO
 
518
SELECT 1;
 
519
SHOW EVENTS;
 
520
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
521
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
522
events_test     e2      root@localhost  +00:00  RECURRING       NULL    1       HOUR    1999-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
523
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
524
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
525
events_test     e5      root@localhost  +00:00  ONE TIME        1999-01-01 00:00:00     NULL    NULL    NULL    NULL    DISABLED        1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
526
events_test     e6      root@localhost  +00:00  RECURRING       NULL    1       HOUR    1999-01-01 00:00:00     NULL    ENABLED 1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
527
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       latin1  latin1_swedish_ci       latin1_swedish_ci
 
528
events_test     e8      root@localhost  +00:00  ONE TIME        1999-01-01 00:00:00     NULL    NULL    NULL    NULL    DISABLED        1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
529
DROP EVENT e8;
 
530
DROP EVENT e7;
 
531
DROP EVENT e6;
 
532
DROP EVENT e5;
 
533
DROP EVENT e4;
 
534
DROP EVENT e3;
 
535
DROP EVENT e2;
 
536
DROP EVENT e1;
 
537
SET TIME_ZONE=@save_time_zone;
 
538
SET TIMESTAMP=DEFAULT;
 
539
drop event if exists new_event;
 
540
CREATE EVENT new_event ON SCHEDULE EVERY 0 SECOND DO SELECT 1;
 
541
ERROR HY000: INTERVAL is either not positive or too big
 
542
CREATE EVENT new_event ON SCHEDULE EVERY (SELECT 0) SECOND DO SELECT 1;
 
543
ERROR HY000: INTERVAL is either not positive or too big
 
544
CREATE EVENT new_event ON SCHEDULE EVERY "abcdef" SECOND DO SELECT 1;
 
545
ERROR HY000: INTERVAL is either not positive or too big
 
546
CREATE EVENT new_event ON SCHEDULE EVERY "0abcdef" SECOND DO SELECT 1;
 
547
ERROR HY000: INTERVAL is either not positive or too big
 
548
CREATE EVENT new_event ON SCHEDULE EVERY "a1bcdef" SECOND DO SELECT 1;
 
549
ERROR HY000: INTERVAL is either not positive or too big
 
550
CREATE EVENT new_event ON SCHEDULE EVERY (SELECT "abcdef" UNION SELECT "abcdef") SECOND DO SELECT 1;
 
551
ERROR HY000: INTERVAL is either not positive or too big
 
552
CREATE EVENT new_event ON SCHEDULE EVERY (SELECT "0abcdef") SECOND DO SELECT 1;
 
553
ERROR HY000: INTERVAL is either not positive or too big
 
554
CREATE EVENT new_event ON SCHEDULE EVERY (SELECT "a1bcdef") SECOND DO SELECT 1;
 
555
ERROR HY000: INTERVAL is either not positive or too big
 
556
CREATE EVENT new_event ON SCHEDULE AT "every day" DO SELECT 1;
 
557
ERROR HY000: Incorrect AT value: 'every day'
 
558
CREATE EVENT new_event ON SCHEDULE AT "0every day" DO SELECT 1;
 
559
ERROR HY000: Incorrect AT value: '0every day'
 
560
CREATE EVENT new_event ON SCHEDULE AT (SELECT "every day") DO SELECT 1;
 
561
ERROR HY000: Incorrect AT value: 'every day'
 
562
CREATE EVENT new_event ON SCHEDULE AT NOW() STARTS NOW() DO SELECT 1;
 
563
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STARTS NOW() DO SELECT 1' at line 1
 
564
CREATE EVENT new_event ON SCHEDULE AT NOW() ENDS NOW() DO SELECT 1;
 
565
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ENDS NOW() DO SELECT 1' at line 1
 
566
CREATE EVENT new_event ON SCHEDULE AT NOW() STARTS NOW() ENDS NOW() DO SELECT 1;
 
567
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STARTS NOW() ENDS NOW() DO SELECT 1' at line 1
 
568
USE test;
 
569
SHOW GRANTS FOR CURRENT_USER;
 
570
Grants for root@localhost
 
571
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
 
572
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
 
573
SET GLOBAL event_scheduler = ON;
 
574
CREATE TABLE events_test.event_log
 
575
(id int KEY AUTO_INCREMENT, ev_nm char(40), ev_cnt int, ev_tm timestamp)
 
576
ENGINE=MyISAM;
 
577
SET autocommit=0;
 
578
CREATE USER evtest1@localhost;
 
579
SET PASSWORD FOR evtest1@localhost = password('ev1');
 
580
REVOKE ALL PRIVILEGES, GRANT OPTION FROM evtest1@localhost;
 
581
GRANT create, insert, select, event ON events_test.* TO evtest1@localhost;
 
582
GRANT select,insert ON test.* TO evtest1@localhost;
 
583
SHOW GRANTS FOR evtest1@localhost;
 
584
Grants for evtest1@localhost
 
585
GRANT USAGE ON *.* TO 'evtest1'@'localhost' IDENTIFIED BY PASSWORD '*3170F3644E31580C25DE4A08F4C07CC9A2D40C32'
 
586
GRANT SELECT, INSERT ON `test`.* TO 'evtest1'@'localhost'
 
587
GRANT SELECT, INSERT, CREATE, EVENT ON `events_test`.* TO 'evtest1'@'localhost'
 
588
connection e1;
 
589
CREATE EVENT ev_sched_1823 ON SCHEDULE EVERY 2 SECOND
 
590
DO BEGIN
 
591
SET AUTOCOMMIT = 0;
 
592
SET @evname = 'ev_sched_1823';
 
593
SET @cnt = 0;
 
594
SELECT COUNT(*) INTO @cnt FROM events_test.event_log WHERE ev_nm = @evname;
 
595
IF @cnt < 6 THEN
 
596
INSERT INTO events_test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
 
597
COMMIT;
 
598
END IF;
 
599
SELECT COUNT(*) INTO @cnt FROM events_test.event_log WHERE ev_nm = @evname;
 
600
IF @cnt < 6 THEN
 
601
INSERT INTO events_test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp());
 
602
ROLLBACK;
 
603
END IF;
 
604
END;|
 
605
Sleep till the first INSERT into events_test.event_log occured
 
606
SELECT COUNT(*) > 0 AS "Expect 1" FROM events_test.event_log;
 
607
Expect 1
 
608
1
 
609
connection default;
 
610
DROP USER evtest1@localhost;
 
611
Sleep 4 seconds
 
612
SELECT COUNT(*) INTO @row_cnt FROM events_test.event_log;
 
613
Sleep 4 seconds
 
614
SELECT COUNT(*) > @row_cnt AS "Expect 0" FROM events_test.event_log;
 
615
Expect 0
 
616
0
 
617
DROP EVENT events_test.ev_sched_1823;
 
618
DROP TABLE events_test.event_log;
 
619
SET GLOBAL event_scheduler = OFF;
 
620
SET GLOBAL event_scheduler= ON;
 
621
CREATE EVENT bug28641 ON SCHEDULE AT '2038.01.18 03:00:00'
 
622
DO BEGIN
 
623
SELECT 1;
 
624
END;|
 
625
SET GLOBAL event_scheduler= OFF;
 
626
DROP EVENT bug28641;
 
627
 
 
628
#####################################################################
 
629
#
 
630
# BUG#31111: --read-only crashes MySQL (events fail to load).
 
631
#
 
632
#####################################################################
 
633
 
 
634
DROP USER mysqltest_u1@localhost;
 
635
DROP EVENT IF EXISTS e1;
 
636
DROP EVENT IF EXISTS e2;
 
637
 
 
638
GRANT EVENT ON *.* TO mysqltest_u1@localhost;
 
639
 
 
640
SET GLOBAL READ_ONLY = 1;
 
641
 
 
642
#
 
643
# Connection: u1_con (mysqltest_u1@localhost/events_test).
 
644
#
 
645
 
 
646
CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
 
647
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
 
648
 
 
649
ALTER EVENT e1 COMMENT 'comment';
 
650
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
 
651
 
 
652
DROP EVENT e1;
 
653
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
 
654
 
 
655
#
 
656
# Connection: root_con (root@localhost/events_test).
 
657
#
 
658
 
 
659
CREATE EVENT e1 ON SCHEDULE AT '2020-01-01 00:00:00' DO SET @a = 1;
 
660
 
 
661
ALTER EVENT e1 COMMENT 'comment';
 
662
 
 
663
DROP EVENT e1;
 
664
 
 
665
SET GLOBAL READ_ONLY = 0;
 
666
 
 
667
#
 
668
# Connection: u1_con (mysqltest_u1@localhost/test).
 
669
#
 
670
 
 
671
CREATE EVENT e1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND DO SET @a = 1;
 
672
CREATE EVENT e2 ON SCHEDULE EVERY 1 SECOND DO SET @a = 1;
 
673
 
 
674
SELECT
 
675
event_name,
 
676
last_executed IS NULL,
 
677
definer
 
678
FROM INFORMATION_SCHEMA.EVENTS
 
679
WHERE event_schema = 'events_test';
 
680
event_name      last_executed IS NULL   definer
 
681
e1      1       mysqltest_u1@localhost
 
682
e2      1       mysqltest_u1@localhost
 
683
 
 
684
#
 
685
# Connection: root_con (root@localhost/events_test).
 
686
#
 
687
 
 
688
SET GLOBAL READ_ONLY = 1;
 
689
 
 
690
SET GLOBAL EVENT_SCHEDULER = ON;
 
691
 
 
692
# Waiting for the event scheduler to execute and drop event e1...
 
693
 
 
694
# Waiting for the event scheduler to execute and update event e2...
 
695
 
 
696
SET GLOBAL EVENT_SCHEDULER = OFF;
 
697
 
 
698
SELECT
 
699
event_name,
 
700
last_executed IS NULL,
 
701
definer
 
702
FROM INFORMATION_SCHEMA.EVENTS
 
703
WHERE event_schema = 'events_test';
 
704
event_name      last_executed IS NULL   definer
 
705
e2      0       mysqltest_u1@localhost
 
706
 
 
707
DROP EVENT e1;
 
708
ERROR HY000: Unknown event 'e1'
 
709
 
 
710
# Cleanup.
 
711
 
 
712
DROP EVENT e2;
 
713
 
 
714
SET GLOBAL READ_ONLY = 0;
 
715
 
 
716
#
 
717
# Connection: default
 
718
#
 
719
 
 
720
DROP USER mysqltest_u1@localhost;
 
721
 
 
722
#####################################################################
 
723
#
 
724
# End of BUG#31111.
 
725
#
 
726
#####################################################################
 
727
 
 
728
drop procedure if exists p;
 
729
set @old_mode= @@sql_mode;
 
730
set @@sql_mode= cast(pow(2,32)-1 as unsigned integer);
 
731
create event e1 on schedule every 1 day do select 1;
 
732
select @@sql_mode into @full_mode;
 
733
set @@sql_mode= @old_mode;
 
734
select replace(@full_mode, 'ALLOW_INVALID_DATES', 'INVALID_DATES') into @full_mode;
 
735
select name from mysql.event where name = 'e1' and sql_mode = @full_mode;
 
736
name
 
737
e1
 
738
drop event e1;
 
739
SET @old_server_id = @@GLOBAL.server_id;
 
740
SET GLOBAL server_id = (1 << 32) - 1;
 
741
SELECT @@GLOBAL.server_id;
 
742
@@GLOBAL.server_id
 
743
4294967295
 
744
CREATE EVENT ev1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
745
SELECT event_name, originator FROM INFORMATION_SCHEMA.EVENTS;
 
746
event_name      originator
 
747
ev1     4294967295
 
748
DROP EVENT ev1;
 
749
SET GLOBAL server_id = @old_server_id;
 
750
CREATE DATABASE event_test12;
 
751
USE event_test12;
 
752
CREATE EVENT ev1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 
753
CREATE DATABASE event_test1;
 
754
USE event_test1;
 
755
SHOW EVENTS;
 
756
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
757
DROP DATABASE event_test1;
 
758
DROP DATABASE event_test12;
 
759
#
 
760
# Bug#12546938 (formerly known as bug#61005):
 
761
# CREATE IF NOT EXIST EVENT WILL CREATE MULTIPLE RUNNING EVENTS
 
762
#
 
763
USE events_test;
 
764
SET GLOBAL event_scheduler = ON;
 
765
DROP TABLE IF EXISTS table_bug12546938;
 
766
DROP EVENT IF EXISTS event_Bug12546938;
 
767
CREATE TABLE table_bug12546938 (i INT);
 
768
# Create an event which will be executed with a small delay
 
769
# and won't be automatically dropped after that.
 
770
CREATE EVENT event_Bug12546938
 
771
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND ON COMPLETION PRESERVE
 
772
ENABLE DO
 
773
BEGIN 
 
774
INSERT INTO table_bug12546938 VALUES(1);
 
775
END
 
776
|
 
777
# Now try to create the same event using CREATE EVENT IF NOT EXISTS.
 
778
# A warning should be emitted. A new event should not be created nor
 
779
# the old event should be re-executed.
 
780
CREATE EVENT IF NOT EXISTS event_bug12546938
 
781
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND ON COMPLETION PRESERVE
 
782
ENABLE DO
 
783
BEGIN
 
784
INSERT INTO table_bug12546938 VALUES (1);
 
785
END
 
786
|
 
787
Warnings:
 
788
Note    1537    Event 'event_bug12546938' already exists
 
789
# Wait until at least one instance of event is executed.
 
790
# Check that only one instance of our event was executed.
 
791
SELECT COUNT(*) FROM table_bug12546938;
 
792
COUNT(*)
 
793
1
 
794
# Clean-up.
 
795
DROP EVENT IF EXISTS event_Bug12546938;
 
796
DROP TABLE table_bug12546938;
 
797
SET GLOBAL EVENT_SCHEDULER = OFF;
 
798
DROP DATABASE IF EXISTS event_test11764334;
 
799
CREATE DATABASE event_test11764334;
 
800
USE event_test11764334;
 
801
CREATE EVENT ev1 ON SCHEDULE EVERY 3 SECOND DISABLE DO SELECT 1;
 
802
SHOW EVENTS IN event_test11764334 WHERE NAME='ev1';
 
803
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
804
event_test11764334      ev1     root@localhost  SYSTEM  RECURRING       NULL    3       SECOND  #       #       DISABLED        1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
805
ALTER EVENT ev1 ON SCHEDULE EVERY 4 SECOND;
 
806
SHOW EVENTS IN event_test11764334 WHERE NAME='ev1';
 
807
Db      Name    Definer Time zone       Type    Execute at      Interval value  Interval field  Starts  Ends    Status  Originator      character_set_client    collation_connection    Database Collation
 
808
event_test11764334      ev1     root@localhost  SYSTEM  RECURRING       NULL    4       SECOND  #       #       DISABLED        1       latin1  latin1_swedish_ci       latin1_swedish_ci
 
809
DROP EVENT ev1;
 
810
DROP DATABASE event_test11764334;
 
811
USE test;
 
812
DROP DATABASE events_test;
 
813
SET GLOBAL event_scheduler= 'ON';
 
814
SET @@global.concurrent_insert= @concurrent_insert;