| Bug #37516 | DELETE using UNIQUE index deletes the wrong row | ||
|---|---|---|---|
| Submitted: | 19 Jun 2008 7:55 | Modified: | 2 Jul 2008 17:36 |
| Reporter: | Axel Schwenke | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S1 (Critical) |
| Version: | 5.1.24-6.3.15 | OS: | Any |
| Assigned to: | Frazer Clement | CPU Architecture: | Any |
[26 Jun 2008 7:12]
Jonas Oreland
ok to push
[26 Jun 2008 9:35]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/48556
[26 Jun 2008 11:08]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/48561
[2 Jul 2008 17:36]
Jon Stephens
Documented in the NDB 6.3.16 changelog as follows:
DELETE ... WHERE unique_index_column=value deleted the wrong row from the
table.

Description: Delete using a UNIQUE index to filter the WHERE condition matches the wrong row. It seems always to be the last row. Does not happen when the index is PRIMARY or non-unique. How to repeat: drop table if exists t1; create table t1 (c1 varchar(36), c2 int, unique(c1)) engine ndbcluster; insert into t1 values ('aaa',1), ('bbb',2), ('ccc',3), ('ddd',4); select * from t1; delete from t1 where c1='aaa'; select * from t1; delete from t1 where c1='aaa'; select * from t1; delete from t1 where c1='aaa'; select * from t1;