1#
2# Tests that require transactions
3#
4-- source include/not_embedded.inc
5-- source include/have_innodb.inc
6--disable_warnings
7drop database if exists events_test;
8drop database if exists mysqltest_db2;
9--enable_warnings
10create database events_test;
11use events_test;
12
13#
14# Privilege checks
15#
16set @orig_sql_mode= @@sql_mode;
17set sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER',''));
18grant create, insert, select, delete on mysqltest_db2.*
19  to mysqltest_user1@localhost;
20set sql_mode= @orig_sql_mode;
21create database mysqltest_db2;
22connect (conn1,localhost,mysqltest_user1,,mysqltest_db2);
23set autocommit=off;
24# Sanity check
25select @@autocommit;
26create table t1 (a varchar(255)) engine=innodb;
27# Not enough privileges to CREATE EVENT
28begin work;
29insert into t1 (a) values ("OK: create event: insufficient privileges");
30--error ER_DBACCESS_DENIED_ERROR
31create event e1 on schedule every 1 day do select 1;
32rollback work;
33select * from t1;
34delete from t1;
35commit work;
36# Not enough privileges to ALTER EVENT
37begin work;
38insert into t1 (a) values ("OK: alter event: insufficient privileges");
39--error ER_DBACCESS_DENIED_ERROR
40alter event e1 on schedule every 1 day do select 1;
41rollback work;
42select * from t1;
43delete from t1;
44commit work;
45# Not enough privileges to DROP EVENT
46begin work;
47insert into t1 (a) values ("OK: drop event: insufficient privileges");
48--error ER_DBACCESS_DENIED_ERROR
49drop event e1;
50rollback work;
51select * from t1;
52delete from t1;
53commit work;
54# Cleanup
55disconnect conn1;
56--source include/wait_until_disconnected.inc
57connection default;
58drop user mysqltest_user1@localhost;
59drop database mysqltest_db2;
60
61#
62# Cleanup
63#
64let $wait_condition=
65  select count(*) = 0 from information_schema.processlist
66  where db='events_test' and command = 'Connect' and user=current_user();
67--source include/wait_condition.inc
68
69drop database events_test;
70
71