summaryrefslogtreecommitdiff
path: root/innobase/dict
diff options
context:
space:
mode:
authorunknown <heikki@donna.mysql.fi>2002-02-08 23:24:36 +0200
committerunknown <heikki@donna.mysql.fi>2002-02-08 23:24:36 +0200
commit17b2cd98c9b142fb4414cde86a3ce4026c486bc8 (patch)
treef718275499aebb5dcdef5c9071f169c6afbc02b2 /innobase/dict
parent73edf19b0c0a06e0271090002c6bd33df886d87b (diff)
downloadmariadb-git-17b2cd98c9b142fb4414cde86a3ce4026c486bc8.tar.gz
dict0crea.c:
Add some error messages to help in tracking Harald Fuchs' foreign key failure innobase/dict/dict0crea.c: Add some error messages to help in tracking Harald Fuchs' foreign key failure
Diffstat (limited to 'innobase/dict')
-rw-r--r--innobase/dict/dict0crea.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/innobase/dict/dict0crea.c b/innobase/dict/dict0crea.c
index f60db829380..ddaad90af34 100644
--- a/innobase/dict/dict0crea.c
+++ b/innobase/dict/dict0crea.c
@@ -1235,16 +1235,21 @@ loop:
if (error != DB_SUCCESS) {
fprintf(stderr,
- "InnoDB: foreign constraint creation failed;\n"
+ "InnoDB: Foreign key constraint creation failed:\n"
"InnoDB: internal error number %lu\n", error);
- ut_a(error == DB_OUT_OF_FILE_SPACE);
-
- fprintf(stderr, "InnoDB: tablespace is full\n");
-
- trx_general_rollback_for_mysql(trx, FALSE, NULL);
-
- error = DB_MUST_GET_MORE_FILE_SPACE;
+ if (error == DB_DUPLICATE_KEY) {
+ fprintf(stderr,
+ "InnoDB: Duplicate key error in system table %s index %s\n",
+ ((dict_index_t*)trx->error_info)->table_name,
+ ((dict_index_t*)trx->error_info)->name);
+
+ fprintf(stderr,
+ "InnoDB: Maybe the internal data dictionary of InnoDB is\n"
+ "InnoDB: out-of-sync from the .frm files of your tables.\n"
+ "InnoDB: See section 15.1 Troubleshooting data dictionary operations\n"
+ "InnoDB: at http://www.innodb.com/ibman.html\n");
+ }
return(error);
}