Bug #25817 UPDATE IGNORE doesn't check write_set when checking unique indexes
Submitted: 24 Jan 2007 11:36 Modified: 5 Nov 2007 23:17
Reporter: Mikael Ronstrom
Status: Closed
Category:Server: Cluster Severity:S3 (Non-critical)
Version:Red Hat OS:Any
Assigned to: Martin Skold Target Version:

[24 Jan 2007 11:36] Mikael Ronstrom
Description:
UPDATE IGNORE for NDB handler will use unitialised data
to check for ignore duplicate key errors

How to repeat:
CREATE TABLE t1 (a int not null primary key, b int not null, c int not null,
                 unique (b), unique (c))
engine ndb;

insert into t1 values (1,1,75),(1,57,79),(2,2,2);
update t1 set c = 4 where a = 2;
update ignore t1 set b = 55 where a = 1;

This can report a failure on the last attempted update due to
that randomly c = 4 is 4 in the new record (uninitialised value)
which is then used to check that no conflicts occur which it
will then report.

Suggested fix:
Ensure that only unique indexes that are part of write_set will
be checked for duplicate key ignorance.
[2 Oct 2007 13:37] 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/34751

ChangeSet@1.2483, 2007-10-02 13:36:13+02:00, mskold@mysql.com +4 -0
  Bug#25817  UPDATE IGNORE doesn't check write_set when checking unique indexes: Added
checks
[3 Oct 2007 9:54] 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/34808

ChangeSet@1.2562, 2007-10-03 09:54:33+02:00, mskold@mysql.com +1 -0
  Bug#25817  UPDATE IGNORE doesn't check write_set when checking unique indexes: Post
merge 5.0->5.1
[5 Nov 2007 14:53] Bugs System
Pushed into 6.0.4-alpha
[5 Nov 2007 14:56] Bugs System
Pushed into 5.1.23-rc
[5 Nov 2007 14:58] Bugs System
Pushed into 5.0.52
[5 Nov 2007 23:17] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of
that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available
version, including the bug fix. More information about accessing the source trees is
available at

    http://dev.mysql.com/doc/en/installing-source.html

Documented bugfix in 5.0.52, 5.1.23, and 6.0.4 changelogs. Closed.
[8 Nov 2007 15:34] Jon Stephens
Also documented fix in 5.1.22-ndb-6.2.8 and 5.1.22-ndb-6.3.6 changelogs (per release notes
from Tomas).