diff options
author | unknown <aivanov@mysql.com> | 2005-12-13 21:35:24 +0300 |
---|---|---|
committer | unknown <aivanov@mysql.com> | 2005-12-13 21:35:24 +0300 |
commit | dd14235fb7b6cd51a260415f221dbffbbe843705 (patch) | |
tree | 7a6cff8fdb54472ba07a9cea2610e458af775dd2 /mysql-test | |
parent | a0e9413b204978a9c4af9c583145e25467e4060a (diff) | |
download | mariadb-git-dd14235fb7b6cd51a260415f221dbffbbe843705.tar.gz |
Fix BUG#12071: "Windows hang:'Opening tables' or 'Waiting for
table' lockup".
Changes from the innodb-5.0-ss92 snapshot.
Do not call os_file_create_tmpfile() at runtime. Instead, create
all tempfiles at startup and guard access to them with mutexes.
innobase/btr/btr0sea.c:
Changes from the innodb-5.0ss92 snapshot.
innobase/include/buf0buf.h:
Changes from the innodb-5.0ss92 snapshot.
innobase/include/os0file.h:
Changes from the innodb-5.0ss92 snapshot.
innobase/include/srv0srv.h:
Changes from the innodb-5.0ss92 snapshot.
innobase/row/row0ins.c:
Changes from the innodb-5.0ss92 snapshot.
innobase/srv/srv0srv.c:
Changes from the innodb-5.0ss92 snapshot.
innobase/srv/srv0start.c:
Changes from the innodb-5.0ss92 snapshot.
mysql-test/r/innodb.result:
Changes from the innodb-5.0ss92 snapshot.
mysql-test/t/innodb.test:
Changes from the innodb-5.0ss92 snapshot.
sql/ha_innodb.cc:
Changes from the innodb-5.0ss92 snapshot.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/innodb.result | 29 | ||||
-rw-r--r-- | mysql-test/t/innodb.test | 34 |
2 files changed, 63 insertions, 0 deletions
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 0e0e6a20770..dcff72ba7c0 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -2846,4 +2846,33 @@ d varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=innodb; ERROR 42000: Specified key was too long; max key length is 3072 bytes +create table t1(a int primary key) row_format=redundant engine=innodb; +create table t2(a int primary key,constraint foreign key(a)references t1(a)) row_format=compact engine=innodb; +create table t3(a int primary key) row_format=compact engine=innodb; +create table t4(a int primary key,constraint foreign key(a)references t3(a)) row_format=redundant engine=innodb; +insert into t1 values(1); +insert into t3 values(1); +insert into t2 values(2); +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)) +insert into t4 values(2); +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`)) +insert into t2 values(1); +insert into t4 values(1); +update t1 set a=2; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)) +update t2 set a=2; +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)) +update t3 set a=2; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`)) +update t4 set a=2; +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`)) +truncate t1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)) +truncate t3; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test/t4`, CONSTRAINT `t4_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t3` (`a`)) +truncate t2; +truncate t4; +truncate t1; +truncate t3; +drop table t4,t3,t2,t1; End of 5.0 tests diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 735deba2b05..887d8193157 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -1833,4 +1833,38 @@ create table t1 (a varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=innodb; +# test that foreign key errors are reported correctly (Bug #15550) + +create table t1(a int primary key) row_format=redundant engine=innodb; +create table t2(a int primary key,constraint foreign key(a)references t1(a)) row_format=compact engine=innodb; +create table t3(a int primary key) row_format=compact engine=innodb; +create table t4(a int primary key,constraint foreign key(a)references t3(a)) row_format=redundant engine=innodb; + +insert into t1 values(1); +insert into t3 values(1); +-- error 1452 +insert into t2 values(2); +-- error 1452 +insert into t4 values(2); +insert into t2 values(1); +insert into t4 values(1); +-- error 1451 +update t1 set a=2; +-- error 1452 +update t2 set a=2; +-- error 1451 +update t3 set a=2; +-- error 1452 +update t4 set a=2; +-- error 1451 +truncate t1; +-- error 1451 +truncate t3; +truncate t2; +truncate t4; +truncate t1; +truncate t3; + +drop table t4,t3,t2,t1; + --echo End of 5.0 tests |