summaryrefslogtreecommitdiff
path: root/innobase/dict/dict0crea.c
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/dict/dict0crea.c')
-rw-r--r--innobase/dict/dict0crea.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/innobase/dict/dict0crea.c b/innobase/dict/dict0crea.c
index 7b9255b4e27..69b1e7c61fd 100644
--- a/innobase/dict/dict0crea.c
+++ b/innobase/dict/dict0crea.c
@@ -1235,16 +1235,23 @@ 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);
+ 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);
- error = DB_MUST_GET_MORE_FILE_SPACE;
+ fprintf(stderr, "%s\n", buf);
+
+ 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);
}