Commit 3ae44c90 authored by unknown's avatar unknown

Merge bk@192.168.21.1:mysql-5.1-opt

into  mysql.com:/home/hf/work/31868/my51-31868


BitKeeper/etc/ignore:
  auto-union
libmysqld/lib_sql.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
parents 83e71330 b88cfbad
...@@ -1137,6 +1137,7 @@ libmysqld/rpl_filter.cc ...@@ -1137,6 +1137,7 @@ libmysqld/rpl_filter.cc
libmysqld/rpl_injector.cc libmysqld/rpl_injector.cc
libmysqld/rpl_record.cc libmysqld/rpl_record.cc
libmysqld/rpl_record_old.cc libmysqld/rpl_record_old.cc
libmysqld/scheduler.cc
libmysqld/set_var.cc libmysqld/set_var.cc
libmysqld/simple-test libmysqld/simple-test
libmysqld/slave.cc libmysqld/slave.cc
...@@ -1153,6 +1154,7 @@ libmysqld/sql_builtin.cc ...@@ -1153,6 +1154,7 @@ libmysqld/sql_builtin.cc
libmysqld/sql_cache.cc libmysqld/sql_cache.cc
libmysqld/sql_class.cc libmysqld/sql_class.cc
libmysqld/sql_command libmysqld/sql_command
libmysqld/sql_connect.cc
libmysqld/sql_crypt.cc libmysqld/sql_crypt.cc
libmysqld/sql_cursor.cc libmysqld/sql_cursor.cc
libmysqld/sql_cursor.h libmysqld/sql_cursor.h
...@@ -1183,6 +1185,7 @@ libmysqld/sql_show.cc ...@@ -1183,6 +1185,7 @@ libmysqld/sql_show.cc
libmysqld/sql_state.c libmysqld/sql_state.c
libmysqld/sql_string.cc libmysqld/sql_string.cc
libmysqld/sql_table.cc libmysqld/sql_table.cc
libmysqld/sql_tablespace.cc
libmysqld/sql_test.cc libmysqld/sql_test.cc
libmysqld/sql_trigger.cc libmysqld/sql_trigger.cc
libmysqld/sql_udf.cc libmysqld/sql_udf.cc
......
...@@ -546,7 +546,6 @@ void end_embedded_server() ...@@ -546,7 +546,6 @@ void end_embedded_server()
{ {
my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR));
copy_arguments_ptr=0; copy_arguments_ptr=0;
release_ddl_log();
clean_up(0); clean_up(0);
} }
......
...@@ -1164,6 +1164,8 @@ void clean_up(bool print_message) ...@@ -1164,6 +1164,8 @@ void clean_up(bool print_message)
if (cleanup_done++) if (cleanup_done++)
return; /* purecov: inspected */ return; /* purecov: inspected */
release_ddl_log();
/* /*
make sure that handlers finish up make sure that handlers finish up
what they have that is dependent on the binlog what they have that is dependent on the binlog
...@@ -3995,7 +3997,6 @@ we force server id to 2, but this MySQL server will not act as a slave."); ...@@ -3995,7 +3997,6 @@ we force server id to 2, but this MySQL server will not act as a slave.");
pthread_cond_wait(&COND_thread_count,&LOCK_thread_count); pthread_cond_wait(&COND_thread_count,&LOCK_thread_count);
(void) pthread_mutex_unlock(&LOCK_thread_count); (void) pthread_mutex_unlock(&LOCK_thread_count);
release_ddl_log();
#if defined(__WIN__) && !defined(EMBEDDED_LIBRARY) #if defined(__WIN__) && !defined(EMBEDDED_LIBRARY)
if (Service.IsNT() && start_mode) if (Service.IsNT() && start_mode)
Service.Stop(); Service.Stop();
......
...@@ -279,7 +279,7 @@ uint build_tmptable_filename(THD* thd, char *buff, size_t bufflen) ...@@ -279,7 +279,7 @@ uint build_tmptable_filename(THD* thd, char *buff, size_t bufflen)
*/ */
typedef struct st_global_ddl_log struct st_global_ddl_log
{ {
/* /*
We need to adjust buffer size to be able to handle downgrades/upgrades We need to adjust buffer size to be able to handle downgrades/upgrades
...@@ -297,10 +297,12 @@ typedef struct st_global_ddl_log ...@@ -297,10 +297,12 @@ typedef struct st_global_ddl_log
uint name_len; uint name_len;
uint io_size; uint io_size;
bool inited; bool inited;
bool do_release;
bool recovery_phase; bool recovery_phase;
} GLOBAL_DDL_LOG; st_global_ddl_log() : inited(false), do_release(false) {}
};
GLOBAL_DDL_LOG global_ddl_log; st_global_ddl_log global_ddl_log;
pthread_mutex_t LOCK_gdl; pthread_mutex_t LOCK_gdl;
...@@ -460,6 +462,7 @@ static uint read_ddl_log_header() ...@@ -460,6 +462,7 @@ static uint read_ddl_log_header()
global_ddl_log.first_used= NULL; global_ddl_log.first_used= NULL;
global_ddl_log.num_entries= 0; global_ddl_log.num_entries= 0;
VOID(pthread_mutex_init(&LOCK_gdl, MY_MUTEX_INIT_FAST)); VOID(pthread_mutex_init(&LOCK_gdl, MY_MUTEX_INIT_FAST));
global_ddl_log.do_release= true;
DBUG_RETURN(entry_no); DBUG_RETURN(entry_no);
} }
...@@ -1150,6 +1153,9 @@ void release_ddl_log() ...@@ -1150,6 +1153,9 @@ void release_ddl_log()
DDL_LOG_MEMORY_ENTRY *used_list= global_ddl_log.first_used; DDL_LOG_MEMORY_ENTRY *used_list= global_ddl_log.first_used;
DBUG_ENTER("release_ddl_log"); DBUG_ENTER("release_ddl_log");
if (!global_ddl_log.do_release)
DBUG_VOID_RETURN;
pthread_mutex_lock(&LOCK_gdl); pthread_mutex_lock(&LOCK_gdl);
while (used_list) while (used_list)
{ {
...@@ -1167,6 +1173,7 @@ void release_ddl_log() ...@@ -1167,6 +1173,7 @@ void release_ddl_log()
global_ddl_log.inited= 0; global_ddl_log.inited= 0;
pthread_mutex_unlock(&LOCK_gdl); pthread_mutex_unlock(&LOCK_gdl);
VOID(pthread_mutex_destroy(&LOCK_gdl)); VOID(pthread_mutex_destroy(&LOCK_gdl));
global_ddl_log.do_release= false;
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
......
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