From 341504b3c9770c450b8101784344b403bd0257cc Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Sep 2001 17:36:42 +0300 Subject: [PATCH] handler.cc If CREATE TABLE fails for an InnoDB table, do not put the OS error number to the error message, because it is not the cause sql/handler.cc: If CREATE TABLE fails for an InnoDB table, do not put the OS error number to the error message, because it is not the cause --- sql/handler.cc | 11 +++++++++-- 1 file 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); }