mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
01e5bc703d
Despite copying the value of the old table's row type we don't always have to mark row type as being specified. Innodb uses this to check if it can do fast ALTER TABLE or not. Fixed by correctly flagging the presence of row_type only when it's actually changed. Added a test case for 39200.
38 lines
955 B
Text
38 lines
955 B
Text
-- source include/have_innodb.inc
|
|
|
|
--echo #
|
|
--echo # Bug#46760: Fast ALTER TABLE no longer works for InnoDB
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--echo # By using --enable_info and verifying that number of affected
|
|
--echo # rows is 0 we check that this ALTER TABLE is really carried
|
|
--echo # out as "fast/online" operation, i.e. without full-blown data
|
|
--echo # copying.
|
|
--echo #
|
|
--echo # I.e. info for the below statement should normally look like:
|
|
--echo #
|
|
--echo # affected rows: 0
|
|
--echo # info: Records: 0 Duplicates: 0 Warnings: 0
|
|
|
|
--enable_info
|
|
ALTER TABLE t1 ALTER COLUMN a SET DEFAULT 10;
|
|
--disable_info
|
|
SHOW CREATE TABLE t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # MySQL Bug#39200: optimize table does not recognize
|
|
--echo # ROW_FORMAT=COMPRESSED
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (a INT) ROW_FORMAT=compressed;
|
|
SHOW CREATE TABLE t1;
|
|
OPTIMIZE TABLE t1;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo End of 5.1 tests
|