|
When renaming a column and adding an index on the renamed column in the same alter statement, said statement fails with:
ERROR 1034 (HY000): Incorrect key file for table 't'; try to repair it
|
This can be reproduced consistently as follows:
DROP TABLE IF EXISTS t;
|
|
CREATE TABLE t (
|
a INT NOT NULL,
|
b INT NOT NULL,
|
PRIMARY KEY (a)
|
);
|
|
ALTER TABLE t
|
CHANGE COLUMN b c INT NOT NULL,
|
ADD UNIQUE INDEX (c);
|
In debug builds, the following (or similar) is written to the error log:
InnoDB: Error: no matching column for "<8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f><8f>" in index "c"--temporary-- of table "db"."t"!
|
This seems to have been broken in 10.0.18 (possibly related to the virtual column changes), as the query succeeds in 10.0.17 and earlier.
|