mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Move test that requires innodb to "mysql_innodb"
This commit is contained in:
@ -446,52 +446,6 @@ INSERT INTO t1 VALUES(1, 1);
|
|||||||
ALTER TABLE t1 CHANGE t1 t1 INT(10) auto_increment;
|
ALTER TABLE t1 CHANGE t1 t1 INT(10) auto_increment;
|
||||||
ERROR 23000: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
|
ERROR 23000: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
|
||||||
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;
|
|
||||||
create table t1 (a int primary key auto_increment, b int, c int, d timestamp default current_timestamp, unique(b),unique(c));
|
create table t1 (a int primary key auto_increment, b int, c int, d timestamp default current_timestamp, unique(b),unique(c));
|
||||||
insert into t1 values(null,1,1,now());
|
insert into t1 values(null,1,1,now());
|
||||||
insert into t1 values(null,0,0,null);
|
insert into t1 values(null,0,0,null);
|
||||||
|
@ -367,3 +367,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;
|
||||||
|
@ -304,42 +304,6 @@ INSERT INTO t1 VALUES(1, 1);
|
|||||||
ALTER TABLE t1 CHANGE t1 t1 INT(10) auto_increment;
|
ALTER TABLE t1 CHANGE t1 t1 INT(10) auto_increment;
|
||||||
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;
|
|
||||||
|
|
||||||
# Test of REPLACE when it does INSERT+DELETE and not UPDATE:
|
# Test of REPLACE when it does INSERT+DELETE and not UPDATE:
|
||||||
# see if it sets LAST_INSERT_ID() ok
|
# see if it sets LAST_INSERT_ID() ok
|
||||||
create table t1 (a int primary key auto_increment, b int, c int, d timestamp default current_timestamp, unique(b),unique(c));
|
create table t1 (a int primary key auto_increment, b int, c int, d timestamp default current_timestamp, unique(b),unique(c));
|
||||||
|
@ -320,3 +320,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