From: Jon Olav Hauglid Date: May 10 2011 8:54am Subject: bzr commit into mysql-trunk branch (jon.hauglid:3388) Bug#11747690 List-Archive: http://lists.mysql.com/commits/136967 X-Bug: 11747690 Message-Id: <201105100854.p4A8sZNn005091@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1010767790885722222==" --===============1010767790885722222== 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:serge.kozlov@stripped 3388 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 08:54:26 +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 08:54:26 +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 --===============1010767790885722222== 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: 5d14a8722c5eec4748f83a948b2000887950cb86 # timestamp: 2011-05-10 10:54:29 +0200 # base_revision_id: serge.kozlov@stripped\ # liiegqtwc4lrs0md # # Begin bundle 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 1V1K7T/4u5IpwoSBbf7MEA== --===============1010767790885722222==--