summaryrefslogtreecommitdiff
path: root/mysql-test/suite/perfschema/t/stage_mdl_table.test
blob: b522f51a68e70b1fb26b9a328456d2c78808e48c (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
# Tests for the performance schema
#

--source ../include/stage_setup.inc

connect (con1, localhost, user1, , );

begin;
insert into test.t1 values (1), (2), (3);
commit;

begin;
select * from test.t1 for update;

connect (con2, localhost, user2, , );

# Will wait on con1, "Waiting for table metadata lock"
--send
alter table test.t1 add column (b int);

--connection default

# user1: Wait for the statement to complete
let $wait_condition=
  select count(*) = 1 from performance_schema.threads
  where `TYPE`='FOREGROUND' and PROCESSLIST_USER like 'user1'
  and PROCESSLIST_COMMAND = 'Sleep';
--source include/wait_condition.inc

# user2: Wait for the alter to block
let $wait_condition=
  select count(*) = 1 from performance_schema.threads
  where `TYPE`='FOREGROUND' and PROCESSLIST_USER like 'user2'
  and PROCESSLIST_STATE = 'Waiting for table metadata lock';
--source include/wait_condition.inc

call dump_one_thread('user1');
call dump_one_thread('user2');

--connection con1
commit;

--disconnect con1

--connection con2
--reap

--disconnect con2

--connection default

# Wait for the disconnects to complete
let $wait_condition=
  select count(*) = 0 from performance_schema.threads
  where `TYPE`='FOREGROUND' and PROCESSLIST_USER like 'user%';
--source include/wait_condition.inc

--source ../include/stage_cleanup.inc