mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fix for bug#16548 (Events: can't alter clause for preserve)
WL #1034 (Internal CRON)
This commit is contained in:
@ -6,6 +6,9 @@ Note 1305 Event event1 does not exist
|
||||
create event event1 on schedule every 15 minute starts now() ends date_add(now(), interval 5 hour) DO begin end;
|
||||
alter event event1 rename to event2;
|
||||
alter event event2 disabled;
|
||||
alter event event2 on completion not preserve;
|
||||
alter event event2 on schedule every 1 year on completion preserve rename to event3 comment "new comment" do begin select 1; end__
|
||||
alter event event3 rename to event2;
|
||||
drop event event2;
|
||||
create event event2 on schedule every 2 second starts now() ends date_add(now(), interval 5 hour) comment "some" DO begin end;
|
||||
drop event event2;
|
||||
@ -27,69 +30,4 @@ set event_scheduler=0;
|
||||
ERROR HY000: Variable 'event_scheduler' is a GLOBAL variable and should be set with SET GLOBAL
|
||||
set global event_scheduler=2;
|
||||
ERROR 42000: Variable 'event_scheduler' can't be set to the value of '2'
|
||||
set global event_scheduler=0;
|
||||
select count(*) from mysql.event;
|
||||
count(*)
|
||||
0
|
||||
select get_lock("test_lock1", 20);
|
||||
get_lock("test_lock1", 20)
|
||||
1
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock1", 20);
|
||||
select count(*) from mysql.event;
|
||||
count(*)
|
||||
1
|
||||
select release_lock("test_lock1");
|
||||
release_lock("test_lock1")
|
||||
1
|
||||
drop event закачка;
|
||||
select count(*) from mysql.event;
|
||||
count(*)
|
||||
0
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock2", 20);
|
||||
get_lock("test_lock2", 20)
|
||||
1
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
select release_lock("test_lock2");
|
||||
release_lock("test_lock2")
|
||||
1
|
||||
drop event закачка;
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock2_1", 20);
|
||||
get_lock("test_lock2_1", 20)
|
||||
1
|
||||
create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
set global event_scheduler=0;
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
select release_lock("test_lock2_1");
|
||||
release_lock("test_lock2_1")
|
||||
1
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
drop event закачка21;
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock3", 20);
|
||||
get_lock("test_lock3", 20)
|
||||
1
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock3", 20);
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
drop event закачка;
|
||||
select release_lock("test_lock3");
|
||||
release_lock("test_lock3")
|
||||
1
|
||||
set global event_scheduler=0;
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
drop database events_test;
|
||||
|
@ -19,7 +19,6 @@ innodb_concurrent : Results are not deterministic, Elliot will fix (BUG#3300)
|
||||
subselect : Bug#15706
|
||||
ps_7ndb : dbug assert in RBR mode when executing test suite
|
||||
rpl_ddl : Bug#15963 SBR does not show "Definer" correctly
|
||||
events : Affects flush test case. A table lock not released somewhere
|
||||
ndb_binlog_basic : Results are not deterministic, Tomas will fix
|
||||
rpl_ndb_basic : Bug#16228
|
||||
rpl_sp : Bug #16456
|
||||
|
@ -4,6 +4,11 @@ drop event if exists event1;
|
||||
create event event1 on schedule every 15 minute starts now() ends date_add(now(), interval 5 hour) DO begin end;
|
||||
alter event event1 rename to event2;
|
||||
alter event event2 disabled;
|
||||
alter event event2 on completion not preserve;
|
||||
delimiter __;
|
||||
alter event event2 on schedule every 1 year on completion preserve rename to event3 comment "new comment" do begin select 1; end__
|
||||
delimiter ;__
|
||||
alter event event3 rename to event2;
|
||||
|
||||
drop event event2;
|
||||
create event event2 on schedule every 2 second starts now() ends date_add(now(), interval 5 hour) comment "some" DO begin end;
|
||||
@ -28,67 +33,67 @@ set event_scheduler=0;
|
||||
--error 1231
|
||||
set global event_scheduler=2;
|
||||
|
||||
set global event_scheduler=0;
|
||||
select count(*) from mysql.event;
|
||||
select get_lock("test_lock1", 20);
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock1", 20);
|
||||
select count(*) from mysql.event;
|
||||
#show processlist;
|
||||
select release_lock("test_lock1");
|
||||
drop event закачка;
|
||||
select count(*) from mysql.event;
|
||||
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock2", 20);
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
|
||||
select sleep(2);
|
||||
#show processlist;
|
||||
select release_lock("test_lock2");
|
||||
drop event закачка;
|
||||
|
||||
#set global event_scheduler=0;
|
||||
#select count(*) from mysql.event;
|
||||
#select get_lock("test_lock1", 20);
|
||||
#create event закачка on schedule every 10 hour do select get_lock("test_lock1", 20);
|
||||
#select count(*) from mysql.event;
|
||||
##show processlist;
|
||||
#select release_lock("test_lock1");
|
||||
#drop event закачка;
|
||||
#select count(*) from mysql.event;
|
||||
#
|
||||
# 1. get a lock
|
||||
# 2. create an event
|
||||
# 3. sleep so it has time to start
|
||||
# 4. should appear in processlist
|
||||
# 5. kill the scheduler, it will wait for the child to stop
|
||||
# 6. both processes should be there on show processlist
|
||||
# 7. release the lock and sleep, both scheduler and child should end
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock2_1", 20);
|
||||
create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
|
||||
select sleep(2);
|
||||
#set global event_scheduler=1;
|
||||
#select get_lock("test_lock2", 20);
|
||||
#create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
|
||||
#select sleep(2);
|
||||
#show processlist;
|
||||
set global event_scheduler=0;
|
||||
select sleep(2);
|
||||
#show processlist;
|
||||
select release_lock("test_lock2_1");
|
||||
select sleep(2);
|
||||
#show processlist;
|
||||
drop event закачка21;
|
||||
#select release_lock("test_lock2");
|
||||
#drop event закачка;
|
||||
|
||||
set global event_scheduler=1;
|
||||
select get_lock("test_lock3", 20);
|
||||
create event закачка on schedule every 10 hour do select get_lock("test_lock3", 20);
|
||||
select sleep(2);
|
||||
##
|
||||
## 1. get a lock
|
||||
## 2. create an event
|
||||
## 3. sleep so it has time to start
|
||||
## 4. should appear in processlist
|
||||
## 5. kill the scheduler, it will wait for the child to stop
|
||||
## 6. both processes should be there on show processlist
|
||||
## 7. release the lock and sleep, both scheduler and child should end
|
||||
#set global event_scheduler=1;
|
||||
#select get_lock("test_lock2_1", 20);
|
||||
#create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
|
||||
#select sleep(2);
|
||||
##show processlist;
|
||||
#set global event_scheduler=0;
|
||||
#select sleep(2);
|
||||
##show processlist;
|
||||
#select release_lock("test_lock2_1");
|
||||
#select sleep(2);
|
||||
##show processlist;
|
||||
#drop event закачка21;
|
||||
|
||||
#set global event_scheduler=1;
|
||||
#select get_lock("test_lock3", 20);
|
||||
#create event закачка on schedule every 10 hour do select get_lock("test_lock3", 20);
|
||||
#select sleep(2);
|
||||
#show processlist;
|
||||
drop event закачка;
|
||||
select release_lock("test_lock3");
|
||||
#drop event закачка;
|
||||
#select release_lock("test_lock3");
|
||||
|
||||
#
|
||||
# test with very often occuring event
|
||||
# (disabled for now, locks)
|
||||
#select get_lock("test_lock4", 20);
|
||||
#create event закачка4 on schedule every 1 second do select get_lock("test_lock4", 20);
|
||||
#select sleep(3);
|
||||
#show processlist;
|
||||
#drop event закачка4;
|
||||
#select release_lock("test_lock4");
|
||||
##select get_lock("test_lock4", 20);
|
||||
##create event закачка4 on schedule every 1 second do select get_lock("test_lock4", 20);
|
||||
##select sleep(3);
|
||||
##show processlist;
|
||||
##drop event закачка4;
|
||||
##select release_lock("test_lock4");
|
||||
|
||||
set global event_scheduler=0;
|
||||
select sleep(2);
|
||||
#show processlist;
|
||||
#the following locks for some reason and is a bug, commented for now
|
||||
#select count(*) from mysql.event;
|
||||
#set global event_scheduler=0;
|
||||
#select sleep(2);
|
||||
##show processlist;
|
||||
##the following locks for some reason and is a bug, commented for now
|
||||
##select count(*) from mysql.event;
|
||||
|
||||
drop database events_test;
|
||||
|
Reference in New Issue
Block a user