diff options
-rw-r--r-- | mysql-test/r/ndb_autodiscover.result | 2 | ||||
-rw-r--r-- | sql/ha_ndbcluster.cc | 2 | ||||
-rw-r--r-- | sql/handler.cc | 8 | ||||
-rw-r--r-- | sql/sql_table.cc | 3 |
4 files changed, 8 insertions, 7 deletions
diff --git a/mysql-test/r/ndb_autodiscover.result b/mysql-test/r/ndb_autodiscover.result index cb85c4ac873..487f52f6427 100644 --- a/mysql-test/r/ndb_autodiscover.result +++ b/mysql-test/r/ndb_autodiscover.result @@ -382,7 +382,7 @@ create table t1 (a int primary key) engine=ndb; select * from t1; a select * from t1; -ERROR HY000: Can't lock file (errno: 4009) +ERROR HY000: Can't lock file (errno: 157) use test; drop database test_only_ndb_tables; CREATE TABLE t9 ( diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 4db35cd7377..5ea29265388 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -221,7 +221,6 @@ static int ndb_to_mysql_error(const NdbError *ndberr) { /* read the mysql mapped error code */ int error= ndberr->mysql_code; - switch (error) { /* errors for which we do not add warnings, just return mapped error code @@ -240,7 +239,6 @@ static int ndb_to_mysql_error(const NdbError *ndberr) default: break; } - /* Push the NDB error message as warning - Used to be able to use SHOW WARNINGS toget more info on what the error is diff --git a/sql/handler.cc b/sql/handler.cc index 23c3103493e..751b324165d 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2865,9 +2865,9 @@ ha_find_files(THD *thd,const char *db,const char *path, Ask handler if the table exists in engine RETURN - 0 Table does not exist - 1 Table exists - # Error code + HA_ERR_NO_SUCH_TABLE Table does not exist + HA_ERR_TABLE_EXIST Table exists + # Error code */ struct st_table_exists_in_engine_args @@ -2891,7 +2891,7 @@ static my_bool table_exists_in_engine_handlerton(THD *thd, st_plugin_int *plugin int ha_table_exists_in_engine(THD* thd, const char* db, const char* name) { - int error= 0; + int error= HA_ERR_NO_SUCH_TABLE; DBUG_ENTER("ha_table_exists_in_engine"); DBUG_PRINT("enter", ("db: %s, name: %s", db, name)); st_table_exists_in_engine_args args= {db, name}; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index ab833ebe6b9..006ff3d7093 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3439,6 +3439,7 @@ bool mysql_create_table_internal(THD *thd, error= 0; goto err; } + DBUG_PRINT("info",("1")); my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alias); goto err; } @@ -3450,6 +3451,7 @@ bool mysql_create_table_internal(THD *thd, { if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS) goto warn; + DBUG_PRINT("info",("2")); my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name); goto unlock_and_end; } @@ -3481,6 +3483,7 @@ bool mysql_create_table_internal(THD *thd, { bool create_if_not_exists = create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS; + if (ha_table_exists_in_engine(thd, db, table_name)) { DBUG_PRINT("info", ("Table with same name already existed in handler")); |