From: Jon Olav Hauglid Date: March 7 2011 1:30pm Subject: bzr commit into mysql-5.5 branch (jon.hauglid:3375) Bug#11784056 List-Archive: http://lists.mysql.com/commits/132537 X-Bug: 11784056 Message-Id: <201103071331.p274tulj018681@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2592912635640448758==" --===============2592912635640448758== 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-bug11784056/ based on revid:jon.hauglid@stripped 3375 Jon Olav Hauglid 2011-03-07 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-03-07 13:30:49 +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-03-07 13:30:49 +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-03-01 14:42:37 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2011-03-07 13:30:49 +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); } --===============2592912635640448758== 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-bug11784056/ # testament_sha1: b9381a396e8580be4847a17c7d2935ae0fd2622c # timestamp: 2011-03-07 14:30:52 +0100 # base_revision_id: jon.hauglid@stripped\ # whqzm224vwjqflid # # Begin bundle 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 s4u5IpwoSBefAiCA --===============2592912635640448758==--