mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/home/alexi/innodb/mysql-5.1-ss492
This commit is contained in:
commit
fb0f88aac8
15 changed files with 59 additions and 149 deletions
1
mysql-test/r/innodb_mysql.result
Normal file
1
mysql-test/r/innodb_mysql.result
Normal file
|
@ -0,0 +1 @@
|
|||
drop table if exists t1;
|
|
@ -1,3 +1,16 @@
|
|||
#######################################################################
|
||||
# #
|
||||
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
||||
# These files are to be modified ONLY BY INNOBASE guys. #
|
||||
# #
|
||||
# Use innodb_mysql.[test|result] files instead. #
|
||||
# #
|
||||
# If nevertheless you need to make some changes here, please, forward #
|
||||
# your commit message To: dev@innodb.com Cc: dev-innodb@mysql.com #
|
||||
# (otherwise your changes may be erased). #
|
||||
# #
|
||||
#######################################################################
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
#
|
||||
|
|
5
mysql-test/t/innodb_mysql.test
Normal file
5
mysql-test/t/innodb_mysql.test
Normal file
|
@ -0,0 +1,5 @@
|
|||
-- source include/have_innodb.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
|
@ -243,11 +243,10 @@ dict_remove_db_name(
|
|||
const char* name) /* in: table name in the form
|
||||
dbname '/' tablename */
|
||||
{
|
||||
const char* s;
|
||||
s = strchr(name, '/');
|
||||
const char* s = strchr(name, '/');
|
||||
ut_a(s);
|
||||
if (s) s++;
|
||||
return(s);
|
||||
|
||||
return(s + 1);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
|
|
|
@ -617,7 +617,7 @@ dict_load_indexes(
|
|||
break;
|
||||
}
|
||||
|
||||
if (rec_get_deleted_flag(rec, dict_table_is_comp(table))) {
|
||||
if (rec_get_deleted_flag(rec, 0)) {
|
||||
dict_load_report_deleted_index(table->name,
|
||||
ULINT_UNDEFINED);
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ os_thread_create(
|
|||
void* arg, /* in: argument to start
|
||||
function */
|
||||
os_thread_id_t* thread_id); /* out: id of the created
|
||||
thread */
|
||||
thread, or NULL */
|
||||
int
|
||||
os_thread_join(
|
||||
/*===========*/
|
||||
|
|
|
@ -157,33 +157,12 @@ extern ulint srv_pool_size;
|
|||
extern ulint srv_mem_pool_size;
|
||||
extern ulint srv_lock_table_size;
|
||||
|
||||
extern ulint srv_sim_disk_wait_pct;
|
||||
extern ulint srv_sim_disk_wait_len;
|
||||
extern ibool srv_sim_disk_wait_by_yield;
|
||||
extern ibool srv_sim_disk_wait_by_wait;
|
||||
|
||||
extern ibool srv_measure_contention;
|
||||
extern ibool srv_measure_by_spin;
|
||||
|
||||
extern ibool srv_print_thread_releases;
|
||||
extern ibool srv_print_lock_waits;
|
||||
extern ibool srv_print_buf_io;
|
||||
extern ibool srv_print_log_io;
|
||||
extern ibool srv_print_parsed_sql;
|
||||
extern ibool srv_print_latch_waits;
|
||||
|
||||
extern ibool srv_test_nocache;
|
||||
extern ibool srv_test_cache_evict;
|
||||
|
||||
extern ibool srv_test_extra_mutexes;
|
||||
extern ibool srv_test_sync;
|
||||
extern ulint srv_test_n_threads;
|
||||
extern ulint srv_test_n_loops;
|
||||
extern ulint srv_test_n_free_rnds;
|
||||
extern ulint srv_test_n_reserved_rnds;
|
||||
extern ulint srv_test_n_mutexes;
|
||||
extern ulint srv_test_array_size;
|
||||
|
||||
extern ulint srv_activity_count;
|
||||
extern ulint srv_fatal_semaphore_wait_threshold;
|
||||
extern ulint srv_dml_needed_delay;
|
||||
|
@ -365,11 +344,7 @@ srv_release_threads(
|
|||
/*************************************************************************
|
||||
The master thread controlling the server. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_master_thread(
|
||||
/*==============*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -451,11 +426,7 @@ srv_release_mysql_thread_if_suspended(
|
|||
A thread which wakes up threads whose lock wait may have lasted too long.
|
||||
This also prints the info output by various InnoDB monitors. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_lock_timeout_and_monitor_thread(
|
||||
/*================================*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -465,11 +436,7 @@ srv_lock_timeout_and_monitor_thread(
|
|||
A thread which prints warnings about semaphore waits which have lasted
|
||||
too long. These can be used to track bugs which cause hangs. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_error_monitor_thread(
|
||||
/*=====================*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -567,9 +534,6 @@ struct export_var_struct{
|
|||
|
||||
/* The server system struct */
|
||||
struct srv_sys_struct{
|
||||
os_event_t operational; /* created threads must wait for the
|
||||
server to become operational by
|
||||
waiting for this event */
|
||||
srv_table_t* threads; /* server thread table */
|
||||
UT_LIST_BASE_NODE_T(que_thr_t)
|
||||
tasks; /* task queue */
|
||||
|
|
|
@ -107,11 +107,7 @@ transaction already was committed, then we clean up a possible insert
|
|||
undo log. If the transaction was not yet committed, then we roll it back.
|
||||
Note: this is done in a background thread. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
trx_rollback_or_clean_all_without_sess(
|
||||
/*===================================*/
|
||||
/* out: a dummy parameter */
|
||||
|
|
|
@ -273,6 +273,18 @@ it is read or written. */
|
|||
/* Compile-time constant of the given array's size. */
|
||||
#define UT_ARR_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
/* The return type from a thread's start function differs between Unix and
|
||||
Windows, so define a typedef for it and a macro to use at the end of such
|
||||
functions. */
|
||||
|
||||
#ifdef __WIN__
|
||||
typedef ulint os_thread_ret_t;
|
||||
#define OS_THREAD_DUMMY_RETURN return(0)
|
||||
#else
|
||||
typedef void* os_thread_ret_t;
|
||||
#define OS_THREAD_DUMMY_RETURN return(NULL)
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "ut0dbg.h"
|
||||
#include "ut0ut.h"
|
||||
|
|
|
@ -2940,7 +2940,6 @@ recv_recovery_from_checkpoint_finish(void)
|
|||
/*======================================*/
|
||||
{
|
||||
int i;
|
||||
os_thread_id_t recovery_thread_id;
|
||||
|
||||
/* Apply the hashed log records to the respective file pages */
|
||||
|
||||
|
@ -2984,7 +2983,7 @@ recv_recovery_from_checkpoint_finish(void)
|
|||
session */
|
||||
|
||||
os_thread_create(trx_rollback_or_clean_all_without_sess,
|
||||
(void *)&i, &recovery_thread_id);
|
||||
(void *)&i, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ os_thread_create(
|
|||
void* arg, /* in: argument to start
|
||||
function */
|
||||
os_thread_id_t* thread_id) /* out: id of the created
|
||||
thread */
|
||||
thread, or NULL */
|
||||
{
|
||||
#ifdef __WIN__
|
||||
os_thread_t thread;
|
||||
|
@ -122,7 +122,9 @@ os_thread_create(
|
|||
ut_a(SetThreadPriority(thread, srv_query_thread_priority));
|
||||
}
|
||||
|
||||
*thread_id = win_thread_id;
|
||||
if (thread_id) {
|
||||
*thread_id = win_thread_id;
|
||||
}
|
||||
|
||||
return(thread);
|
||||
#else
|
||||
|
@ -180,7 +182,9 @@ os_thread_create(
|
|||
my_pthread_setprio(pthread, srv_query_thread_priority);
|
||||
}
|
||||
|
||||
*thread_id = pthread;
|
||||
if (thread_id) {
|
||||
*thread_id = pthread;
|
||||
}
|
||||
|
||||
return(pthread);
|
||||
#endif
|
||||
|
|
|
@ -1340,14 +1340,6 @@ loop:
|
|||
next_thr = que_thr_step(thr);
|
||||
/*-------------------------*/
|
||||
|
||||
/* Test the effect on performance of adding extra mutex
|
||||
reservations */
|
||||
|
||||
/* if (srv_test_extra_mutexes) {
|
||||
mutex_enter(&kernel_mutex);
|
||||
mutex_exit(&kernel_mutex);
|
||||
}
|
||||
*/
|
||||
loop_count++;
|
||||
|
||||
if (next_thr != thr) {
|
||||
|
|
|
@ -362,30 +362,6 @@ ibool srv_print_innodb_lock_monitor = FALSE;
|
|||
ibool srv_print_innodb_tablespace_monitor = FALSE;
|
||||
ibool srv_print_innodb_table_monitor = FALSE;
|
||||
|
||||
/* The parameters below are obsolete: */
|
||||
|
||||
ibool srv_print_parsed_sql = FALSE;
|
||||
|
||||
ulint srv_sim_disk_wait_pct = ULINT_MAX;
|
||||
ulint srv_sim_disk_wait_len = ULINT_MAX;
|
||||
ibool srv_sim_disk_wait_by_yield = FALSE;
|
||||
ibool srv_sim_disk_wait_by_wait = FALSE;
|
||||
|
||||
ibool srv_measure_contention = FALSE;
|
||||
ibool srv_measure_by_spin = FALSE;
|
||||
|
||||
ibool srv_test_extra_mutexes = FALSE;
|
||||
ibool srv_test_nocache = FALSE;
|
||||
ibool srv_test_cache_evict = FALSE;
|
||||
|
||||
ibool srv_test_sync = FALSE;
|
||||
ulint srv_test_n_threads = ULINT_MAX;
|
||||
ulint srv_test_n_loops = ULINT_MAX;
|
||||
ulint srv_test_n_free_rnds = ULINT_MAX;
|
||||
ulint srv_test_n_reserved_rnds = ULINT_MAX;
|
||||
ulint srv_test_array_size = ULINT_MAX;
|
||||
ulint srv_test_n_mutexes = ULINT_MAX;
|
||||
|
||||
/* Array of English strings describing the current state of an
|
||||
i/o handler thread */
|
||||
|
||||
|
@ -911,10 +887,6 @@ srv_init(void)
|
|||
srv_meter_foreground[i] = 250;
|
||||
}
|
||||
|
||||
srv_sys->operational = os_event_create(NULL);
|
||||
|
||||
ut_a(srv_sys->operational);
|
||||
|
||||
UT_LIST_INIT(srv_sys->tasks);
|
||||
|
||||
/* create dummy table and index for old-style infimum and supremum */
|
||||
|
@ -1847,11 +1819,7 @@ srv_export_innodb_status(void)
|
|||
A thread which wakes up threads whose lock wait may have lasted too long.
|
||||
This also prints the info output by various InnoDB monitors. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_lock_timeout_and_monitor_thread(
|
||||
/*================================*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -2023,22 +1991,15 @@ exit_func:
|
|||
thread should always use that to exit and not use return() to exit. */
|
||||
|
||||
os_thread_exit(NULL);
|
||||
#ifndef __WIN__
|
||||
return(NULL);
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
A thread which prints warnings about semaphore waits which have lasted
|
||||
too long. These can be used to track bugs which cause hangs. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_error_monitor_thread(
|
||||
/*=====================*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -2120,11 +2081,7 @@ loop:
|
|||
|
||||
os_thread_exit(NULL);
|
||||
|
||||
#ifndef __WIN__
|
||||
return(NULL);
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -2169,11 +2126,7 @@ srv_wake_master_thread(void)
|
|||
/*************************************************************************
|
||||
The master thread controlling the server. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
srv_master_thread(
|
||||
/*==============*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -2212,7 +2165,6 @@ srv_master_thread(
|
|||
|
||||
mutex_exit(&kernel_mutex);
|
||||
|
||||
os_event_set(srv_sys->operational);
|
||||
loop:
|
||||
/*****************************************************************/
|
||||
/* ---- When there is database activity by users, we cycle in this
|
||||
|
@ -2619,10 +2571,6 @@ suspend_thread:
|
|||
|
||||
os_thread_exit(NULL);
|
||||
|
||||
#ifndef __WIN__
|
||||
return(NULL); /* Not reached */
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
|
|
@ -426,11 +426,7 @@ srv_parse_log_group_home_dirs(
|
|||
I/o-handler thread function. */
|
||||
static
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
io_handler_thread(
|
||||
/*==============*/
|
||||
void* arg)
|
||||
|
@ -459,11 +455,7 @@ io_handler_thread(
|
|||
|
||||
os_thread_exit(NULL);
|
||||
|
||||
#ifndef __WIN__
|
||||
return(NULL); /* Not reached */
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
|
@ -1540,11 +1532,6 @@ NetWare. */
|
|||
}
|
||||
#endif /* UNIV_LOG_ARCHIVE */
|
||||
|
||||
if (srv_measure_contention) {
|
||||
/* os_thread_create(&test_measure_cont, NULL, thread_ids +
|
||||
SRV_MAX_N_IO_THREADS); */
|
||||
}
|
||||
|
||||
/* fprintf(stderr, "Max allowed record size %lu\n",
|
||||
page_get_free_space_of_empty() / 2); */
|
||||
|
||||
|
|
|
@ -391,11 +391,7 @@ transaction already was committed, then we clean up a possible insert
|
|||
undo log. If the transaction was not yet committed, then we roll it back.
|
||||
Note: this is done in a background thread. */
|
||||
|
||||
#ifndef __WIN__
|
||||
void*
|
||||
#else
|
||||
ulint
|
||||
#endif
|
||||
os_thread_ret_t
|
||||
trx_rollback_or_clean_all_without_sess(
|
||||
/*===================================*/
|
||||
/* out: a dummy parameter */
|
||||
|
@ -576,13 +572,7 @@ leave_function:
|
|||
|
||||
os_thread_exit(NULL);
|
||||
|
||||
/* The following is dummy code to keep the compiler happy: */
|
||||
|
||||
#ifndef __WIN__
|
||||
return(NULL);
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
Loading…
Reference in a new issue