Current Path : /home/usr.opt/mysql57/mysql-test/suite/innodb/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/innodb/t/innodb-alter-wl6554.test |
--source include/have_innodb.inc --echo # --echo # Bug#15863023 SUPPORT IN-PLACE EXTENSION OF VARCHAR COLUMN --echo # CREATE TABLE t1 (pk VARCHAR(2) PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (fk VARCHAR(2), FOREIGN KEY (fk) REFERENCES t1 (pk)) ENGINE=InnoDB; INSERT INTO t1 VALUES ('aa'), ('bb'); INSERT INTO t2 VALUES ('aa'), ('bb'); ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN pk pk VARCHAR(5); INSERT INTO t1 VALUES ('co'); INSERT INTO t2 VALUES ('co'); INSERT IGNORE INTO t2 VALUES ('code'); ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(7); --error ER_NO_REFERENCED_ROW_2 INSERT INTO t2 VALUES ('code'); --error ER_NO_REFERENCED_ROW_2 INSERT INTO t2 VALUES ('coastal'); --error ER_NO_REFERENCED_ROW_2 INSERT INTO t2 VALUES ('coast'); INSERT INTO t1 VALUES ('coast'); --error ER_NO_REFERENCED_ROW_2 INSERT INTO t2 VALUES ('coastal'); INSERT INTO t2 VALUES ('coast'); DROP TABLE t2, t1; CREATE TABLE t1 (pk VARCHAR(2) PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (fk VARCHAR(2), CONSTRAINT fk FOREIGN KEY (fk) REFERENCES t1 (pk)) ENGINE=InnoDB; INSERT INTO t1 VALUES ('aa'), ('bb'); INSERT INTO t2 VALUES ('aa'), ('bb'); ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(6); ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(255); --echo # We cannot shrink the size or cross the 256-byte boundary. --error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(6); --error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(256); --echo # ALGORITHM=COPY has more limitations with FOREIGN KEY. --error ER_FK_COLUMN_CANNOT_CHANGE ALTER TABLE t2 CHANGE COLUMN fk fk VARCHAR(256); ALTER TABLE t2 ALGORITHM=INPLACE, DROP FOREIGN KEY fk; ALTER TABLE t2 CHANGE COLUMN fk fk VARCHAR(256); ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(300); SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; --error ER_BLOB_KEY_WITHOUT_LENGTH ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(99999); ALTER TABLE t2 ALGORITHM=INPLACE, DROP INDEX fk; --echo # Type change from VARCHAR to BLOB is not supported. --error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON ALTER TABLE t2 ALGORITHM=INPLACE, CHANGE COLUMN fk fk VARCHAR(99999); DROP TABLE t2, t1; SET sql_mode = default;