142 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			142 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Can't test with embedded server that doesn't support grants | ||
|  | --source include/not_embedded.inc | ||
|  | --source include/big_test.inc | ||
|  | 
 | ||
|  | CREATE DATABASE IF NOT EXISTS events_test; | ||
|  | # | ||
|  | # DROP DATABASE test start (bug #16406) | ||
|  | # | ||
|  | CREATE DATABASE events_conn1_test2; | ||
|  | # BUG#20676: MySQL in debug mode has a limit of 100 waiters | ||
|  | # (in mysys/thr_lock.c), so use three different tables to insert into. | ||
|  | CREATE TABLE events_test.fill_it1(test_name varchar(20), occur datetime); | ||
|  | CREATE TABLE events_test.fill_it2(test_name varchar(20), occur datetime); | ||
|  | CREATE TABLE events_test.fill_it3(test_name varchar(20), occur datetime); | ||
|  | CREATE USER event_user2@localhost; | ||
|  | CREATE DATABASE events_conn2_db; | ||
|  | GRANT ALL ON *.* TO event_user2@localhost; | ||
|  | CREATE USER event_user3@localhost; | ||
|  | CREATE DATABASE events_conn3_db; | ||
|  | GRANT ALL ON *.* TO event_user3@localhost; | ||
|  | connect (conn2,localhost,event_user2,,events_conn2_db); | ||
|  | --echo "In the second connection we create some events which won't be dropped till the end" | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT conn2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it1 VALUES("conn2_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | connect (conn3,localhost,event_user3,,events_conn3_db); | ||
|  | --echo "In the second connection we create some events which won't be dropped till the end" | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT conn3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it1 VALUES("conn3_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | connection default; | ||
|  | USE events_conn1_test2; | ||
|  | CREATE EVENT ev_drop1 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1; | ||
|  | CREATE EVENT ev_drop2 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1; | ||
|  | CREATE EVENT ev_drop3 ON SCHEDULE EVERY 10 MINUTE DISABLE DO SELECT 1; | ||
|  | USE events_test; | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS; | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test2'; | ||
|  | DROP DATABASE events_conn1_test2; | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test2'; | ||
|  | 
 | ||
|  | --echo "Now testing stability - dropping db -> events while they are running" | ||
|  | CREATE DATABASE events_conn1_test2; | ||
|  | USE events_conn1_test2; | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT conn1_round1_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it2 VALUES("conn1_round1_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test2'; | ||
|  | SET GLOBAL event_scheduler=on; | ||
|  | --sleep 2.5 | ||
|  | DROP DATABASE events_conn1_test2; | ||
|  | 
 | ||
|  | SET GLOBAL event_scheduler=off; | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test2'; | ||
|  | CREATE DATABASE events_conn1_test3; | ||
|  | USE events_conn1_test3; | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT conn1_round2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it2 VALUES("conn1_round2_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | SET GLOBAL event_scheduler=on; | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test3'; | ||
|  | CREATE DATABASE events_conn1_test4; | ||
|  | USE events_conn1_test4; | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT conn1_round3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it3 VALUES("conn1_round3_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | 
 | ||
|  | CREATE DATABASE events_conn1_test2; | ||
|  | USE events_conn1_test2; | ||
|  | --disable_query_log | ||
|  | let $1= 50; | ||
|  | while ($1) | ||
|  | { | ||
|  |   eval CREATE EVENT ev_round4_drop$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it3 VALUES("conn1_round4_ev$1", NOW()); | ||
|  |   dec $1; | ||
|  | } | ||
|  | --enable_query_log | ||
|  | SELECT COUNT(*) FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='events_conn1_test2'; | ||
|  | --sleep 2.5 | ||
|  | connection conn2; | ||
|  | --send | ||
|  | DROP DATABASE events_conn2_db; | ||
|  | connection conn3; | ||
|  | --send | ||
|  | DROP DATABASE events_conn3_db; | ||
|  | connection default; | ||
|  | # --send | ||
|  | DROP DATABASE events_conn1_test2; | ||
|  | DROP DATABASE events_conn1_test3; | ||
|  | SET GLOBAL event_scheduler=off; | ||
|  | DROP DATABASE events_conn1_test4; | ||
|  | SET GLOBAL event_scheduler=on; | ||
|  | connection conn2; | ||
|  | reap; | ||
|  | disconnect conn2; | ||
|  | connection conn3; | ||
|  | reap; | ||
|  | disconnect conn3; | ||
|  | connection default; | ||
|  | USE events_test; | ||
|  | DROP TABLE fill_it1; | ||
|  | DROP TABLE fill_it2; | ||
|  | DROP TABLE fill_it3; | ||
|  | --disable_query_log | ||
|  | DROP USER event_user2@localhost; | ||
|  | DROP USER event_user3@localhost; | ||
|  | --enable_query_log | ||
|  | # | ||
|  | # DROP DATABASE test end (bug #16406) | ||
|  | # | ||
|  | 
 | ||
|  | DROP DATABASE events_test; | ||
|  | 
 | ||
|  | # Cleanup | ||
|  | SET GLOBAL event_scheduler=off; | ||
|  | --source include/check_events_off.inc |