From: Jon Olav Hauglid Date: May 10 2011 10:55am Subject: bzr commit into mysql-trunk branch (jon.hauglid:3389) Bug#11747690 List-Archive: http://lists.mysql.com/commits/136982 X-Bug: 11747690 Message-Id: <201105101055.p4AAthYw002434@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1118703486332061327==" --===============1118703486332061327== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-trunk-bug11747690/ based on revid:horst.hunger@stripped 3389 Jon Olav Hauglid 2011-05-10 Bug#11747690 (former 33650) MYSQL_ALTER_TABLE() UNNECESSARILY DOES FULL TABLE COPY The problem was that full table copy was done when creating an index on a UTF-8 VARCHAR column (rather than using in-place ALTER TABLE). This problem is not repeatable using InnoDB. It is repeatable using MyISAM, but MyISAM does not support in-place add index in general, not just for UTF-8 VARCHAR columns. Therefore the current behavior is not a bug with regards to MyISAM. This patch adds a regression test for InnoDB and contains no code changes. modified: mysql-test/r/innodb_mysql_lock.result mysql-test/t/innodb_mysql_lock.test === modified file 'mysql-test/r/innodb_mysql_lock.result' --- a/mysql-test/r/innodb_mysql_lock.result 2011-04-13 18:43:08 +0000 +++ b/mysql-test/r/innodb_mysql_lock.result 2011-05-10 10:55:34 +0000 @@ -170,3 +170,15 @@ id value 1 12345 COMMIT; DROP TABLE t1; +# +# Bug#11747690 33650: MYSQL_ALTER_TABLE() UNNECESSARILY DOES +# FULL TABLE COPY +# +DROP TABLE IF EXISTS t1; +CREATE TABLE t1(a INT, b VARCHAR(255), PRIMARY KEY(a,b)) +engine=innodb default charset=utf8; +INSERT INTO t1 VALUES (1, 'a'), (2, 'b'); +CREATE INDEX t1ba ON t1(b,a); +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +DROP TABLE t1; === modified file 'mysql-test/t/innodb_mysql_lock.test' --- a/mysql-test/t/innodb_mysql_lock.test 2011-04-13 18:43:08 +0000 +++ b/mysql-test/t/innodb_mysql_lock.test 2011-05-10 10:55:34 +0000 @@ -311,6 +311,27 @@ DROP TABLE t1; disconnect con1; +--echo # +--echo # Bug#11747690 33650: MYSQL_ALTER_TABLE() UNNECESSARILY DOES +--echo # FULL TABLE COPY +--echo # + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +CREATE TABLE t1(a INT, b VARCHAR(255), PRIMARY KEY(a,b)) + engine=innodb default charset=utf8; +INSERT INTO t1 VALUES (1, 'a'), (2, 'b'); + +# Check that 0 rows are affected +--enable_info +CREATE INDEX t1ba ON t1(b,a); +--disable_info + +DROP TABLE t1; + + # Check that all connections opened by test cases in this file are really # gone so execution of other tests won't be affected by their presence. --source include/wait_until_count_sessions.inc --===============1118703486332061327== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jon.hauglid@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jon.hauglid@stripped # target_branch: file:///export/home/x/mysql-trunk-bug11747690/ # testament_sha1: 9499426690794de81c3eed9b17beedea80a8b331 # timestamp: 2011-05-10 12:55:37 +0200 # base_revision_id: horst.hunger@stripped\ # mwq95b8vhg2q3c08 # # Begin bundle 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 yRThQkCJbeZI --===============1118703486332061327==--