mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 b21a56aa24
			
		
	
	b21a56aa24
	
	
	
		
			
			1. A bad error message was given when a MERGE table with an InnoDB child table was tried to use. 2. After selecting from a correct MERGE table and then altering one of the children to InnoDB, incorrect results were returned. These bugs have been fixed with the patch for bug 26379 (Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table). For verification, I added the test case from the bug report.
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| DROP TABLE IF EXISTS t1, t2, t3, t4, t5;
 | |
| CREATE TABLE t1 (c1 varchar(100)) ENGINE=MyISAM;
 | |
| CREATE TABLE t2 (c1 varchar(100)) ENGINE=MyISAM;
 | |
| CREATE TABLE t3 (c1 varchar(100)) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES ('Ann'), ('Alice');
 | |
| INSERT INTO t2 VALUES ('Bob'), ('Brian');
 | |
| INSERT INTO t3 VALUES ('Chris'), ('Charlie');
 | |
| CREATE TABLE t4 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t2)
 | |
| INSERT_METHOD=LAST;
 | |
| CREATE TABLE t5 (c1 varchar(100)) ENGINE=MRG_MYISAM UNION=(t1,t3)
 | |
| INSERT_METHOD=LAST;
 | |
| SELECT * FROM t5;
 | |
| ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
 | |
| SELECT * FROM t4;
 | |
| c1
 | |
| Ann
 | |
| Alice
 | |
| Bob
 | |
| Brian
 | |
| ALTER TABLE t2 ENGINE=InnoDB;
 | |
| SELECT * FROM t4;
 | |
| ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
 | |
| DELETE FROM t2 LIMIT 1;
 | |
| SELECT * FROM t4;
 | |
| ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
 | |
| INSERT INTO t4 VALUES ('Beware');
 | |
| ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
 | |
| SELECT * FROM t4;
 | |
| ERROR HY000: Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
 | |
| SELECT * FROM t2;
 | |
| c1
 | |
| Brian
 | |
| SELECT * FROM t1;
 | |
| c1
 | |
| Ann
 | |
| Alice
 | |
| DROP TABLE t1, t2, t3, t4, t5;
 |