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.
This commit is contained in:
parent
bafe24035d
commit
5e32755e4c
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user