# 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 = ; close (FILE); $count = 0; foreach $line (reverse @lines) { if ($line =~ "^InnoDB:") { ++$count; print "$line"; if ($count == 2) { last; } } } EOF drop table t1;