From 9595c788f9857d0e712f6659d3a0d85300aa0f7b Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Jun 2005 20:41:52 +0300 Subject: Ensure that we reset auto-increment cache if we have to do an UPDATE becasue of REPLACE This fixes bug #11080: Multi-row REPLACE fails on a duplicate key error mysql-test/r/auto_increment.result: New tests for auto-increment and replace mysql-test/r/innodb.result: New tests for auto-increment and replace mysql-test/t/auto_increment.test: New tests for auto-increment and replace mysql-test/t/innodb.test: New tests for auto-increment and replace mysys/my_alloc.c: More comments --- mysql-test/r/auto_increment.result | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'mysql-test/r/auto_increment.result') diff --git a/mysql-test/r/auto_increment.result b/mysql-test/r/auto_increment.result index 4587c675150..61a42b004a9 100644 --- a/mysql-test/r/auto_increment.result +++ b/mysql-test/r/auto_increment.result @@ -355,3 +355,42 @@ CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE IF EXISTS t1; +CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`)); +insert into t1 (b) values (1); +replace into t1 (b) values (2), (1), (3); +select * from t1; +a b +3 1 +2 2 +4 3 +truncate table t1; +insert into t1 (b) values (1); +replace into t1 (b) values (2); +replace into t1 (b) values (1); +replace into t1 (b) values (3); +select * from t1; +a b +3 1 +2 2 +4 3 +drop table t1; +create table t1 (rowid int not null auto_increment, val int not null,primary +key (rowid), unique(val)); +replace into t1 (val) values ('1'),('2'); +replace into t1 (val) values ('1'),('2'); +insert into t1 (val) values ('1'),('2'); +ERROR 23000: Duplicate entry '1' for key 2 +select * from t1; +rowid val +3 1 +4 2 +drop table t1; +create table t1 (a int not null auto_increment primary key, val int); +insert into t1 (val) values (1); +update t1 set a=2 where a=1; +insert into t1 (val) values (1); +select * from t1; +a val +2 1 +3 1 +drop table t1; -- cgit v1.2.1