59 lines
1.3 KiB
Plaintext
59 lines
1.3 KiB
Plaintext
# Test of auto-increment.
|
|
#
|
|
# BUG#11754117-45670
|
|
# Multipart primary key with the autoincrement part not first in it
|
|
# is replication unsafe.
|
|
#
|
|
|
|
source include/master-slave.inc;
|
|
source include/have_binlog_format_mixed.inc;
|
|
source include/force_myisam_default.inc;
|
|
source include/have_myisam.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;
|
|
|
|
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;
|
|
|
|
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 ;//
|
|
|
|
select multi_part_pk_with_autoinc (3);
|
|
--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;
|
|
|
|
--source include/sync_slave_sql_with_master.inc
|
|
|
|
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;
|
|
drop function multi_part_pk_with_autoinc;
|
|
|
|
--source include/sync_slave_sql_with_master.inc
|
|
|
|
--source include/rpl_end.inc
|