初版
This commit is contained in:
123
build/lib/mysql/mysql-test/t/events_trans.test
Normal file
123
build/lib/mysql/mysql-test/t/events_trans.test
Normal file
@@ -0,0 +1,123 @@
|
||||
#
|
||||
# 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;
|
||||
|
||||
Reference in New Issue
Block a user