ALTER TABLE IGNORE didn't ignore duplicates for unique add index for InnoDB
This commit is contained in:
parent
711b36732b
commit
ab32ce9aa7
@ -2617,6 +2617,13 @@ rows 3
|
||||
Extra Using index
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# ALTER TABLE IGNORE didn't ignore duplicates for unique add index
|
||||
#
|
||||
create table t1 (a int primary key, b int) engine = innodb;
|
||||
insert into t1 values (1,1),(2,1);
|
||||
alter ignore table t1 add unique `main` (b);
|
||||
drop table t1;
|
||||
#
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Test for bug #39932 "create table fails if column for FK is in different
|
||||
|
@ -840,6 +840,15 @@ CREATE INDEX b ON t1(a,b,c,d);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # ALTER TABLE IGNORE didn't ignore duplicates for unique add index
|
||||
--echo #
|
||||
|
||||
create table t1 (a int primary key, b int) engine = innodb;
|
||||
insert into t1 values (1,1),(2,1);
|
||||
alter ignore table t1 add unique `main` (b);
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
|
||||
|
||||
|
@ -7136,6 +7136,16 @@ view_err:
|
||||
/* Non-primary unique key. */
|
||||
needed_online_flags|= HA_ONLINE_ADD_UNIQUE_INDEX;
|
||||
needed_fast_flags|= HA_ONLINE_ADD_UNIQUE_INDEX_NO_WRITES;
|
||||
if (ignore)
|
||||
{
|
||||
/*
|
||||
If ignore is used, we have to remove all duplicate rows,
|
||||
which require a full table copy.
|
||||
*/
|
||||
need_copy_table= ALTER_TABLE_DATA_CHANGED;
|
||||
pk_changed= 2; // Don't change need_copy_table
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user