1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Manual merge from mysql-next-mr.

Conflicts:
  - sql/log_event.cc
  - sql/sql_class.h
This commit is contained in:
Alexander Nozdrin
2010-02-15 14:16:49 +03:00
212 changed files with 6025 additions and 2402 deletions

View File

@ -317,6 +317,10 @@ static PSI_thread_key key_thread_handle_con_sockets;
#ifdef __WIN__
static PSI_thread_key key_thread_handle_shutdown;
#endif /* __WIN__ */
#if defined (HAVE_OPENSSL) && !defined(HAVE_YASSL)
static PSI_rwlock_key key_rwlock_openssl;
#endif
#endif /* HAVE_PSI_INTERFACE */
/* the default log output is log tables */
@ -928,8 +932,6 @@ static bool add_terminator(DYNAMIC_ARRAY *options);
extern "C" my_bool mysqld_get_one_option(int, const struct my_option *, char *);
static void set_server_version(void);
static int init_thread_environment();
static void init_error_log_mutex();
static void clean_up_error_log_mutex();
static char *get_relative_path(const char *path);
static int fix_paths(void);
void handle_connections_sockets();
@ -1346,6 +1348,18 @@ extern "C" sig_handler print_signal_warning(int sig)
#ifndef EMBEDDED_LIBRARY
static void init_error_log_mutex()
{
mysql_mutex_init(key_LOCK_error_log, &LOCK_error_log, MY_MUTEX_INIT_FAST);
}
static void clean_up_error_log_mutex()
{
mysql_mutex_destroy(&LOCK_error_log);
}
/**
cleanup all memory and end program nicely.
@ -1552,7 +1566,7 @@ static void clean_up_mutexes()
mysql_mutex_destroy(&LOCK_des_key_file);
#ifndef HAVE_YASSL
for (int i= 0; i < CRYPTO_num_locks(); ++i)
rwlock_destroy(&openssl_stdlocks[i].lock);
mysql_rwlock_destroy(&openssl_stdlocks[i].lock);
OPENSSL_free(openssl_stdlocks);
#endif
#endif
@ -3361,7 +3375,7 @@ static int init_common_variables()
set the def_value member to 0 in my_long_options and initialize it
to the correct value here.
*/
default_storage_engine="MyISAM";
default_storage_engine= const_cast<char *>("MyISAM");
/*
Add server status variables to the dynamic list of
@ -3702,15 +3716,6 @@ You should consider changing lower_case_table_names to 1 or 2",
return 0;
}
static void init_error_log_mutex()
{
mysql_mutex_init(key_LOCK_error_log, &LOCK_error_log, MY_MUTEX_INIT_FAST);
}
static void clean_up_error_log_mutex()
{
mysql_mutex_destroy(&LOCK_error_log);
}
static int init_thread_environment()
{
@ -3753,7 +3758,7 @@ static int init_thread_environment()
openssl_stdlocks= (openssl_lock_t*) OPENSSL_malloc(CRYPTO_num_locks() *
sizeof(openssl_lock_t));
for (int i= 0; i < CRYPTO_num_locks(); ++i)
my_rwlock_init(&openssl_stdlocks[i].lock, NULL);
mysql_rwlock_init(key_rwlock_openssl, &openssl_stdlocks[i].lock);
CRYPTO_set_dynlock_create_callback(openssl_dynlock_create);
CRYPTO_set_dynlock_destroy_callback(openssl_dynlock_destroy);
CRYPTO_set_dynlock_lock_callback(openssl_lock);
@ -3807,7 +3812,7 @@ static unsigned long openssl_id_function()
static openssl_lock_t *openssl_dynlock_create(const char *file, int line)
{
openssl_lock_t *lock= new openssl_lock_t;
my_rwlock_init(&lock->lock, NULL);
mysql_rwlock_init(key_rwlock_openssl, &lock->lock);
return lock;
}
@ -3815,7 +3820,7 @@ static openssl_lock_t *openssl_dynlock_create(const char *file, int line)
static void openssl_dynlock_destroy(openssl_lock_t *lock, const char *file,
int line)
{
rwlock_destroy(&lock->lock);
mysql_rwlock_destroy(&lock->lock);
delete lock;
}
@ -3841,16 +3846,16 @@ static void openssl_lock(int mode, openssl_lock_t *lock, const char *file,
switch (mode) {
case CRYPTO_LOCK|CRYPTO_READ:
what = "read lock";
err = rw_rdlock(&lock->lock);
err= mysql_rwlock_rdlock(&lock->lock);
break;
case CRYPTO_LOCK|CRYPTO_WRITE:
what = "write lock";
err = rw_wrlock(&lock->lock);
err= mysql_rwlock_wrlock(&lock->lock);
break;
case CRYPTO_UNLOCK|CRYPTO_READ:
case CRYPTO_UNLOCK|CRYPTO_WRITE:
what = "unlock";
err = rw_unlock(&lock->lock);
err= mysql_rwlock_unlock(&lock->lock);
break;
default:
/* Unknown locking mode. */
@ -7987,6 +7992,9 @@ PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger,
static PSI_rwlock_info all_server_rwlocks[]=
{
#if defined (HAVE_OPENSSL) && !defined(HAVE_YASSL)
{ &key_rwlock_openssl, "CRYPTO_dynlock_value::lock", 0},
#endif
{ &key_rwlock_LOCK_grant, "LOCK_grant", PSI_FLAG_GLOBAL},
{ &key_rwlock_LOCK_logger, "LOGGER::LOCK_logger", 0},
{ &key_rwlock_LOCK_sys_init_connect, "LOCK_sys_init_connect", PSI_FLAG_GLOBAL},