124 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Tests that require transactions
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								-- source include/have_innodb.inc
							 | 
						||
| 
								 | 
							
								-- source include/not_embedded.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop database if exists events_test;
							 | 
						||
| 
								 | 
							
								drop database if exists mysqltest_no_such_database;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								create database events_test;
							 | 
						||
| 
								 | 
							
								use events_test;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--echo
							 | 
						||
| 
								 | 
							
								--echo Test that Events DDL issue an implicit COMMIT
							 | 
						||
| 
								 | 
							
								--echo
							 | 
						||
| 
								 | 
							
								--echo
							 | 
						||
| 
								 | 
							
								set autocommit=off;
							 | 
						||
| 
								 | 
							
								# Sanity check
							 | 
						||
| 
								 | 
							
								select @@autocommit;
							 | 
						||
| 
								 | 
							
								create table t1 (a varchar(255)) engine=innodb;
							 | 
						||
| 
								 | 
							
								# Basic: check that successful Events DDL commits pending transaction
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: create event");
							 | 
						||
| 
								 | 
							
								create event e1 on schedule every 1 day do select 1;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: alter event");
							 | 
						||
| 
								 | 
							
								alter event e1 on schedule every 2 day do select 2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: alter event rename");
							 | 
						||
| 
								 | 
							
								alter event e1 rename to e2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: drop event");
							 | 
						||
| 
								 | 
							
								drop event e2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: drop event if exists");
							 | 
						||
| 
								 | 
							
								drop event if exists e2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								create event e1 on schedule every 1 day do select 1;
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: create event if not exists");
							 | 
						||
| 
								 | 
							
								create event if not exists e1 on schedule every 2 day do select 2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								--echo
							 | 
						||
| 
								 | 
							
								--echo Now check various error conditions: make sure we issue an
							 | 
						||
| 
								 | 
							
								--echo implicit commit anyway
							 | 
						||
| 
								 | 
							
								--echo
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: create event: event already exists");
							 | 
						||
| 
								 | 
							
								--error ER_EVENT_ALREADY_EXISTS
							 | 
						||
| 
								 | 
							
								create event e1 on schedule every 2 day do select 2;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: alter event rename: rename to same name");
							 | 
						||
| 
								 | 
							
								--error ER_EVENT_SAME_NAME
							 | 
						||
| 
								 | 
							
								alter event e1 rename to e1;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								create event e2 on schedule every 3 day do select 3;
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: alter event rename: destination exists");
							 | 
						||
| 
								 | 
							
								--error ER_EVENT_ALREADY_EXISTS
							 | 
						||
| 
								 | 
							
								alter event e2 rename to e1;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								begin work;
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values ("OK: create event: database does not exist");
							 | 
						||
| 
								 | 
							
								--error ER_BAD_DB_ERROR
							 | 
						||
| 
								 | 
							
								create event mysqltest_no_such_database.e1 on schedule every 1 day do select 1;
							 | 
						||
| 
								 | 
							
								rollback work;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								delete from t1;
							 | 
						||
| 
								 | 
							
								commit work;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Cleanup
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let $wait_condition=
							 | 
						||
| 
								 | 
							
								  select count(*) = 0 from information_schema.processlist
							 | 
						||
| 
								 | 
							
								  where db='events_test' and command = 'Connect' and user=current_user();
							 | 
						||
| 
								 | 
							
								--source include/wait_condition.inc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop database events_test;
							 | 
						||
| 
								 | 
							
								
							 |