1
DROP TABLE IF EXISTS t1;
2
DROP TABLE IF EXISTS t2;
3
CREATE TABLE t2 (a INT);
4
INSERT INTO t2 VALUES(10);
5
INSERT INTO t2 VALUES(10);
6
INSERT INTO t2 VALUES(20);
7
INSERT INTO t2 VALUES(10);
8
INSERT INTO t2 VALUES(20);
9
SET DEBUG_SYNC= 'locked_table_name SIGNAL thread1_ready WAIT_FOR threads_dumped';
10
CREATE TABLE t1 (a INT);
11
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
12
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
13
SELECT a FROM t2 WHERE a > 15;
14
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
16
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
17
### root ### test Query ### ### SHOW PROCESSLIST 0 0 2
18
### root ### test Query ### ### CREATE TABLE t1 (a INT) 0 0 1
19
### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 2 5 6
20
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
21
id info rows_sent rows_examined rows_read
22
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
23
### CREATE TABLE t1 (a INT) 0 0 1
24
### SELECT a FROM t2 WHERE a > 15 2 5 6
25
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
29
SET DEBUG_SYNC= 'sent_row SIGNAL thread1_ready WAIT_FOR threads_dumped';
30
SELECT a FROM t2 WHERE a < 15;
31
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
32
SET DEBUG_SYNC= 'sent_row SIGNAL thread2_ready WAIT_FOR threads_dumped';
33
SELECT a FROM t2 WHERE a > 15;
34
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
36
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
37
### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
38
### root ### test Query ### ### SELECT a FROM t2 WHERE a < 15 1 0 1
39
### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 1 0 3
40
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
41
id info rows_sent rows_examined rows_read
42
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
43
### SELECT a FROM t2 WHERE a < 15 1 0 1
44
### SELECT a FROM t2 WHERE a > 15 1 0 3
45
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
53
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread1_ready WAIT_FOR threads_dumped';
54
UPDATE t2 SET a = 15 WHERE a = 20;
55
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
56
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
57
UPDATE t2 SET a = 15 WHERE a = 10;
58
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
60
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
61
### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
62
### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
63
### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
64
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
65
id info rows_sent rows_examined rows_read
66
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
67
### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
68
### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
69
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';