40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# BUG#40827 - Killing insert-select to MyISAM can cause table corruption
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE `t1` (
							 | 
						||
| 
								 | 
							
								`id` BIGINT(20) ,
							 | 
						||
| 
								 | 
							
								`id1` BIGINT(20) AUTO_INCREMENT,
							 | 
						||
| 
								 | 
							
								KEY(id1), KEY(id)
							 | 
						||
| 
								 | 
							
								) ENGINE=MyISAM;
							 | 
						||
| 
								 | 
							
								CREATE TABLE `t2` (
							 | 
						||
| 
								 | 
							
								`id` BIGINT(20) ,
							 | 
						||
| 
								 | 
							
								`id1` BIGINT(20) AUTO_INCREMENT,
							 | 
						||
| 
								 | 
							
								KEY (id1), KEY(id)
							 | 
						||
| 
								 | 
							
								) ENGINE=MyISAM;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) VALUES (123);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 (id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								# Switch to insert Connection
							 | 
						||
| 
								 | 
							
								SET SESSION debug='+d,wait_in_enable_indexes';
							 | 
						||
| 
								 | 
							
								# Send insert data
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(id) SELECT id  FROM t2;
							 | 
						||
| 
								 | 
							
								# Switch to default Connection
							 | 
						||
| 
								 | 
							
								# Wait for insert data to reach the debug point
							 | 
						||
| 
								 | 
							
								SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST
							 | 
						||
| 
								 | 
							
								WHERE STATE = 'wait_in_enable_indexes' AND 
							 | 
						||
| 
								 | 
							
								INFO = "INSERT INTO t1(id) SELECT id  FROM t2" 
							 | 
						||
| 
								 | 
							
								INTO @thread_id;
							 | 
						||
| 
								 | 
							
								KILL QUERY @thread_id;
							 | 
						||
| 
								 | 
							
								CHECK TABLE t1;
							 | 
						||
| 
								 | 
							
								Table	Op	Msg_type	Msg_text
							 | 
						||
| 
								 | 
							
								test.t1	check	status	OK
							 | 
						||
| 
								 | 
							
								DROP TABLE t1,t2;
							 |