mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
set sql_mode="";
 | 
						|
drop database if exists events_test;
 | 
						|
drop database if exists mysqltest_no_such_database;
 | 
						|
create database events_test;
 | 
						|
use events_test;
 | 
						|
 | 
						|
Test that Events DDL issue an implicit COMMIT
 | 
						|
 | 
						|
 | 
						|
set autocommit=off;
 | 
						|
select @@autocommit;
 | 
						|
@@autocommit
 | 
						|
0
 | 
						|
create table t1 (a varchar(255)) engine=innodb;
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: create event");
 | 
						|
create event e1 on schedule every 1 day do select 1;
 | 
						|
Warnings:
 | 
						|
Warning	1105	Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: create event
 | 
						|
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;
 | 
						|
a
 | 
						|
OK: alter event
 | 
						|
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;
 | 
						|
a
 | 
						|
OK: alter event rename
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: drop event");
 | 
						|
drop event e2;
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: drop event
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: drop event if exists");
 | 
						|
drop event if exists e2;
 | 
						|
Warnings:
 | 
						|
Note	1305	Event e2 does not exist
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: drop event if exists
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
create event e1 on schedule every 1 day do select 1;
 | 
						|
Warnings:
 | 
						|
Warning	1105	Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
 | 
						|
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;
 | 
						|
Warnings:
 | 
						|
Note	1537	Event 'e1' already exists
 | 
						|
Warning	1105	Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: create event if not exists
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
 | 
						|
Now check various error conditions: make sure we issue an
 | 
						|
implicit commit anyway
 | 
						|
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: create event: event already exists");
 | 
						|
create event e1 on schedule every 2 day do select 2;
 | 
						|
ERROR HY000: Event 'e1' already exists
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: create event: event already exists
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: alter event rename: rename to same name");
 | 
						|
alter event e1 rename to e1;
 | 
						|
ERROR HY000: Same old and new event name
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: alter event rename: rename to same name
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
create event e2 on schedule every 3 day do select 3;
 | 
						|
Warnings:
 | 
						|
Warning	1105	Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: alter event rename: destination exists");
 | 
						|
alter event e2 rename to e1;
 | 
						|
ERROR HY000: Event 'e1' already exists
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: alter event rename: destination exists
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
begin work;
 | 
						|
insert into t1 (a) values ("OK: create event: database does not exist");
 | 
						|
create event mysqltest_no_such_database.e1 on schedule every 1 day do select 1;
 | 
						|
ERROR 42000: Unknown database 'mysqltest_no_such_database'
 | 
						|
rollback work;
 | 
						|
select * from t1;
 | 
						|
a
 | 
						|
OK: create event: database does not exist
 | 
						|
delete from t1;
 | 
						|
commit work;
 | 
						|
drop database events_test;
 | 
						|
#
 | 
						|
# Bug#54105 assert in MDL_context::release_locks_stored_before
 | 
						|
#
 | 
						|
USE test;
 | 
						|
DROP TABLE IF EXISTS t1, t2;
 | 
						|
DROP EVENT IF EXISTS e1;
 | 
						|
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | 
						|
CREATE TABLE t2 (a INT);
 | 
						|
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT 1;
 | 
						|
Warnings:
 | 
						|
Warning	1105	Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
 | 
						|
START TRANSACTION;
 | 
						|
INSERT INTO t1 VALUES (1);
 | 
						|
SAVEPOINT A;
 | 
						|
SHOW CREATE EVENT e1;
 | 
						|
Event	sql_mode	time_zone	Create Event	character_set_client	collation_connection	Database Collation
 | 
						|
e1		SYSTEM	CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 1 DAY STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 1	latin1	latin1_swedish_ci	latin1_swedish_ci
 | 
						|
SELECT * FROM t2;
 | 
						|
a
 | 
						|
ROLLBACK WORK TO SAVEPOINT A;
 | 
						|
DROP TABLE t1, t2;
 | 
						|
DROP EVENT e1;
 |