mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.0/bug18676
into dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.1/bug18676
This commit is contained in:
commit
99895eb6c3
4 changed files with 8 additions and 7 deletions
|
@ -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 (
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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};
|
||||
|
|
|
@ -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"));
|
||||
|
|
Loading…
Reference in a new issue