diff options
author | monty@work.mysql.com <> | 2001-09-13 09:52:35 +0200 |
---|---|---|
committer | monty@work.mysql.com <> | 2001-09-13 09:52:35 +0200 |
commit | 18474d84196f937a9a0bca49d8a822d3e48bf298 (patch) | |
tree | 1fb0fbca5b7a4edebe2c26a5ed0b272e92bc21f2 /sql/handler.cc | |
parent | 08df09230f26ec86e61d3297314343ee65092359 (diff) | |
parent | c946439d6c8d402a0a1a2a6520760dab16648c21 (diff) | |
download | mariadb-git-18474d84196f937a9a0bca49d8a822d3e48bf298.tar.gz |
Merge with 3.23.42
Diffstat (limited to 'sql/handler.cc')
-rw-r--r-- | sql/handler.cc | 13 |
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); } |