summaryrefslogtreecommitdiff
path: root/mysql-test/t/rpl_temporary.test
blob: 442788ad019ccba7e98b6068472e35014866abfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
source include/master-slave.inc;

# Clean up old slave's binlogs.
# The slave is started with --log-slave-updates
# and this test does SHOW BINLOG EVENTS on the slave's
# binlog. But previous tests can influence the current test's
# binlog (e.g. a temporary table in the previous test has not
# been explicitly deleted, or it has but the slave hasn't had
# enough time to catch it before STOP SLAVE, 
# and at the beginning of the current
# test the slave immediately writes DROP TEMPORARY TABLE this_old_table).
# We wait for the slave to have written all he wants to the binlog
# (otherwise RESET MASTER may come too early).
save_master_pos;
connection slave;
sync_with_master;
reset master;
connection master;

connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connect (con3,localhost,test,,);

# We are going to use SET PSEUDO_THREAD_ID in this test;
# check that it requires the SUPER privilege.

connection con3;
--error 1227
SET @@session.pseudo_thread_id=100;

let $VERSION=`select version()`;

--disable_warnings
drop table if exists t1,t2;
--enable_warnings

create table t1(f int);
create table t2(f int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

connection con1;
create temporary table t3(f int);
insert into t3 select * from t1 where f<6;
sleep 1;

connection con2;
create temporary table t3(f int);
sleep 1;

connection con1;
insert into t2 select count(*) from t3;
sleep 1;

connection con2;
insert into t3 select * from t1 where f>=4;
sleep 1;

connection con1;
drop temporary table t3;
sleep 1;

connection con2;
insert into t2 select count(*) from t3;
drop temporary table t3;

select * from t2;

--replace_result $VERSION VERSION
show binlog events;

drop table t1, t2;

use test;
SET TIMESTAMP=1040323920;
create table t1(f int);
SET TIMESTAMP=1040323931;
create table t2(f int);
SET TIMESTAMP=1040323938;
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

SET TIMESTAMP=1040323945;
SET @@session.pseudo_thread_id=1;
create temporary table t3(f int);
SET TIMESTAMP=1040323952;
SET @@session.pseudo_thread_id=1;
insert into t3 select * from t1 where f<6;
SET TIMESTAMP=1040324145;
SET @@session.pseudo_thread_id=2;
create temporary table t3(f int);
SET TIMESTAMP=1040324186;
SET @@session.pseudo_thread_id=1;
insert into t2 select count(*) from t3;
SET TIMESTAMP=1040324200;
SET @@session.pseudo_thread_id=2;
insert into t3 select * from t1 where f>=4;
SET TIMESTAMP=1040324211;
SET @@session.pseudo_thread_id=1;
drop temporary table t3;
SET TIMESTAMP=1040324219;
SET @@session.pseudo_thread_id=2;
insert into t2 select count(*) from t3;
SET TIMESTAMP=1040324224;
SET @@session.pseudo_thread_id=2;
drop temporary table t3;

select * from t2;
drop table t1,t2;