summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/handler.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 2f6e3b11bdf..1c50634de1f 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -837,8 +837,15 @@ int ha_create_table(const char *name, HA_CREATE_INFO *create_info,
}
error=table.file->create(name,&table,create_info);
VOID(closefrm(&table));
- if (error)
- my_error(ER_CANT_CREATE_TABLE,MYF(ME_BELL+ME_WAITTANG),name,my_errno);
+ if (error) {
+ if (table.db_type == DB_TYPE_INNOBASE) {
+ /* Creation of InnoDB table cannot fail because of an OS error:
+ put error as the number */
+ my_error(ER_CANT_CREATE_TABLE,MYF(ME_BELL+ME_WAITTANG),name,error);
+ } else {
+ my_error(ER_CANT_CREATE_TABLE,MYF(ME_BELL+ME_WAITTANG),name,my_errno);
+ }
+ }
DBUG_RETURN(error != 0);
}