← Back to team overview

maria-developers team mailing list archive

[Branch ~maria-captains/maria/5.1] Rev 2829: Automatic merge

 

Merge authors:
  Michael Widenius (monty)
------------------------------------------------------------
revno: 2829 [merge]
committer: Michael Widenius <monty@xxxxxxxxxxxx>
branch nick: maria-5.1
timestamp: Wed 2010-03-10 15:55:40 +0200
message:
  Automatic merge
modified:
  mysql-test/r/foreign_key.result
  mysql-test/t/foreign_key.test
  sql/sql_delete.cc


--
lp:maria
https://code.launchpad.net/~maria-captains/maria/5.1

Your team Maria developers is subscribed to branch lp:maria.
To unsubscribe from this branch go to https://code.launchpad.net/~maria-captains/maria/5.1/+edit-subscription.
=== modified file 'mysql-test/r/foreign_key.result'
--- mysql-test/r/foreign_key.result	2001-09-28 05:05:54 +0000
+++ mysql-test/r/foreign_key.result	2010-03-10 13:39:02 +0000
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t2;
 create table t1 (
 a int not null references t2,
 b int not null references t2 (c),
@@ -13,3 +13,30 @@
 create index a on t1 (a);
 create unique index b on t1 (a,b);
 drop table t1;
+create table t1 (id int primary key) engine = innodb;
+create table t2 (id int PRIMARY KEY, FOREIGN KEY (id) REFERENCES t1(id)) engine=innodb;
+insert into t1 values (1), (2), (3), (4), (5), (6);
+insert into t2 values (3), (5);
+delete from t1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`))
+select * from t1;
+id
+1
+2
+3
+4
+5
+6
+delete ignore from t1;
+Warnings:
+Error	1451	Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`))
+Error	1451	Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`))
+select row_count();
+row_count()
+-1
+select * from t1;
+id
+3
+5
+drop table t2;
+drop table t1;

=== modified file 'mysql-test/t/foreign_key.test'
--- mysql-test/t/foreign_key.test	2005-07-28 00:22:47 +0000
+++ mysql-test/t/foreign_key.test	2010-03-10 13:39:02 +0000
@@ -2,8 +2,10 @@
 # Test syntax of foreign keys
 #
 
+-- source include/have_innodb.inc
+
 --disable_warnings
-drop table if exists t1;
+drop table if exists t1,t2;
 --enable_warnings
 
 create table t1 (
@@ -23,3 +25,23 @@
 drop table t1;
 
 # End of 4.1 tests
+
+#
+# Test DELETE IGNORE
+# Bug#44987 DELETE IGNORE and FK constraint
+#
+
+create table t1 (id int primary key) engine = innodb;
+create table t2 (id int PRIMARY KEY, FOREIGN KEY (id) REFERENCES t1(id)) engine=innodb;
+insert into t1 values (1), (2), (3), (4), (5), (6);
+insert into t2 values (3), (5);
+
+--error 1451
+delete from t1;
+select * from t1;
+
+delete ignore from t1;
+select row_count();
+select * from t1;
+drop table t2;
+drop table t1;

=== modified file 'sql/sql_delete.cc'
--- sql/sql_delete.cc	2010-03-04 08:03:07 +0000
+++ sql/sql_delete.cc	2010-03-10 13:55:40 +0000
@@ -335,8 +335,11 @@
 	  InnoDB it can fail in a FOREIGN KEY error or an
 	  out-of-tablespace error.
 	*/
- 	error= 1;
-	break;
+        if (!select_lex->no_error)
+        {
+          error= 1;
+          break;
+        }
       }
     }
     else