diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2019-01-29 12:48:52 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2019-01-29 12:48:52 +0530 |
commit | e39fc75241e8a53a1cd6ab5a9a9eb5906ac1e92c (patch) | |
tree | 2e41d0e26bb2b4884c14fcf2ba67e21b75d64689 | |
parent | 322301e24349b501fffbec2d66c2ba2374aac411 (diff) | |
download | mariadb-git-bb-10.2-MDEV-16849.tar.gz |
MDEV-16849 Extending indexed VARCHAR column should be instantaneousbb-10.2-MDEV-16849
- Addressed Serg's review comments again.
- If column length is decreased then the table will be rebuild.
So removed the un-necessary index id comparison to avoid confusion
in test case.
- Set the column index length flag if only index length is increased.
-rw-r--r-- | mysql-test/suite/innodb/r/alter_varchar_change.result | 11 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/alter_varchar_change.test | 4 | ||||
-rw-r--r-- | sql/sql_table.cc | 2 |
3 files changed, 5 insertions, 12 deletions
diff --git a/mysql-test/suite/innodb/r/alter_varchar_change.result b/mysql-test/suite/innodb/r/alter_varchar_change.result index 2f412aecbf1..0b06fddd35e 100644 --- a/mysql-test/suite/innodb/r/alter_varchar_change.result +++ b/mysql-test/suite/innodb/r/alter_varchar_change.result @@ -319,20 +319,18 @@ f2 VARCHAR(100), INDEX idx(f2(10)), INDEX idx1(f1))ENGINE=InnoDB; CALL get_table_id("test/t1", @tbl_id); -ALTER TABLE t1 MODIFY f2 VARCHAR(50), DROP INDEX idx1; +ALTER TABLE t1 MODIFY f2 VARCHAR(50); CALL get_table_id("test/t1", @tbl1_id); SELECT @tbl1_id = @tbl_id; @tbl1_id = @tbl_id 0 -SELECT @idx1_id = @idx_id; -@idx1_id = @idx_id -0 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f1` int(11) NOT NULL, `f2` varchar(50) DEFAULT NULL, - KEY `idx` (`f2`(10)) + KEY `idx` (`f2`(10)), + KEY `idx1` (`f1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1(f1 INT NOT NULL, @@ -345,9 +343,6 @@ CALL get_table_id("test/t1", @tbl1_id); SELECT @tbl1_id = @tbl_id; @tbl1_id = @tbl_id 0 -SELECT @idx1_id = @idx_id; -@idx1_id = @idx_id -0 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/suite/innodb/t/alter_varchar_change.test b/mysql-test/suite/innodb/t/alter_varchar_change.test index 508ebbabf32..f435125e581 100644 --- a/mysql-test/suite/innodb/t/alter_varchar_change.test +++ b/mysql-test/suite/innodb/t/alter_varchar_change.test @@ -236,11 +236,10 @@ CREATE TABLE t1(f1 INT NOT NULL, INDEX idx1(f1))ENGINE=InnoDB; CALL get_table_id("test/t1", @tbl_id); -ALTER TABLE t1 MODIFY f2 VARCHAR(50), DROP INDEX idx1; +ALTER TABLE t1 MODIFY f2 VARCHAR(50); CALL get_table_id("test/t1", @tbl1_id); SELECT @tbl1_id = @tbl_id; -SELECT @idx1_id = @idx_id; SHOW CREATE TABLE t1; DROP TABLE t1; @@ -254,7 +253,6 @@ ALTER TABLE t1 MODIFY f2 VARCHAR(5), DROP INDEX idx1; CALL get_table_id("test/t1", @tbl1_id); SELECT @tbl1_id = @tbl_id; -SELECT @idx1_id = @idx_id; SHOW CREATE TABLE t1; DROP TABLE t1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 7eca33812b9..3673a373931 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -6708,7 +6708,7 @@ static bool fill_alter_inplace_info(THD *thd, } if (key_part->length == old_field_len && - key_part->length <= new_part->length && + key_part->length < new_part->length && (key_part->field->is_equal((Create_field*) new_field) == IS_EQUAL_PACK_LENGTH)) { |