mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / extra / rpl_tests / rpl_tmp_table_and_DDL.test
blob9cf287281a097a2642dc610e8ae2af1a5a9d8cd0
2 # This test verify if executing DDL statement before trying to manipulate
3 # a temporary table causes row-based replication to break with error 'table
4 # does not exist'.
7 # CREATE TABLE when a temporary table is open.
8 CREATE TEMPORARY TABLE t1 (a INT);
9 EVAL CREATE TABLE t2 (a INT, b INT) ENGINE= $ENGINE_TYPE;
10 INSERT INTO t1 VALUES (1);
12 # CREATE EVENT when a temporary table is open.
13 CREATE EVENT e1 ON SCHEDULE EVERY 10 HOUR DO SELECT 1;
14 INSERT INTO t1 VALUES (1);
16 # ALTER EVENT when a temporary table is open.
17 ALTER EVENT e1 ON SCHEDULE EVERY 20 HOUR DO SELECT 1;
18 INSERT INTO t1 VALUES (1);
20 # DROP EVENT when a temporary table is open.
21 DROP EVENT IF EXISTS e1;
22 INSERT INTO t1 VALUES (1);
24 # CREATE PROCEDURE when a temporary table is open.
25 CREATE PROCEDURE p1() SELECT 1;
26 INSERT INTO t1 VALUES (1);
28 # Alter PROCEDURE when a temporary table is open.
29 ALTER PROCEDURE p1 SQL SECURITY INVOKER;
30 INSERT INTO t1 VALUES (1);
32 # CREATE FUNCTION when a temporary table is open.
33 CREATE FUNCTION f1() RETURNS INT RETURN 123;
34 INSERT INTO t1 VALUES (1);
36 # ALTER FUNCTION when a temporary table is open.
37 ALTER FUNCTION f1 SQL SECURITY INVOKER;
38 INSERT INTO t1 VALUES (1);
40 # CREATE DATABASE when a temporary table is open.
41 CREATE DATABASE mysqltest1;
42 INSERT INTO t1 VALUES (1);
44 # DROP DATABASE when a temporary table is open.
45 DROP DATABASE mysqltest1;
46 INSERT INTO t1 VALUES (1);
48 # CREATE USER when a temporary table is open.
49 CREATE USER test_1@localhost;
50 INSERT INTO t1 VALUES (1);
52 # GRANT select on table to user when a temporary table is open.
53 GRANT SELECT ON t2 TO test_1@localhost;
54 INSERT INTO t1 VALUES (1);
56 # GRANT all on function to user  when a temporary table is open.
57 GRANT ALL ON f1 TO test_1@localhost;
58 INSERT INTO t1 VALUES (1);
60 # GRANT all on procedure to user when a temporary table is open.
61 GRANT ALL ON p1 TO test_1@localhost;
62 INSERT INTO t1 VALUES (1);
64 # GRANT usage on *.* to user when a temporary table is open.
65 GRANT USAGE ON *.* TO test_1@localhost;
66 INSERT INTO t1 VALUES (1);
68 # REVOKE ALL PRIVILEGES on function to user when a temporary table is open.
69 REVOKE ALL PRIVILEGES ON f1 FROM test_1@localhost;
70 INSERT INTO t1 VALUES (1);
72 # REVOKE ALL PRIVILEGES on procedure to user when a temporary table is open.
73 REVOKE ALL PRIVILEGES ON p1 FROM test_1@localhost;
74 INSERT INTO t1 VALUES (1);
76 # REVOKE ALL PRIVILEGES on table to user when a temporary table is open.
77 REVOKE ALL PRIVILEGES ON t2 FROM test_1@localhost;
78 INSERT INTO t1 VALUES (1);
80 # REVOKE usage on *.* from user when a temporary table is open.
81 REVOKE USAGE ON *.* FROM test_1@localhost;
82 INSERT INTO t1 VALUES (1);
84 # RENAME USER when a temporary table is open.
85 RENAME USER test_1@localhost TO test_2@localhost;
86 INSERT INTO t1 VALUES (1);
88 # DROP USER when a temporary table is open.
89 DROP USER test_2@localhost;
90 INSERT INTO t1 VALUES (1);
92 # Test ACL statement in sub statement
93 DELIMITER |;
94 CREATE PROCEDURE p2()
95 BEGIN
96     # CREATE USER when a temporary table is open. 
97     CREATE TEMPORARY TABLE t3 (a INT);
98     CREATE USER test_2@localhost;
99     INSERT INTO t1 VALUES (1);
101     # GRANT select on table to user when a temporary table is open.
102     GRANT SELECT ON t2 TO test_2@localhost;
103     INSERT INTO t1 VALUES (1);
105     # GRANT all on function to user  when a temporary table is open.
106     GRANT ALL ON f1 TO test_2@localhost;
107     INSERT INTO t1 VALUES (1);
109     # GRANT all on procedure to user when a temporary table is open.
110     GRANT ALL ON p1 TO test_2@localhost;
111     INSERT INTO t1 VALUES (1);
113     # GRANT usage on *.* to user  when a temporary table is open.
114     GRANT USAGE ON *.* TO test_2@localhost;
115     INSERT INTO t1 VALUES (1);
117     # REVOKE ALL PRIVILEGES on function to user when a temporary table is open.
118     REVOKE ALL PRIVILEGES ON f1 FROM test_2@localhost;
119     INSERT INTO t1 VALUES (1);
121     # REVOKE ALL PRIVILEGES on procedure to user when a temporary table is open.
122     REVOKE ALL PRIVILEGES ON p1 FROM test_2@localhost;
123     INSERT INTO t1 VALUES (1);
125     # REVOKE ALL PRIVILEGES on table to user when a temporary table is open.
126     REVOKE ALL PRIVILEGES ON t2 FROM test_2@localhost;
127     INSERT INTO t1 VALUES (1);
129     # REVOKE usage on *.* from user when a temporary table is open.
130     REVOKE USAGE ON *.* FROM test_2@localhost;
131     INSERT INTO t1 VALUES (1);
133     # RENAME USER when a temporary table is open.
134     RENAME USER test_2@localhost TO test_3@localhost;
135     INSERT INTO t1 VALUES (1);
137     # DROP USER when a temporary table is open.
138     DROP USER test_3@localhost;
139     INSERT INTO t1 VALUES (1);
140     DROP TEMPORARY TABLE t3;
141 END |
142 DELIMITER ;|
144 # DROP PROCEDURE when a temporary table is open.
145 DROP PROCEDURE p1;
146 INSERT INTO t1 VALUES (1);
147 DROP PROCEDURE p2;
148 INSERT INTO t1 VALUES (1);
150 # DROP FUNCTION when a temporary table is open.
151 DROP FUNCTION f1;
152 INSERT INTO t1 VALUES (1);
154 # DROP TABLE when a temporary table is open.
155 DROP TABLE t2;
156 INSERT INTO t1 VALUES (1);
158 DROP TEMPORARY TABLE t1;