merge mysql-5.0-bugteam to mysql-5.1-bugteam
This commit is contained in:
commit
33f9066e39
@ -67,6 +67,7 @@ extern int NEAR my_errno; /* Last error in mysys */
|
|||||||
#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */
|
#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */
|
||||||
#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */
|
#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */
|
||||||
#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */
|
#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */
|
||||||
|
#define MY_SYNC 4096 /* my_copy(): sync dst file */
|
||||||
|
|
||||||
#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
|
#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
|
||||||
#define MY_GIVE_INFO 2 /* Give time info about process*/
|
#define MY_GIVE_INFO 2 /* Give time info about process*/
|
||||||
|
@ -88,6 +88,13 @@ int my_copy(const char *from, const char *to, myf MyFlags)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* sync the destination file */
|
||||||
|
if (MyFlags & MY_SYNC)
|
||||||
|
{
|
||||||
|
if (my_sync(to_file, MyFlags))
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
if (my_close(from_file,MyFlags) | my_close(to_file,MyFlags))
|
if (my_close(from_file,MyFlags) | my_close(to_file,MyFlags))
|
||||||
DBUG_RETURN(-1); /* Error on close */
|
DBUG_RETURN(-1); /* Error on close */
|
||||||
|
|
||||||
|
@ -5217,6 +5217,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
|
|||||||
char tmp_path[FN_REFLEN];
|
char tmp_path[FN_REFLEN];
|
||||||
#endif
|
#endif
|
||||||
char ts_name[FN_LEN + 1];
|
char ts_name[FN_LEN + 1];
|
||||||
|
myf flags= MY_DONT_OVERWRITE_FILE;
|
||||||
DBUG_ENTER("mysql_create_like_table");
|
DBUG_ENTER("mysql_create_like_table");
|
||||||
|
|
||||||
|
|
||||||
@ -5273,8 +5274,12 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
|
|||||||
|
|
||||||
DBUG_EXECUTE_IF("sleep_create_like_before_copy", my_sleep(6000000););
|
DBUG_EXECUTE_IF("sleep_create_like_before_copy", my_sleep(6000000););
|
||||||
|
|
||||||
|
if (opt_sync_frm && !(create_info->options & HA_LEX_CREATE_TMP_TABLE))
|
||||||
|
flags|= MY_SYNC;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create a new table by copying from source table
|
Create a new table by copying from source table
|
||||||
|
and sync the new table if the flag MY_SYNC is set
|
||||||
|
|
||||||
Altough exclusive name-lock on target table protects us from concurrent
|
Altough exclusive name-lock on target table protects us from concurrent
|
||||||
DML and DDL operations on it we still want to wrap .FRM creation and call
|
DML and DDL operations on it we still want to wrap .FRM creation and call
|
||||||
@ -5295,7 +5300,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (my_copy(src_path, dst_path, MYF(MY_DONT_OVERWRITE_FILE)))
|
else if (my_copy(src_path, dst_path, flags))
|
||||||
{
|
{
|
||||||
if (my_errno == ENOENT)
|
if (my_errno == ENOENT)
|
||||||
my_error(ER_BAD_DB_ERROR,MYF(0),db);
|
my_error(ER_BAD_DB_ERROR,MYF(0),db);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user