44 lines
1.8 KiB
Plaintext
44 lines
1.8 KiB
Plaintext
RESET MASTER;
|
|
connection default;
|
|
# MERGE is the only remaning non-specialized SE (like NDB or P_S)
|
|
# which implements TRUNCATE TABLE through handler::truncate().
|
|
CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=MyISAM;
|
|
CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=MERGE UNION=(t0) INSERT_METHOD=LAST;
|
|
INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10);
|
|
SET DEBUG_SYNC = "open_and_process_table signal truncate_before_lock wait_for forever";
|
|
TRUNCATE t1;
|
|
connect con1,localhost,root,,;
|
|
SET DEBUG_SYNC = "now wait_for truncate_before_lock";
|
|
SELECT ((@id := id) - id) FROM information_schema.processlist WHERE processlist.info LIKE '%TRUNCATE t1%' AND state LIKE '%open_and_process_table%';
|
|
((@id := id) - id)
|
|
0
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
KILL QUERY @id;
|
|
connection default;
|
|
ERROR 70100: Query execution was interrupted
|
|
connection con1;
|
|
include/show_binlog_events.inc
|
|
connection con1;
|
|
connection con1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
binlog.000001 # Query # # use `test`; CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=MyISAM
|
|
binlog.000001 # Query # # use `test`; CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=MERGE UNION=(t0) INSERT_METHOD=LAST
|
|
binlog.000001 # Query # # BEGIN
|
|
binlog.000001 # Intvar # # INSERT_ID=1
|
|
binlog.000001 # Query # # use `test`; INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10)
|
|
binlog.000001 # Query # # COMMIT
|
|
connection con1;
|
|
connection con1;
|
|
disconnect con1;
|
|
connection default;
|
|
SELECT * FROM t1;
|
|
id a b
|
|
1 1 2
|
|
2 2 4
|
|
3 3 6
|
|
4 4 8
|
|
5 5 10
|
|
DROP TABLE t1, t0;
|
|
SET DEBUG_SYNC= 'RESET';
|