mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 6b38c5b762
			
		
	
	6b38c5b762
	
	
	
		
			
			"getGeneratedKeys() does not work with FEDERATED table" mysql_insert() expected the storage engine to update the row data during the write_row() operation with the value of the new auto- increment field. The field must be updated when only one row has been inserted as mysql_insert() would ignore the thd->last_insert. This patch implements HA_STATUS_AUTO support in ha_federated::info() and ensures that ha_federated::write_row() does update the row's auto-increment value. The test case was written in C as the protocol's 'id' value is accessible through libmysqlclient and not via SQL statements. mysql-test-run.pl was extended to enable running the test binary.
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| stop slave;
 | |
| drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 | |
| reset master;
 | |
| reset slave;
 | |
| drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 | |
| start slave;
 | |
| stop slave;
 | |
| DROP DATABASE IF EXISTS federated;
 | |
| CREATE DATABASE federated;
 | |
| DROP DATABASE IF EXISTS federated;
 | |
| CREATE DATABASE federated;
 | |
| DROP TABLE IF EXISTS federated.bug_13118_table;
 | |
| CREATE TABLE federated.t1 (
 | |
| `id` int auto_increment primary key, 
 | |
| `value` int
 | |
| ) ENGINE=MyISAM;
 | |
| INSERT INTO federated.t1 SET value=1;
 | |
| INSERT INTO federated.t1 SET value=2;
 | |
| INSERT INTO federated.t1 SET value=2;
 | |
| DROP TABLE IF EXISTS federated.t1;
 | |
| CREATE TABLE federated.t1 (
 | |
| `id` int auto_increment primary key, 
 | |
| `value` int
 | |
| ) ENGINE=FEDERATED
 | |
| CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
 | |
| SELECT * from federated.t1;
 | |
| id	value
 | |
| 1	1
 | |
| 2	2
 | |
| 3	2
 | |
| INSERT INTO federated.t1 SET value=4;
 | |
| SELECT LAST_INSERT_ID();
 | |
| LAST_INSERT_ID()
 | |
| 4
 | |
| 
 | |
| 5 inserted
 | |
| 6 inserted
 | |
| 
 | |
| 7 inserted
 | |
| 8 inserted
 | |
| SELECT * from federated.t1;
 | |
| id	value
 | |
| 1	1
 | |
| 2	2
 | |
| 3	2
 | |
| 4	4
 | |
| 5	54
 | |
| 6	55
 | |
| 7	54
 | |
| 8	55
 | |
| DROP TABLE federated.t1;
 | |
| DROP TABLE federated.t1;
 | |
| DROP TABLE IF EXISTS federated.t1;
 | |
| DROP DATABASE IF EXISTS federated;
 | |
| DROP TABLE IF EXISTS federated.t1;
 | |
| DROP DATABASE IF EXISTS federated;
 |