Commit c2a59e83 authored by heikki@hundin.mysql.fi's avatar heikki@hundin.mysql.fi

Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1

into hundin.mysql.fi:/home/heikki/mysql-4.1
parents 6471b65a 994fc273
...@@ -679,7 +679,9 @@ buf_read_recv_pages( ...@@ -679,7 +679,9 @@ buf_read_recv_pages(
fprintf(stderr, fprintf(stderr,
"InnoDB: Error: InnoDB has waited for 50 seconds for pending\n" "InnoDB: Error: InnoDB has waited for 50 seconds for pending\n"
"InnoDB: reads to the buffer pool to be finished.\n" "InnoDB: reads to the buffer pool to be finished.\n"
"InnoDB: Number of pending reads %lu\n", (ulong) buf_pool->n_pend_reads); "InnoDB: Number of pending reads %lu, pending pread calls %lu\n",
(ulong) buf_pool->n_pend_reads,
(ulong)os_file_n_pending_preads);
os_aio_print_debug = TRUE; os_aio_print_debug = TRUE;
} }
......
...@@ -3002,8 +3002,8 @@ fil_load_single_table_tablespaces(void) ...@@ -3002,8 +3002,8 @@ fil_load_single_table_tablespaces(void)
/* printf( /* printf(
" Looking at file %s\n", fileinfo.name); */ " Looking at file %s\n", fileinfo.name); */
if (fileinfo.type == OS_FILE_TYPE_DIR if (fileinfo.type == OS_FILE_TYPE_DIR) {
|| dbinfo.type == OS_FILE_TYPE_UNKNOWN) {
goto next_file_item; goto next_file_item;
} }
......
...@@ -700,12 +700,12 @@ http://www.mysql.com/doc/en/Windows_symbolic_links.html */ ...@@ -700,12 +700,12 @@ http://www.mysql.com/doc/en/Windows_symbolic_links.html */
} else if (lpFindFileData->dwFileAttributes } else if (lpFindFileData->dwFileAttributes
& FILE_ATTRIBUTE_DIRECTORY) { & FILE_ATTRIBUTE_DIRECTORY) {
info->type = OS_FILE_TYPE_DIR; info->type = OS_FILE_TYPE_DIR;
} else if (lpFindFileData->dwFileAttributes
& FILE_ATTRIBUTE_NORMAL) {
/* TODO: are FILE_ATTRIBUTE_NORMAL files really all normal files? */
info->type = OS_FILE_TYPE_FILE;
} else { } else {
info->type = OS_FILE_TYPE_UNKNOWN; /* It is probably safest to assume that all other
file types are normal. Better to check them rather
than blindly skip them. */
info->type = OS_FILE_TYPE_FILE;
} }
} }
...@@ -823,7 +823,7 @@ os_file_create_directory( ...@@ -823,7 +823,7 @@ os_file_create_directory(
rcode = CreateDirectory(pathname, NULL); rcode = CreateDirectory(pathname, NULL);
if (!(rcode != 0 || if (!(rcode != 0 ||
(GetLastError() == ERROR_FILE_EXISTS && !fail_if_exists))) { (GetLastError() == ERROR_ALREADY_EXISTS && !fail_if_exists))) {
/* failure */ /* failure */
os_file_handle_error(pathname, "CreateDirectory"); os_file_handle_error(pathname, "CreateDirectory");
...@@ -907,8 +907,9 @@ try_again: ...@@ -907,8 +907,9 @@ try_again:
file = CreateFile(name, file = CreateFile(name,
access, access,
FILE_SHARE_READ,/* file can be read also by other FILE_SHARE_READ | FILE_SHARE_WRITE,
processes */ /* file can be read ansd written also
by other processes */
NULL, /* default security attributes */ NULL, /* default security attributes */
create_flag, create_flag,
attributes, attributes,
...@@ -1013,7 +1014,7 @@ os_file_create_simple_no_error_handling( ...@@ -1013,7 +1014,7 @@ os_file_create_simple_no_error_handling(
DWORD create_flag; DWORD create_flag;
DWORD access; DWORD access;
DWORD attributes = 0; DWORD attributes = 0;
DWORD share_mode = FILE_SHARE_READ; DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
ut_a(name); ut_a(name);
...@@ -1336,7 +1337,7 @@ loop: ...@@ -1336,7 +1337,7 @@ loop:
return(TRUE); return(TRUE);
} }
if (GetLastError() == ERROR_PATH_NOT_FOUND) { if (GetLastError() == ERROR_FILE_NOT_FOUND) {
/* the file does not exist, this not an error */ /* the file does not exist, this not an error */
return(TRUE); return(TRUE);
...@@ -1397,7 +1398,7 @@ loop: ...@@ -1397,7 +1398,7 @@ loop:
return(TRUE); return(TRUE);
} }
if (GetLastError() == ERROR_PATH_NOT_FOUND) { if (GetLastError() == ERROR_FILE_NOT_FOUND) {
/* If the file does not exist, we classify this as a 'mild' /* If the file does not exist, we classify this as a 'mild'
error and return */ error and return */
......
...@@ -44,13 +44,13 @@ ut_get_high32( ...@@ -44,13 +44,13 @@ ut_get_high32(
/* out: a >> 32 */ /* out: a >> 32 */
ulint a) /* in: ulint */ ulint a) /* in: ulint */
{ {
#if SIZEOF_LONG == 4 ib_longlong i;
UT_NOT_USED(a);
return 0; i = (ib_longlong)a;
#else
return(a >> 32); i = i >> 32;
#endif
return((ulint)i);
} }
/************************************************************ /************************************************************
......
...@@ -4098,7 +4098,11 @@ enum options_mysqld ...@@ -4098,7 +4098,11 @@ enum options_mysqld
OPT_RANGE_ALLOC_BLOCK_SIZE, OPT_RANGE_ALLOC_BLOCK_SIZE,
OPT_QUERY_ALLOC_BLOCK_SIZE, OPT_QUERY_PREALLOC_SIZE, OPT_QUERY_ALLOC_BLOCK_SIZE, OPT_QUERY_PREALLOC_SIZE,
OPT_TRANS_ALLOC_BLOCK_SIZE, OPT_TRANS_PREALLOC_SIZE, OPT_TRANS_ALLOC_BLOCK_SIZE, OPT_TRANS_PREALLOC_SIZE,
OPT_SYNC_FRM, OPT_SYNC_BINLOG, OPT_BDB_NOSYNC, OPT_SYNC_FRM, OPT_SYNC_BINLOG,
OPT_SYNC_REPLICATION,
OPT_SYNC_REPLICATION_SLAVE_ID,
OPT_SYNC_REPLICATION_TIMEOUT,
OPT_BDB_NOSYNC,
OPT_ENABLE_SHARED_MEMORY, OPT_ENABLE_SHARED_MEMORY,
OPT_SHARED_MEMORY_BASE_NAME, OPT_SHARED_MEMORY_BASE_NAME,
OPT_OLD_PASSWORDS, OPT_OLD_PASSWORDS,
...@@ -5211,6 +5215,21 @@ The minimum value for this variable is 4096.", ...@@ -5211,6 +5215,21 @@ The minimum value for this variable is 4096.",
(gptr*) &sync_binlog_period, (gptr*) &sync_binlog_period,
(gptr*) &sync_binlog_period, 0, GET_ULONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1, (gptr*) &sync_binlog_period, 0, GET_ULONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1,
0}, 0},
{"sync-replication", OPT_SYNC_REPLICATION,
"Enable synchronous replication",
(gptr*) &global_system_variables.sync_replication,
(gptr*) &global_system_variables.sync_replication,
0, GET_ULONG, REQUIRED_ARG, 0, 0, 1, 0, 1, 0},
{"sync-replication-slave-id", OPT_SYNC_REPLICATION_SLAVE_ID,
"Synchronous replication is wished for this slave",
(gptr*) &global_system_variables.sync_replication_slave_id,
(gptr*) &global_system_variables.sync_replication_slave_id,
0, GET_ULONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1, 0},
{"sync-replication-timeout", OPT_SYNC_REPLICATION_TIMEOUT,
"Synchronous replication timeout",
(gptr*) &global_system_variables.sync_replication_timeout,
(gptr*) &global_system_variables.sync_replication_timeout,
0, GET_ULONG, REQUIRED_ARG, 10, 0, ~0L, 0, 1, 0},
{"sync-frm", OPT_SYNC_FRM, "Sync .frm to disk on create. Enabled by default", {"sync-frm", OPT_SYNC_FRM, "Sync .frm to disk on create. Enabled by default",
(gptr*) &opt_sync_frm, (gptr*) &opt_sync_frm, 0, GET_BOOL, NO_ARG, 1, 0, (gptr*) &opt_sync_frm, (gptr*) &opt_sync_frm, 0, GET_BOOL, NO_ARG, 1, 0,
0, 0, 0, 0}, 0, 0, 0, 0},
......
...@@ -333,6 +333,14 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine", ...@@ -333,6 +333,14 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine",
&SV::table_type); &SV::table_type);
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period); sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period);
sys_var_thd_ulong sys_sync_replication("sync_replication",
&SV::sync_replication);
sys_var_thd_ulong sys_sync_replication_slave_id(
"sync_replication_slave_id",
&SV::sync_replication_slave_id);
sys_var_thd_ulong sys_sync_replication_timeout(
"sync_replication_timeout",
&SV::sync_replication_timeout);
#endif #endif
sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm); sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm);
sys_var_long_ptr sys_table_cache_size("table_cache", sys_var_long_ptr sys_table_cache_size("table_cache",
...@@ -605,6 +613,9 @@ sys_var *sys_variables[]= ...@@ -605,6 +613,9 @@ sys_var *sys_variables[]=
&sys_storage_engine, &sys_storage_engine,
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
&sys_sync_binlog_period, &sys_sync_binlog_period,
&sys_sync_replication,
&sys_sync_replication_slave_id,
&sys_sync_replication_timeout,
#endif #endif
&sys_sync_frm, &sys_sync_frm,
&sys_table_cache_size, &sys_table_cache_size,
...@@ -850,6 +861,9 @@ struct show_var_st init_vars[]= { ...@@ -850,6 +861,9 @@ struct show_var_st init_vars[]= {
{sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS}, {sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS},
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
{sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS}, {sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS},
{sys_sync_replication.name, (char*) &sys_sync_replication, SHOW_SYS},
{sys_sync_replication_slave_id.name, (char*) &sys_sync_replication_slave_id,SHOW_SYS},
{sys_sync_replication_timeout.name, (char*) &sys_sync_replication_timeout,SHOW_SYS},
#endif #endif
{sys_sync_frm.name, (char*) &sys_sync_frm, SHOW_SYS}, {sys_sync_frm.name, (char*) &sys_sync_frm, SHOW_SYS},
#ifdef HAVE_TZNAME #ifdef HAVE_TZNAME
......
...@@ -397,6 +397,11 @@ struct system_variables ...@@ -397,6 +397,11 @@ struct system_variables
my_bool low_priority_updates; my_bool low_priority_updates;
my_bool new_mode; my_bool new_mode;
my_bool query_cache_wlock_invalidate; my_bool query_cache_wlock_invalidate;
#ifdef HAVE_REPLICATION
ulong sync_replication;
ulong sync_replication_slave_id;
ulong sync_replication_timeout;
#endif /* HAVE_REPLICATION */
#ifdef HAVE_INNOBASE_DB #ifdef HAVE_INNOBASE_DB
my_bool innodb_table_locks; my_bool innodb_table_locks;
#endif /* HAVE_INNOBASE_DB */ #endif /* HAVE_INNOBASE_DB */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment