mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge mysql.com:/users/lthalmann/bk/mysql-5.0-rpl
into mysql.com:/users/lthalmann/bk/mysql-5.1-new-rpl
This commit is contained in:
@ -531,6 +531,7 @@ typedef int (*Process_option_func)(void *ctx, const char *group_name,
|
|||||||
|
|
||||||
#include <my_alloc.h>
|
#include <my_alloc.h>
|
||||||
|
|
||||||
|
|
||||||
/* Prototypes for mysys and my_func functions */
|
/* Prototypes for mysys and my_func functions */
|
||||||
|
|
||||||
extern int my_copy(const char *from,const char *to,myf MyFlags);
|
extern int my_copy(const char *from,const char *to,myf MyFlags);
|
||||||
@ -604,6 +605,13 @@ extern File my_sopen(const char *path, int oflag, int shflag, int pmode);
|
|||||||
extern int check_if_legal_filename(const char *path);
|
extern int check_if_legal_filename(const char *path);
|
||||||
extern int check_if_legal_tablename(const char *path);
|
extern int check_if_legal_tablename(const char *path);
|
||||||
|
|
||||||
|
#if defined(__WIN__) && defined(__NT__)
|
||||||
|
extern int nt_share_delete(const char *name,myf MyFlags);
|
||||||
|
#define my_delete_allow_opened(fname,flags) nt_share_delete((fname),(flags))
|
||||||
|
#else
|
||||||
|
#define my_delete_allow_opened(fname,flags) my_delete((fname),(flags))
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef TERMINATE
|
#ifndef TERMINATE
|
||||||
extern void TERMINATE(FILE *file);
|
extern void TERMINATE(FILE *file);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1049,7 +1049,9 @@ sub executable_setup () {
|
|||||||
# New CMake locations.
|
# New CMake locations.
|
||||||
"$glob_basedir/client/release",
|
"$glob_basedir/client/release",
|
||||||
"$glob_basedir/client/debug");
|
"$glob_basedir/client/debug");
|
||||||
$exe_mysqld= mtr_exe_exists ("$path_client_bindir/mysqld-nt",
|
$exe_mysqld= mtr_exe_exists ("$path_client_bindir/mysqld-max-nt",
|
||||||
|
"$path_client_bindir/mysqld-max",
|
||||||
|
"$path_client_bindir/mysqld-nt",
|
||||||
"$path_client_bindir/mysqld",
|
"$path_client_bindir/mysqld",
|
||||||
"$path_client_bindir/mysqld-debug",
|
"$path_client_bindir/mysqld-debug",
|
||||||
"$path_client_bindir/mysqld-max",
|
"$path_client_bindir/mysqld-max",
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
# TODO: THIS TEST DOES NOT WORK ON WINDOWS
|
||||||
|
# This should be fixed.
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
source include/have_openssl.inc;
|
source include/have_openssl.inc;
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
|
|
||||||
|
@ -32,3 +32,54 @@ int my_delete(const char *name, myf MyFlags)
|
|||||||
}
|
}
|
||||||
DBUG_RETURN(err);
|
DBUG_RETURN(err);
|
||||||
} /* my_delete */
|
} /* my_delete */
|
||||||
|
|
||||||
|
#if defined(__WIN__) && defined(__NT__)
|
||||||
|
/*
|
||||||
|
Delete file which is possibly not closed.
|
||||||
|
|
||||||
|
This function is intended to be used exclusively as a temporal solution
|
||||||
|
for Win NT in case when it is needed to delete a not closed file (note
|
||||||
|
that the file must be opened everywhere with FILE_SHARE_DELETE mode).
|
||||||
|
Deleting not-closed files can not be supported on Win 98|ME (and because
|
||||||
|
of that is considered harmful).
|
||||||
|
|
||||||
|
The function deletes the file with its preliminary renaming. This is
|
||||||
|
because when not-closed share-delete file is deleted it still lives on
|
||||||
|
a disk until it will not be closed everwhere. This may conflict with an
|
||||||
|
attempt to create a new file with the same name. The deleted file is
|
||||||
|
renamed to <name>.<num>.deleted where <name> - the initial name of the
|
||||||
|
file, <num> - a hexadecimal number chosen to make the temporal name to
|
||||||
|
be unique.
|
||||||
|
*/
|
||||||
|
int nt_share_delete(const char *name, myf MyFlags)
|
||||||
|
{
|
||||||
|
char buf[MAX_PATH + 20];
|
||||||
|
ulong cnt;
|
||||||
|
DBUG_ENTER("nt_share_delete");
|
||||||
|
DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags));
|
||||||
|
|
||||||
|
for (cnt= GetTickCount(); cnt; cnt--)
|
||||||
|
{
|
||||||
|
sprintf(buf, "%s.%08X.deleted", name, cnt);
|
||||||
|
if (MoveFile(name, buf))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if ((errno= GetLastError()) == ERROR_ALREADY_EXISTS)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DBUG_PRINT("warning", ("Failed to rename %s to %s, errno: %d",
|
||||||
|
name, buf, errno));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DeleteFile(buf))
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
|
my_errno= GetLastError();
|
||||||
|
if (MyFlags & (MY_FAE+MY_WME))
|
||||||
|
my_error(EE_DELETE, MYF(ME_BELL + ME_WAITTANG + (MyFlags & ME_NOINPUT)),
|
||||||
|
name, my_errno);
|
||||||
|
|
||||||
|
DBUG_RETURN(-1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -2492,14 +2492,14 @@ bool MYSQL_BIN_LOG::reset_logs(THD* thd)
|
|||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
my_delete(linfo.log_file_name, MYF(MY_WME));
|
my_delete_allow_opened(linfo.log_file_name, MYF(MY_WME));
|
||||||
if (find_next_log(&linfo, 0))
|
if (find_next_log(&linfo, 0))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Start logging with a new file */
|
/* Start logging with a new file */
|
||||||
close(LOG_CLOSE_INDEX);
|
close(LOG_CLOSE_INDEX);
|
||||||
my_delete(index_file_name, MYF(MY_WME)); // Reset (open will update)
|
my_delete_allow_opened(index_file_name, MYF(MY_WME)); // Reset (open will update)
|
||||||
if (!thd->slave_thread)
|
if (!thd->slave_thread)
|
||||||
need_start_event=1;
|
need_start_event=1;
|
||||||
if (!open_index_file(index_file_name, 0))
|
if (!open_index_file(index_file_name, 0))
|
||||||
|
Reference in New Issue
Block a user