List:Commits« Previous MessageNext Message »
From:Martin Skold Date:October 15 2009 8:23am
Subject:bzr commit into mysql-5.1-telco-6.3 branch (Martin.Skold:3105) Bug#48036
View as plain text  
#At file:///home/marty/MySQL/mysql-5.1-telco-6.3/

 3105 Martin Skold	2009-10-15
      Bug#48036: NDB: UPDATE IGNORE not working together with unique constraint: disable batching of updates if updating unique index, added test case
      modified:
        mysql-test/suite/ndb/r/ndb_update.result
        mysql-test/suite/ndb/t/ndb_update.test
        sql/ha_ndbcluster.cc

=== modified file 'mysql-test/suite/ndb/r/ndb_update.result'
--- a/mysql-test/suite/ndb/r/ndb_update.result	2008-12-05 10:59:32 +0000
+++ b/mysql-test/suite/ndb/r/ndb_update.result	2009-10-15 08:23:13 +0000
@@ -27,6 +27,9 @@ pk1	b	c
 0	0	0
 2	2	2
 4	1	1
+UPDATE t1 set c = 1 WHERE b IN(0,1,2,3,4);
+ERROR 23000: Duplicate entry '1' for key 'c'
+UPDATE IGNORE t1 set c = 1 WHERE b IN(0,1,2,3,4);
 UPDATE t1 set pk1 = 1, c = 2 where pk1 = 4;
 ERROR 23000: Duplicate entry '2' for key 'c'
 UPDATE IGNORE t1 set pk1 = 1, c = 2 where pk1 = 4;

=== modified file 'mysql-test/suite/ndb/t/ndb_update.test'
--- a/mysql-test/suite/ndb/t/ndb_update.test	2008-12-05 10:59:32 +0000
+++ b/mysql-test/suite/ndb/t/ndb_update.test	2009-10-15 08:23:13 +0000
@@ -29,6 +29,9 @@ UPDATE t1 set pk1 = 4 where pk1 = 2;
 UPDATE IGNORE t1 set pk1 = 4 where pk1 = 2;
 select * from t1 order by pk1;
 --error ER_DUP_ENTRY
+UPDATE t1 set c = 1 WHERE b IN(0,1,2,3,4);
+UPDATE IGNORE t1 set c = 1 WHERE b IN(0,1,2,3,4);
+--error ER_DUP_ENTRY
 UPDATE t1 set pk1 = 1, c = 2 where pk1 = 4;
 UPDATE IGNORE t1 set pk1 = 1, c = 2 where pk1 = 4;
 select * from t1 order by pk1;

=== modified file 'sql/ha_ndbcluster.cc'
--- a/sql/ha_ndbcluster.cc	2009-10-14 14:12:28 +0000
+++ b/sql/ha_ndbcluster.cc	2009-10-15 08:23:13 +0000
@@ -3874,6 +3874,12 @@ ha_ndbcluster::delete_row_conflict_fn(en
 bool ha_ndbcluster::start_bulk_update()
 {
   DBUG_ENTER("ha_ndbcluster::start_bulk_update");
+  if (!m_use_write && m_ignore_dup_key)
+  {
+    DBUG_PRINT("info", ("Batching turned off as duplicate key is "
+                        "ignored by using peek_row"));
+    DBUG_RETURN(TRUE);
+  }
   DBUG_RETURN(FALSE);
 }
 

Thread
bzr commit into mysql-5.1-telco-6.3 branch (Martin.Skold:3105) Bug#48036Martin Skold15 Oct