1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-10 02:01:19 +03:00
mariadb/mysql-test/suite/innodb/t/innodb_bug12902967.test
Annamalai Gurusami b757c13078 In perl, to break out of a foreach loop we need to use
the keyword "last" and not "break".  Fixing the failing
test case.
2012-05-04 12:29:49 +05:30

43 lines
1.2 KiB
Plaintext

# Bug 12902967: Creating self referencing fk on same index unhandled,
# confusing error
#
# Creating a self referencing foreign key on the same
# column/index is an unhandled exception, it should throw a sensible
# error but instead implies that your data dictionary may now be out
# of sync:
--source include/have_innodb.inc
--source include/not_embedded.inc
let error_log= $MYSQLTEST_VARDIR/log/mysqld.1.err;
--source include/restart_mysqld.inc
create table t1 (f1 integer primary key) engine innodb;
# The below statement should produce error message in error log.
# This error message should mention problem with foreign keys
# rather than with data dictionary.
--replace_regex /'\.\/test\/#sql-[0-9a-f_]*'/'#sql-temporary'/
--error ER_ERROR_ON_RENAME
alter table t1 add constraint c1 foreign key (f1) references t1(f1);
--source include/restart_mysqld.inc
perl;
$file = "$ENV{'error_log'}";
open ( FILE, $file) || die "can't open file! ($file)\n";
@lines = <FILE>;
close (FILE);
$count = 0;
foreach $line (reverse @lines) {
if ($line =~ "^InnoDB:") {
++$count;
print "$line";
if ($count == 2) {
last;
}
}
}
EOF
drop table t1;