mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	This patch adds for "--ps-protocol" second execution of queries "SELECT". Also in this patch it is added ability to disable/enable (--disable_ps2_protocol/--enable_ps2_protocol) second execution for "--ps-prototocol" in testcases.
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# Test of auto-increment.
 | 
						|
#
 | 
						|
# BUG#11754117-45670 
 | 
						|
# Multipart primary key with the autoincrement part not first in it
 | 
						|
# is replication unsafe.
 | 
						|
#
 | 
						|
 | 
						|
source include/have_binlog_format_mixed.inc;
 | 
						|
source include/have_innodb.inc;
 | 
						|
source include/master-slave.inc;
 | 
						|
 | 
						|
call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 | 
						|
 | 
						|
--connection master
 | 
						|
create table tm (b int auto_increment, a int, primary key (a,b)) engine= myisam;
 | 
						|
--error ER_WRONG_AUTO_KEY
 | 
						|
create table ti (b int auto_increment, a int, primary key (a,b)) engine= innodb;
 | 
						|
create table ti (b int auto_increment, a int, primary key (b,a)) engine= innodb;
 | 
						|
 | 
						|
set @@binlog_format=statement;
 | 
						|
--echo *** autoincrement field is not the first in PK warning must be there: ***
 | 
						|
insert into tm set b=null, a=1;
 | 
						|
show warnings;
 | 
						|
--echo *** no warning when autoincrement is the first in PK
 | 
						|
insert into ti set b=null, a=1;
 | 
						|
show warnings;
 | 
						|
 | 
						|
delimiter //;
 | 
						|
create function multi_part_pk_with_autoinc (arg int)
 | 
						|
returns int
 | 
						|
begin
 | 
						|
  insert into tm set b=null, a=arg;
 | 
						|
  return arg;
 | 
						|
end//
 | 
						|
delimiter ;//
 | 
						|
 | 
						|
--disable_ps2_protocol
 | 
						|
select multi_part_pk_with_autoinc (3);
 | 
						|
--enable_ps2_protocol
 | 
						|
--echo *** autoincrement field is not the first in PK warning must be there: ***
 | 
						|
show warnings;
 | 
						|
 | 
						|
set @@binlog_format=mixed;
 | 
						|
insert into tm set b=null, a=2;
 | 
						|
 | 
						|
sync_slave_with_master;
 | 
						|
 | 
						|
if (`select count(*) <> 3 from tm`)
 | 
						|
{
 | 
						|
  --echo Wrong result from SELECT on the slave side.
 | 
						|
  select * from tm;
 | 
						|
  --die
 | 
						|
}
 | 
						|
 | 
						|
# cleanup
 | 
						|
 | 
						|
--connection master
 | 
						|
 | 
						|
drop table tm, ti;
 | 
						|
drop function multi_part_pk_with_autoinc;
 | 
						|
 | 
						|
sync_slave_with_master;
 | 
						|
 | 
						|
--source include/rpl_end.inc
 |