mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 72ba96a48e
			
		
	
	
	72ba96a48e
	
	
	
		
			
			Tests with checking metadata or that cannot be run with the view-protocol are excluded from --view-protocol. For tests that do not allow the use of an additional connection, the util connection is disabled with "--disable_service_connection". Also cases with bugs for --view-protocol are disabled.
		
			
				
	
	
		
			152 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
| # Tests that require transactions
 | |
| #
 | |
| -- source include/have_innodb.inc
 | |
| -- source include/not_embedded.inc
 | |
| -- source include/no_view_protocol.inc
 | |
| 
 | |
| set sql_mode="";
 | |
| 
 | |
| --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;
 | |
| 
 | |
| 
 | |
| --echo #
 | |
| --echo # Bug#54105 assert in MDL_context::release_locks_stored_before
 | |
| --echo #
 | |
| 
 | |
| USE test;
 | |
| 
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS t1, t2;
 | |
| DROP EVENT IF EXISTS e1;
 | |
| --enable_warnings
 | |
| 
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT);
 | |
| CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 | |
| 
 | |
| START TRANSACTION;
 | |
| INSERT INTO t1 VALUES (1);
 | |
| SAVEPOINT A;
 | |
| --replace_regex /STARTS '[^']+'/STARTS '#'/
 | |
| SHOW CREATE EVENT e1;
 | |
| SELECT * FROM t2;
 | |
| ROLLBACK WORK TO SAVEPOINT A;
 | |
| 
 | |
| DROP TABLE t1, t2;
 | |
| DROP EVENT e1;
 |