mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			145 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # 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
 | |
| --disable_warnings
 | |
| 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;
 | |
| --disable_service_connection
 | |
| 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';
 | |
| --enable_service_connection
 | |
| 
 | |
| --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 @old_event_scheduler=@@event_scheduler;
 | |
| 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=@old_event_scheduler;
 | |
| --source include/check_events_off.inc
 | 
