summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authormonty@work.mysql.com <>2001-09-13 09:52:35 +0200
committermonty@work.mysql.com <>2001-09-13 09:52:35 +0200
commit18474d84196f937a9a0bca49d8a822d3e48bf298 (patch)
tree1fb0fbca5b7a4edebe2c26a5ed0b272e92bc21f2 /sql/handler.cc
parent08df09230f26ec86e61d3297314343ee65092359 (diff)
parentc946439d6c8d402a0a1a2a6520760dab16648c21 (diff)
downloadmariadb-git-18474d84196f937a9a0bca49d8a822d3e48bf298.tar.gz
Merge with 3.23.42
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index fbf5144c090..f790417cf79 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -52,7 +52,7 @@ ulong ha_read_count, ha_write_count, ha_delete_count, ha_update_count,
const char *ha_table_type[] = {
"", "DIAB_ISAM","HASH","MISAM","PISAM","RMS_ISAM","HEAP", "ISAM",
- "MRG_ISAM","MYISAM", "MRG_MYISAM", "BDB", "INNOBASE", "GEMINI", "?", "?",NullS
+ "MRG_ISAM","MYISAM", "MRG_MYISAM", "BDB", "INNODB", "GEMINI", "?", "?",NullS
};
TYPELIB ha_table_typelib= {array_elements(ha_table_type)-4,"",
@@ -839,8 +839,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);
}