1CREATE TABLE t1 (f1 INT NOT NULL, f2 INT NOT NULL,
2UNIQUE KEY uidx2(f1,f2),
3UNIQUE KEY uidx1(f2)) ENGINE=InnoDB;
4INSERT INTO t1 VALUES(1, 1);
5SHOW CREATE TABLE t1;
6Table	Create Table
7t1	CREATE TABLE `t1` (
8  `f1` int(11) NOT NULL,
9  `f2` int(11) NOT NULL,
10  UNIQUE KEY `uidx2` (`f1`,`f2`),
11  UNIQUE KEY `uidx1` (`f2`)
12) ENGINE=InnoDB DEFAULT CHARSET=latin1
13SET DEBUG_SYNC = 'innodb_inplace_alter_table_enter
14		  SIGNAL conc_dml WAIT_FOR go_ahead';
15ALTER TABLE t1 CHANGE COLUMN f1 f11 INT, ALGORITHM=INPLACE;
16connect  con1,localhost,root,,;
17SET DEBUG_SYNC = 'now WAIT_FOR conc_dml';
18DELETE FROM t1;
19SET DEBUG_SYNC = 'now SIGNAL go_ahead';
20connection default;
21SHOW CREATE TABLE t1;
22Table	Create Table
23t1	CREATE TABLE `t1` (
24  `f11` int(11) DEFAULT NULL,
25  `f2` int(11) NOT NULL,
26  UNIQUE KEY `uidx1` (`f2`),
27  UNIQUE KEY `uidx2` (`f11`,`f2`)
28) ENGINE=InnoDB DEFAULT CHARSET=latin1
29CHECK TABLE t1;
30Table	Op	Msg_type	Msg_text
31test.t1	check	status	OK
32DROP TABLE t1;
33CREATE TABLE t1(f1 INT, f2 INT,
34PRIMARY KEY(f1, f2),
35UNIQUE INDEX uidx2 (f1, f2),
36UNIQUE INDEX uidx1 (f2))ENGINE=InnoDB;
37INSERT INTO t1 VALUES(2, 2);
38ALTER TABLE t1 DROP PRIMARY KEY;
39SHOW CREATE TABLE t1;
40Table	Create Table
41t1	CREATE TABLE `t1` (
42  `f1` int(11) NOT NULL,
43  `f2` int(11) NOT NULL,
44  UNIQUE KEY `uidx2` (`f1`,`f2`),
45  UNIQUE KEY `uidx1` (`f2`)
46) ENGINE=InnoDB DEFAULT CHARSET=latin1
47SET DEBUG_SYNC = 'innodb_inplace_alter_table_enter
48		  SIGNAL conc_dml WAIT_FOR go_ahead';
49ALTER TABLE t1 CHANGE COLUMN f1 f11 INT, ALGORITHM=INPLACE;
50connection con1;
51SET DEBUG_SYNC = 'now WAIT_FOR conc_dml';
52INSERT INTO t1 VALUES(1, 1), (1, 1);
53ERROR 23000: Duplicate entry '1-1' for key 'uidx2'
54SET DEBUG_SYNC = 'now SIGNAL go_ahead';
55connection default;
56SHOW CREATE TABLE t1;
57Table	Create Table
58t1	CREATE TABLE `t1` (
59  `f11` int(11) DEFAULT NULL,
60  `f2` int(11) NOT NULL,
61  UNIQUE KEY `uidx1` (`f2`),
62  UNIQUE KEY `uidx2` (`f11`,`f2`)
63) ENGINE=InnoDB DEFAULT CHARSET=latin1
64CHECK TABLE t1;
65Table	Op	Msg_type	Msg_text
66test.t1	check	status	OK
67DROP TABLE t1;
68SET SQL_MODE= strict_trans_tables;
69CREATE TABLE t1(a INT UNIQUE) ENGINE=InnoDB;
70INSERT INTO t1 VALUES(1);
71SET DEBUG_SYNC='row_log_table_apply1_before SIGNAL dml WAIT_FOR dml_done';
72ALTER TABLE t1 MODIFY COLUMN a INT NOT NULL;
73connection con1;
74SET DEBUG_SYNC='now WAIT_FOR dml';
75BEGIN;
76INSERT INTO t1 SET a=NULL;
77ROLLBACK;
78set DEBUG_SYNC='now SIGNAL dml_done';
79connection default;
80ERROR 22004: Invalid use of NULL value
81DROP TABLE t1;
82disconnect con1;
83SET DEBUG_SYNC="RESET";
84SET SQL_MODE=DEFAULT;
85CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL, PRIMARY KEY(f1, f2),
86UNIQUE KEY(f2))ENGINE=InnoDB;
87ALTER TABLE t1 DROP PRIMARY KEY;
88SHOW CREATE TABLE t1;
89Table	Create Table
90t1	CREATE TABLE `t1` (
91  `f1` int(11) NOT NULL,
92  `f2` int(11) NOT NULL,
93  UNIQUE KEY `f2` (`f2`)
94) ENGINE=InnoDB DEFAULT CHARSET=latin1
95DROP TABLE t1;
96CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL,
97UNIQUE KEY(f2), UNIQUE KEY(f2))ENGINE=InnoDB;
98Warnings:
99Note	1831	Duplicate index `f2_2`. This is deprecated and will be disallowed in a future release
100SHOW CREATE TABLE t1;
101Table	Create Table
102t1	CREATE TABLE `t1` (
103  `f1` int(11) NOT NULL,
104  `f2` int(11) NOT NULL,
105  UNIQUE KEY `f2` (`f2`),
106  UNIQUE KEY `f2_2` (`f2`)
107) ENGINE=InnoDB DEFAULT CHARSET=latin1
108ALTER TABLE t1 DROP INDEX f2, ALGORITHM=INPLACE;
109SHOW CREATE TABLE t1;
110Table	Create Table
111t1	CREATE TABLE `t1` (
112  `f1` int(11) NOT NULL,
113  `f2` int(11) NOT NULL,
114  UNIQUE KEY `f2_2` (`f2`)
115) ENGINE=InnoDB DEFAULT CHARSET=latin1
116DROP TABLE t1;
117