mirror of
https://github.com/MariaDB/server.git
synced 2025-12-16 22:03:23 +03:00
Merge changes to the "innodb_mysql" test from MySQL AB
This commit is contained in:
@@ -407,3 +407,49 @@ Warnings:
|
|||||||
Warning 1071 Specified key was too long; max key length is 765 bytes
|
Warning 1071 Specified key was too long; max key length is 765 bytes
|
||||||
insert into t1 values('aaa');
|
insert into t1 values('aaa');
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE `t2` (
|
||||||
|
`k` int(11) NOT NULL auto_increment,
|
||||||
|
`a` int(11) default NULL,
|
||||||
|
`c` int(11) default NULL,
|
||||||
|
PRIMARY KEY (`k`),
|
||||||
|
UNIQUE KEY `idx_1` (`a`)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
insert into t2 ( a ) values ( 7 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
select last_insert_id();
|
||||||
|
last_insert_id()
|
||||||
|
2
|
||||||
|
select * from t2;
|
||||||
|
k a c
|
||||||
|
1 6 NULL
|
||||||
|
2 7 NULL
|
||||||
|
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
select last_insert_id();
|
||||||
|
last_insert_id()
|
||||||
|
1
|
||||||
|
select * from t2;
|
||||||
|
k a c
|
||||||
|
1 6 1
|
||||||
|
2 7 NULL
|
||||||
|
insert ignore into t2 values (null,6,1),(10,8,1);
|
||||||
|
select last_insert_id();
|
||||||
|
last_insert_id()
|
||||||
|
1
|
||||||
|
insert ignore into t2 values (null,6,1),(null,8,1),(null,15,1),(null,20,1);
|
||||||
|
select last_insert_id();
|
||||||
|
last_insert_id()
|
||||||
|
11
|
||||||
|
select * from t2;
|
||||||
|
k a c
|
||||||
|
1 6 1
|
||||||
|
2 7 NULL
|
||||||
|
10 8 1
|
||||||
|
11 15 1
|
||||||
|
12 20 1
|
||||||
|
drop table t2;
|
||||||
|
|||||||
@@ -367,3 +367,40 @@ create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
|||||||
character set utf8 collate utf8_general_ci;
|
character set utf8 collate utf8_general_ci;
|
||||||
insert into t1 values('aaa');
|
insert into t1 values('aaa');
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
# Fix for BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY
|
||||||
|
# UPDATE": now LAST_INSERT_ID() will return the id of the updated
|
||||||
|
# row.
|
||||||
|
CREATE TABLE `t2` (
|
||||||
|
`k` int(11) NOT NULL auto_increment,
|
||||||
|
`a` int(11) default NULL,
|
||||||
|
`c` int(11) default NULL,
|
||||||
|
PRIMARY KEY (`k`),
|
||||||
|
UNIQUE KEY `idx_1` (`a`)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
insert into t2 ( a ) values ( 7 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
select last_insert_id();
|
||||||
|
select * from t2;
|
||||||
|
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
|
||||||
|
ifnull( c,
|
||||||
|
0 ) + 1;
|
||||||
|
select last_insert_id();
|
||||||
|
select * from t2;
|
||||||
|
|
||||||
|
# Test of LAST_INSERT_ID() when autogenerated will fail:
|
||||||
|
# last_insert_id() should not change
|
||||||
|
insert ignore into t2 values (null,6,1),(10,8,1);
|
||||||
|
select last_insert_id();
|
||||||
|
# First and second autogenerated will fail, last_insert_id() should
|
||||||
|
# point to third
|
||||||
|
insert ignore into t2 values (null,6,1),(null,8,1),(null,15,1),(null,20,1);
|
||||||
|
select last_insert_id();
|
||||||
|
select * from t2;
|
||||||
|
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user