SET GLOBAL innodb_max_purge_lag_wait=0 ;
connect stop_purge,localhost,root;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
connection default;
CREATE TABLE t1(c1 INT NOT NULL, c2 INT, PRIMARY KEY(c1)) Engine=InnoDB;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11 ) NOT NULL,
`c2` int(11 ) DEFAULT NULL,
PRIMARY KEY (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
INSERT INTO t1 VALUES (1 ,1 ),(2 ,2 ),(3 ,3 ),(4 ,4 ),(5 ,5 );
SET @saved_debug_dbug = @@SESSION.debug_dbug;
SET DEBUG_DBUG='+d,ib_build_indexes_too_many_concurrent_trxs, ib_rename_indexes_too_many_concurrent_trxs, ib_drop_index_too_many_concurrent_trxs' ;
ALTER TABLE t1 ADD UNIQUE INDEX(c2);
ERROR HY000: Too many active concurrent transactions
SET DEBUG_DBUG = @saved_debug_dbug;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11 ) NOT NULL,
`c2` int(11 ) DEFAULT NULL,
PRIMARY KEY (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
DROP TABLE t1;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT NOT NULL, INDEX(c2))
ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8 , 0 ), (4 , 0 ), (0 , 0 );
SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two' ;
CREATE UNIQUE INDEX ui ON bug13861218(c1);
SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
CREATE TABLE bug13861218 (c1 INT NOT NULL, c2 INT UNIQUE) ENGINE=InnoDB;
INSERT INTO bug13861218 VALUES (8 , NULL), (4 , NULL), (0 , NULL);
SET DEBUG_DBUG = '+d,ib_row_merge_buf_add_two' ;
CREATE UNIQUE INDEX ui ON bug13861218(c1);
SET DEBUG_DBUG = @saved_debug_dbug;
DROP TABLE bug13861218;
#
# Bug #17657223 EXCESSIVE TEMPORARY FILE USAGE IN ALTER TABLE
#
create table t480(a serial)engine=innodb;
insert into t480
values(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),
(),(),(),(),(),(),(),();
insert into t480 select 0 from t480;
insert into t480 select 0 from t480;
insert into t480 select 0 from t480;
insert into t480 select 0 from t480;
create table t1(f1 int auto_increment not null,
f2 char(200 ) not null, f3 char(200 ) not null,
primary key(f1,f2,f3), key(f1))engine=innodb;
insert into t1 select NULL,'aaa' ,'bbb' from t480;
insert into t1 select NULL,'aaaa' ,'bbbb' from t480;
insert into t1 select NULL,'aaaaa' ,'bbbbb' from t480;
insert into t1 select NULL,'aaaaaa' ,'bbbbbb' from t480;
SET DEBUG_DBUG = '+d,row_merge_write_failure' ;
alter table t1 drop primary key,add primary key(f2,f1);
ERROR HY000: Temporary file write failure
SET DEBUG_DBUG = @saved_debug_dbug;
drop table t1;
connect con1,localhost,root;
create table t1(k1 int auto_increment primary key,
k2 char(200 ),k3 char(200 ))engine=innodb;
insert into t1 values(NULL,'a' ,'b' ), (NULL,'aa' ,'bb' );
SET DEBUG_SYNC= 'row_merge_after_scan
SIGNAL opened WAIT_FOR flushed';
optimize table t1;
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR opened' ;
INSERT INTO t1 select NULL,'aaa' ,'bbb' from t480;
SET DEBUG_SYNC= 'now SIGNAL flushed' ;
connection con1;
/*con1 reap*/ Optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
affected rows: 2
SELECT COUNT(k1),k2,k3 FROM t1 GROUP BY k2,k3;
COUNT(k1) k2 k3
1 a b
1 aa bb
480 aaa bbb
drop table t1;
create table t1(k1 int auto_increment primary key,
k2 char(200 ),k3 char(200 ))engine=innodb;
INSERT INTO t1 VALUES(1 , "test" , "test" );
SET DEBUG_SYNC= 'row_merge_after_scan
SIGNAL opened WAIT_FOR flushed';
ALTER TABLE t1 FORCE, ADD COLUMN k4 int;
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR opened' ;
SET debug_dbug = '+d,row_log_tmpfile_fail' ;
INSERT INTO t1 select NULL,'aaa' ,'bbb' from t480;
INSERT INTO t1 select NULL,'aaaa' ,'bbbb' from t480;
SET DEBUG_SYNC= 'now SIGNAL flushed' ;
SET DEBUG_DBUG = @saved_debug_dbug;
connection con1;
/*con1 reap*/ ALTER TABLE t1 ADD COLUMN k4 int;
ERROR HY000: Out of memory.
SELECT COUNT(k1),k2,k3 FROM t1 GROUP BY k2,k3;
COUNT(k1) k2 k3
480 aaa bbb
480 aaaa bbbb
1 test test
disconnect con1;
connection default;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`k1` int(11 ) NOT NULL AUTO_INCREMENT,
`k2` char(200 ) DEFAULT NULL,
`k3` char(200 ) DEFAULT NULL,
PRIMARY KEY (`k1`)
) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
drop table t1;
drop table t480;
#
# MDEV-12827 Assertion failure when reporting duplicate key error
# in online table rebuild
#
CREATE TABLE t1 (j INT UNIQUE, i INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES(2 , 2 );
connect con1,localhost,root,,test;
SET DEBUG_SYNC='row_log_table_apply1_before SIGNAL built WAIT_FOR log' ;
ALTER TABLE t1 DROP j, ADD UNIQUE INDEX(i), FORCE;
connection default;
SET DEBUG_SYNC='now WAIT_FOR built' ;
SET DEBUG_DBUG='+d,row_ins_row_level' ;
INSERT INTO t1 (i) VALUES (0 ),(0 );
SET DEBUG_SYNC='now SIGNAL log' ;
SET DEBUG_DBUG=@saved_debug_dbug;
connection con1;
ERROR 23000 : Duplicate entry '0' for key 'i'
DELETE FROM t1;
ALTER TABLE t1 ADD UNIQUE INDEX(i);
SET DEBUG_SYNC='row_log_table_apply1_before SIGNAL built2 WAIT_FOR log2' ;
ALTER TABLE t1 DROP j, FORCE;
connection default;
SET DEBUG_SYNC='now WAIT_FOR built2' ;
INSERT INTO t1 (i) VALUES (0 ),(1 );
UPDATE t1 SET i=0 ;
ERROR 23000 : Duplicate entry '0' for key 'i'
SET DEBUG_SYNC='now SIGNAL log2' ;
connection con1;
disconnect con1;
disconnect stop_purge;
connection default;
SET DEBUG_SYNC='RESET' ;
DROP TABLE t1;
SET DEBUG_SYNC='RESET' ;
#
# BUG#21612714 ALTER TABLE SORTING SKIPPED WHEN CHANGE PK AND DROP
# LAST COLUMN OF OLD PK
#
SET DEBUG_DBUG = '+d,innodb_alter_table_pk_assert_no_sort' ;
create table t1(o1 varchar(10 ), primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 drop primary key, add primary key(o1(3 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 drop primary key, add primary key(o1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 add n1 int not null, drop primary key, add primary key(o1(3 ), n1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 add n1 int not null, drop primary key, add primary key(o1, n1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int not null, primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1(3 ), o2), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int not null, primary key(o1(2 ))) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1, o2), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), primary key(o1(3 ))) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 drop primary key, add primary key(o1(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), primary key(o1)) engine = innodb;
insert into t1 values('abd' ), ('acd' );
alter table t1 drop primary key, add primary key(o1(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1(3 ), o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 drop primary key, add primary key(o1(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1, o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 drop primary key, add primary key(o1(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1(3 ), o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1(2 ),n1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1, o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1(2 ),n1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1(3 ), o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1(3 ),n1), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, primary key(o1, o2)) engine = innodb;
insert into t1 values('abd' , 1 ), ('acd' , 2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,n1), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), primary key(o1,o2(3 ))) engine = innodb;
insert into t1 values(1 ,'abd' ), (2 ,'acd' );
alter table t1 drop primary key, add primary key(o1,o2(2 )), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), primary key(o1,o2)) engine = innodb;
insert into t1 values(1 ,'abd' ), (2 ,'acd' );
alter table t1 drop primary key, add primary key(o1,o2(2 )), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), primary key(o1,o2(2 ))) engine = innodb;
insert into t1 values(1 , 'abd' ), (2 , 'acd' );
alter table t1 drop primary key, add primary key(o1,o2(3 )), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), primary key(o1,o2(2 ))) engine = innodb;
insert into t1 values(1 , 'abd' ), (2 , 'acd' );
alter table t1 drop primary key, add primary key(o1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), o3 int, primary key(o1,o2(3 ),o3)) engine = innodb;
insert into t1 values(1 , 'abd' , 1 ), (2 , 'acd' , 2 );
alter table t1 drop primary key, add primary key(o1,o2(2 )), lock=none;
drop table t1;
create table t1(o1 int, o2 varchar(10 ), o3 int, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 , 'abd' , 1 ), (2 , 'acd' , 2 );
alter table t1 drop primary key, add primary key(o1,o2(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 varchar(10 ), primary key(o1(3 ),o2(3 ))) engine = innodb;
insert into t1 values('abd' , 'acd' ), ('acd' , 'abd' );
alter table t1 drop primary key, add primary key(o1(3 ),o2(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 varchar(10 ), primary key(o1,o2)) engine = innodb;
insert into t1 values('abd' , 'acd' ), ('acd' , 'abd' );
alter table t1 drop primary key, add primary key(o1,o2(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 varchar(10 ), primary key(o1(3 ),o2(2 ))) engine = innodb;
insert into t1 values('abd' , 'acd' ), ('acd' , 'abd' );
alter table t1 drop primary key, add primary key(o1(3 ),o2(3 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 varchar(10 ), primary key(o1,o2(2 ))) engine = innodb;
insert into t1 values('abd' , 'acd' ), ('acd' , 'abd' );
alter table t1 drop primary key, add primary key(o1,o2), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, o3 varchar(10 ), primary key(o1(3 ),o2,o3(2 ))) engine = innodb;
insert into t1 values('abd' , 1 , 'acd' ), ('acd' , 2 , 'abd' );
alter table t1 drop primary key, add primary key(o1(3 ),o2,o3(3 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, o3 varchar(10 ), primary key(o1,o2,o3(2 ))) engine = innodb;
insert into t1 values('abd' , 1 , 'acd' ), ('acd' , 2 , 'abd' );
alter table t1 drop primary key, add primary key(o1,o2,o3), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, o3 varchar(10 ), primary key(o1(3 ),o2,o3(3 ))) engine = innodb;
insert into t1 values('abd' , 1 , 'acd' ), ('acd' , 2 , 'abd' );
alter table t1 drop primary key, add primary key(o1(3 ),o2,o3(2 )), lock=none;
drop table t1;
create table t1(o1 varchar(10 ), o2 int, o3 varchar(10 ), primary key(o1,o2,o3(3 ))) engine = innodb;
insert into t1 values('abd' , 1 , 'acd' ), ('acd' , 2 , 'abd' );
alter table t1 drop primary key, add primary key(o1,o2,o3(2 )), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 drop primary key, add primary key(o1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,n1), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, drop primary key, add primary key(n1,o1), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, add n2 int not null, drop primary key, add primary key(n1,o1,n2), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, add n2 int not null, drop primary key, add primary key(n1,n2,o1), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, add n2 int not null, drop primary key, add primary key(o1,n1,n2), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,o2,n1), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,n1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,2 );
alter table t1 add n1 int not null, drop primary key, add primary key(n1,o1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, o3 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 drop primary key, add primary key(o1,o2,o3), lock=none;
drop table t1;
create table t1(o1 int, o2 int not null, o3 int not null, primary key(o1)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 drop primary key, add primary key(o1,o3,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int, o3 int, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 drop primary key, add primary key(o1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int, o3 int, o4 int not null, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 ,1 ,2 ,2 ),(2 ,2 ,1 ,1 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,o2,o3,o4), lock=none;
drop table t1;
create table t1(o1 int, o2 int, o3 int, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,o2,n1), lock=none;
drop table t1;
create table t1(o1 int, o2 int, o3 int, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 add n1 int not null, drop primary key, add primary key(o1,n1,o2), lock=none;
drop table t1;
create table t1(o1 int, o2 int, o3 int, primary key(o1,o2,o3)) engine = innodb;
insert into t1 values(1 ,1 ,2 ),(2 ,2 ,1 );
alter table t1 drop primary key, add primary key(o1), lock=none;
drop table t1;
create table t1(o1 int, o2 int, primary key(o1,o2)) engine = innodb;
insert into t1 values(1 ,1 ),(2 ,1 );
alter table t1 drop primary key, add column a int unique auto_increment,
add primary key(o1,o2,a), algorithm=inplace;
drop table t1;
SET DEBUG_DBUG = @saved_debug_dbug;
Messung V0.5 in Prozent C=17 H=100 G=71
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland