From: Jon Olav Hauglid Date: February 17 2011 2:21pm Subject: bzr commit into mysql-5.5 branch (jon.hauglid:3341) Bug#11784056 List-Archive: http://lists.mysql.com/commits/131550 X-Bug: 11784056 Message-Id: <201102171422.p1H5kunj023008@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3063756510615559549==" --===============3063756510615559549== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-5.5-test/ based on revid:vasil.dimov@stripped 3341 Jon Olav Hauglid 2011-02-17 Bug #11784056 ENABLE CONCURRENT READS WHILE CREATING NON-PRIMARY UNIQUE INDEX USING INNODB This patch adds the HA_INPLACE_ADD_UNIQUE_INDEX_NO_WRITE capability flag to InnoDB, indicating that concurrent reads can be allowed while non-primary unique indexes are created. This is an follow-up to Bug #11751388 which enabled concurrent reads when creating non-primary non-unique indexes. Test case added to innodb_mysql_sync.test. modified: mysql-test/r/innodb_mysql_sync.result mysql-test/t/innodb_mysql_sync.test storage/innobase/handler/ha_innodb.cc === modified file 'mysql-test/r/innodb_mysql_sync.result' --- a/mysql-test/r/innodb_mysql_sync.result 2011-01-26 13:23:29 +0000 +++ b/mysql-test/r/innodb_mysql_sync.result 2011-02-17 14:21:45 +0000 @@ -153,5 +153,15 @@ SET DEBUG_SYNC= "now SIGNAL query"; a b # Test 4: Secondary unique index, should not block reads. # Connection default +SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query"; +# Sending: +ALTER TABLE t1 ADD UNIQUE (b); +# Connection con1 +SET DEBUG_SYNC= "now WAIT_FOR manage"; +SELECT * FROM t1; +a b +SET DEBUG_SYNC= "now SIGNAL query"; +# Connection default +# Reaping: ALTER TABLE t1 ADD UNIQUE (b) SET DEBUG_SYNC= "RESET"; DROP TABLE t1; === modified file 'mysql-test/t/innodb_mysql_sync.test' --- a/mysql-test/t/innodb_mysql_sync.test 2011-01-26 13:23:29 +0000 +++ b/mysql-test/t/innodb_mysql_sync.test 2011-02-17 14:21:45 +0000 @@ -253,26 +253,23 @@ connection con1; --reap --echo # Test 4: Secondary unique index, should not block reads. -# This requires HA_INPLACE_ADD_UNIQUE_INDEX_NO_WRITE to be supported -# by InnoDB. Adding this flag currently introduces a regression so -# this test is disabled until the regression has been fixed. --echo # Connection default connection default; -#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query"; -#--echo # Sending: -#--send ALTER TABLE t1 ADD UNIQUE (b) +SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query"; +--echo # Sending: +--send ALTER TABLE t1 ADD UNIQUE (b) -#--echo # Connection con1 -#connection con1; -#SET DEBUG_SYNC= "now WAIT_FOR manage"; -#SELECT * FROM t1; -#SET DEBUG_SYNC= "now SIGNAL query"; +--echo # Connection con1 +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR manage"; +SELECT * FROM t1; +SET DEBUG_SYNC= "now SIGNAL query"; -#--echo # Connection default -#connection default; -#--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b) -#--reap +--echo # Connection default +connection default; +--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b) +--reap disconnect con1; disconnect con2; === modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc 2011-02-08 15:47:33 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2011-02-17 14:21:45 +0000 @@ -2597,6 +2597,7 @@ innobase_alter_table_flags( | HA_INPLACE_ADD_INDEX_NO_WRITE | HA_INPLACE_DROP_INDEX_NO_READ_WRITE | HA_INPLACE_ADD_UNIQUE_INDEX_NO_READ_WRITE + | HA_INPLACE_ADD_UNIQUE_INDEX_NO_WRITE | HA_INPLACE_DROP_UNIQUE_INDEX_NO_READ_WRITE | HA_INPLACE_ADD_PK_INDEX_NO_READ_WRITE); } --===============3063756510615559549== 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-5.5-test/ # testament_sha1: baee8e39d4a5c61a64c84d4d7195f62ee9d3d95d # timestamp: 2011-02-17 15:21:49 +0100 # source_branch: file:///export/home/x/mysql-5.1-bug50619/ # base_revision_id: vasil.dimov@stripped\ # 8412lf7u2lk05iwh # # Begin bundle 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 SRBC9S8/8XckU4UJDbJRyLA= --===============3063756510615559549==--