mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
This commit is contained in:
@ -316,7 +316,7 @@ inline double ulonglong2double(ulonglong value)
|
||||
#define FN_ROOTDIR "\\"
|
||||
#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
|
||||
#define FN_NO_CASE_SENCE /* Files are not case-sensitive */
|
||||
#define MY_NFILE 1024
|
||||
#define MY_NFILE 2048
|
||||
|
||||
#define DO_NOT_REMOVE_THREAD_WRAPPERS
|
||||
#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
|
||||
|
@ -316,7 +316,7 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
char **arg_unix_socket)
|
||||
{
|
||||
HANDLE hPipe=INVALID_HANDLE_VALUE;
|
||||
char szPipeName [ 1024 ];
|
||||
char pipe_name[1024];
|
||||
DWORD dwMode;
|
||||
int i;
|
||||
my_bool testing_named_pipes=0;
|
||||
@ -327,13 +327,15 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
if (!host || !strcmp(host,LOCAL_HOST))
|
||||
host=LOCAL_HOST_NAMEDPIPE;
|
||||
|
||||
strxnmov(szPipeName, sizeof(szPipeName), "\\\\", host, "\\pipe\\",
|
||||
|
||||
pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */
|
||||
strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\", host, "\\pipe\\",
|
||||
unix_socket, NullS);
|
||||
DBUG_PRINT("info",("Server name: '%s'. Named Pipe: %s", host, unix_socket));
|
||||
|
||||
for (i=0 ; i < 100 ; i++) /* Don't retry forever */
|
||||
{
|
||||
if ((hPipe = CreateFile(szPipeName,
|
||||
if ((hPipe = CreateFile(pipe_name,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
@ -349,7 +351,7 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
/* wait for for an other instance */
|
||||
if (! WaitNamedPipe(szPipeName, connect_timeout*1000) )
|
||||
if (! WaitNamedPipe(pipe_name, connect_timeout*1000) )
|
||||
{
|
||||
net->last_errno=CR_NAMEDPIPEWAIT_ERROR;
|
||||
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
|
||||
|
@ -123,11 +123,12 @@ File create_temp_file(char *to, const char *dir, const char *prefix,
|
||||
}
|
||||
#ifdef OS2
|
||||
/* changing environ variable doesn't work with VACPP */
|
||||
char buffer[256];
|
||||
strxnmov(buffer, sizeof(buffer), "TMP=", dir);
|
||||
char buffer[256], *end;
|
||||
buffer[sizeof[buffer)-1]= 0;
|
||||
end= strxnmov(buffer, sizeof(buffer)-1, (char*) "TMP=", dir, NullS);
|
||||
/* remove ending backslash */
|
||||
if (buffer[strlen(buffer)-1] == '\\')
|
||||
buffer[strlen(buffer)-1] = '\0';
|
||||
if (end[-1] == '\\')
|
||||
end[-1]= 0;
|
||||
putenv(buffer);
|
||||
#elif !defined(__NETWARE__)
|
||||
old_env= (char**) environ;
|
||||
|
@ -105,12 +105,13 @@ my_string my_tempnam(const char *dir, const char *pfx,
|
||||
}
|
||||
#ifdef OS2
|
||||
/* changing environ variable doesn't work with VACPP */
|
||||
char buffer[256];
|
||||
strxnmov(buffer, sizeof(buffer), "TMP=", dir);
|
||||
char buffer[256], *end;
|
||||
buffer[sizeof[buffer)-1]= 0;
|
||||
end= strxnmov(buffer, sizeof(buffer)-1, (char*) "TMP=", dir, NullS);
|
||||
/* remove ending backslash */
|
||||
if (buffer[strlen(buffer)-1] == '\\')
|
||||
buffer[strlen(buffer)-1] = '\0';
|
||||
putenv( buffer);
|
||||
if (end[-1] == '\\')
|
||||
end[-1]= 0;
|
||||
putenv(buffer);
|
||||
#elif !defined(__NETWARE__)
|
||||
old_env=(char**)environ;
|
||||
if (dir)
|
||||
|
@ -231,10 +231,13 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg,
|
||||
}
|
||||
case LOG_NEW:
|
||||
{
|
||||
uint len;
|
||||
time_t skr=time(NULL);
|
||||
struct tm tm_tmp;
|
||||
|
||||
localtime_r(&skr,&tm_tmp);
|
||||
my_snprintf(buff,sizeof(buff),"# %s, Version: %s at %02d%02d%02d %2d:%02d:%02d\n",
|
||||
len= my_snprintf(buff,sizeof(buff),
|
||||
"# %s, Version: %s at %02d%02d%02d %2d:%02d:%02d\n",
|
||||
my_progname,server_version,
|
||||
tm_tmp.tm_year % 100,
|
||||
tm_tmp.tm_mon+1,
|
||||
@ -242,7 +245,7 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg,
|
||||
tm_tmp.tm_hour,
|
||||
tm_tmp.tm_min,
|
||||
tm_tmp.tm_sec);
|
||||
if (my_b_write(&log_file, (byte*) buff,(uint) strlen(buff)) ||
|
||||
if (my_b_write(&log_file, (byte*) buff, len) ||
|
||||
flush_io_cache(&log_file))
|
||||
goto err;
|
||||
break;
|
||||
|
@ -117,7 +117,7 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
char **arg_unix_socket)
|
||||
{
|
||||
HANDLE hPipe=INVALID_HANDLE_VALUE;
|
||||
char szPipeName [512];
|
||||
char pipe_name[512];
|
||||
DWORD dwMode;
|
||||
int i;
|
||||
my_bool testing_named_pipes=0;
|
||||
@ -126,14 +126,15 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
if (!host || !strcmp(host,LOCAL_HOST))
|
||||
host=LOCAL_HOST_NAMEDPIPE;
|
||||
|
||||
strxnmov(szPipeName, sizeof(szPipeName), "\\\\", host, "\\pipe\\",
|
||||
pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */
|
||||
strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\", host, "\\pipe\\",
|
||||
unix_socket, NullS);
|
||||
DBUG_PRINT("info",("Server name: '%s'. Named Pipe: %s",
|
||||
host, unix_socket));
|
||||
|
||||
for (i=0 ; i < 100 ; i++) /* Don't retry forever */
|
||||
{
|
||||
if ((hPipe = CreateFile(szPipeName,
|
||||
if ((hPipe = CreateFile(pipe_name,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
@ -149,7 +150,7 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host,
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
/* wait for for an other instance */
|
||||
if (! WaitNamedPipe(szPipeName, connect_timeout*1000) )
|
||||
if (! WaitNamedPipe(pipe_name, connect_timeout*1000) )
|
||||
{
|
||||
net->last_errno=CR_NAMEDPIPEWAIT_ERROR;
|
||||
sprintf(net->last_error,ER(net->last_errno),host, unix_socket,
|
||||
|
@ -189,7 +189,7 @@ static const char* default_dbug_option=IF_WIN("d:t:i:O,\\mysqld.trace",
|
||||
#endif
|
||||
|
||||
#ifdef __NT__
|
||||
static char szPipeName [512];
|
||||
static char pipe_name[512];
|
||||
static SECURITY_ATTRIBUTES saPipeSecurity;
|
||||
static SECURITY_DESCRIPTOR sdPipeDescriptor;
|
||||
static HANDLE hPipe = INVALID_HANDLE_VALUE;
|
||||
@ -580,7 +580,7 @@ static void close_connections(void)
|
||||
DBUG_PRINT( "quit", ("Closing named pipes") );
|
||||
|
||||
/* Create connection to the handle named pipe handler to break the loop */
|
||||
if ((temp = CreateFile(szPipeName,
|
||||
if ((temp = CreateFile(pipe_name,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
@ -588,7 +588,7 @@ static void close_connections(void)
|
||||
0,
|
||||
NULL )) != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
WaitNamedPipe(szPipeName, 1000);
|
||||
WaitNamedPipe(pipe_name, 1000);
|
||||
DWORD dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
|
||||
SetNamedPipeHandleState(temp, &dwMode, NULL, NULL);
|
||||
CancelIo(temp);
|
||||
@ -1173,11 +1173,13 @@ static void server_init(void)
|
||||
if (Service.IsNT() && mysql_unix_port[0] && !opt_bootstrap &&
|
||||
opt_enable_named_pipe)
|
||||
{
|
||||
strxnmov(szPipeName, sizeof(szPipeName), "\\\\.\\pipe\\",
|
||||
|
||||
pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */
|
||||
strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\.\\pipe\\",
|
||||
unix_socket, NullS);
|
||||
ZeroMemory( &saPipeSecurity, sizeof(saPipeSecurity) );
|
||||
ZeroMemory( &sdPipeDescriptor, sizeof(sdPipeDescriptor) );
|
||||
if ( !InitializeSecurityDescriptor(&sdPipeDescriptor,
|
||||
bzero((char*) &saPipeSecurity, sizeof(saPipeSecurity) );
|
||||
bzero((char*) &sdPipeDescriptor, sizeof(sdPipeDescriptor) );
|
||||
if (!InitializeSecurityDescriptor(&sdPipeDescriptor,
|
||||
SECURITY_DESCRIPTOR_REVISION) )
|
||||
{
|
||||
sql_perror("Can't start server : Initialize security descriptor");
|
||||
@ -1191,7 +1193,7 @@ static void server_init(void)
|
||||
saPipeSecurity.nLength = sizeof( SECURITY_ATTRIBUTES );
|
||||
saPipeSecurity.lpSecurityDescriptor = &sdPipeDescriptor;
|
||||
saPipeSecurity.bInheritHandle = FALSE;
|
||||
if ((hPipe = CreateNamedPipe(szPipeName,
|
||||
if ((hPipe= CreateNamedPipe(pipe_name,
|
||||
PIPE_ACCESS_DUPLEX,
|
||||
PIPE_TYPE_BYTE |
|
||||
PIPE_READMODE_BYTE |
|
||||
@ -1200,7 +1202,7 @@ static void server_init(void)
|
||||
(int) global_system_variables.net_buffer_length,
|
||||
(int) global_system_variables.net_buffer_length,
|
||||
NMPWAIT_USE_DEFAULT_WAIT,
|
||||
&saPipeSecurity )) == INVALID_HANDLE_VALUE)
|
||||
&saPipeSecurity)) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
LPVOID lpMsgBuf;
|
||||
int error=GetLastError();
|
||||
@ -3075,7 +3077,7 @@ extern "C" pthread_handler_decl(handle_connections_namedpipes,arg)
|
||||
if (!fConnected)
|
||||
{
|
||||
CloseHandle( hPipe );
|
||||
if ((hPipe = CreateNamedPipe(szPipeName,
|
||||
if ((hPipe = CreateNamedPipe(pipe_name,
|
||||
PIPE_ACCESS_DUPLEX,
|
||||
PIPE_TYPE_BYTE |
|
||||
PIPE_READMODE_BYTE |
|
||||
@ -3093,7 +3095,7 @@ extern "C" pthread_handler_decl(handle_connections_namedpipes,arg)
|
||||
}
|
||||
hConnectedPipe = hPipe;
|
||||
/* create new pipe for new connection */
|
||||
if ((hPipe = CreateNamedPipe(szPipeName,
|
||||
if ((hPipe = CreateNamedPipe(pipe_name,
|
||||
PIPE_ACCESS_DUPLEX,
|
||||
PIPE_TYPE_BYTE |
|
||||
PIPE_READMODE_BYTE |
|
||||
|
@ -91,7 +91,11 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
|
||||
bool is_fifo=0;
|
||||
LOAD_FILE_INFO lf_info;
|
||||
char *db = table_list->db; // This is never null
|
||||
/* If no current database, use database where table is located */
|
||||
/*
|
||||
If path for file is not defined, we will use the current database.
|
||||
If this is not set, we will use the directory where the table to be
|
||||
loaded is located
|
||||
*/
|
||||
char *tdb= thd->db ? thd->db : db; // Result is never null
|
||||
bool transactional_table, log_delayed;
|
||||
ulong skip_lines= ex->skip_lines;
|
||||
|
@ -150,7 +150,9 @@ int rea_create_table(my_string file_name,
|
||||
|
||||
my_free((gptr) screen_buff,MYF(0));
|
||||
my_afree((gptr) keybuff);
|
||||
if (opt_sync_frm && my_sync(file, MYF(MY_WME)))
|
||||
|
||||
if (opt_sync_frm && !(create_info->options & HA_LEX_CREATE_TMP_TABLE) &&
|
||||
my_sync(file, MYF(MY_WME)))
|
||||
goto err2;
|
||||
if (my_close(file,MYF(MY_WME)) ||
|
||||
ha_create_table(file_name,create_info,0))
|
||||
|
Reference in New Issue
Block a user