diff options
author | holyfoot/hf@hfmain.(none) <> | 2007-11-20 14:35:49 +0400 |
---|---|---|
committer | holyfoot/hf@hfmain.(none) <> | 2007-11-20 14:35:49 +0400 |
commit | 7435683dbf898b2340c04f7d3c4a7415bfb25e26 (patch) | |
tree | fba8a7e0fedb621fad497f7bf24ba21553d01dbc | |
parent | 4051d1cda219bcdbd79330774559c303772a32bf (diff) | |
parent | 18f832a7084d357fb2fd4c4482129ee14f0c9e7f (diff) | |
download | mariadb-git-7435683dbf898b2340c04f7d3c4a7415bfb25e26.tar.gz |
Merge bk@192.168.21.1:mysql-5.1-opt
into mysql.com:/home/hf/work/31868/my51-31868
-rw-r--r-- | .bzrignore | 3 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 1 | ||||
-rw-r--r-- | sql/mysqld.cc | 3 | ||||
-rw-r--r-- | sql/sql_table.cc | 13 |
4 files changed, 15 insertions, 5 deletions
diff --git a/.bzrignore b/.bzrignore index 7a8066fdba1..d30466a0a36 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1137,6 +1137,7 @@ libmysqld/rpl_filter.cc libmysqld/rpl_injector.cc libmysqld/rpl_record.cc libmysqld/rpl_record_old.cc +libmysqld/scheduler.cc libmysqld/set_var.cc libmysqld/simple-test libmysqld/slave.cc @@ -1153,6 +1154,7 @@ libmysqld/sql_builtin.cc libmysqld/sql_cache.cc libmysqld/sql_class.cc libmysqld/sql_command +libmysqld/sql_connect.cc libmysqld/sql_crypt.cc libmysqld/sql_cursor.cc libmysqld/sql_cursor.h @@ -1183,6 +1185,7 @@ libmysqld/sql_show.cc libmysqld/sql_state.c libmysqld/sql_string.cc libmysqld/sql_table.cc +libmysqld/sql_tablespace.cc libmysqld/sql_test.cc libmysqld/sql_trigger.cc libmysqld/sql_udf.cc diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 4963d7fc978..f5bfe97a38e 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -546,7 +546,6 @@ void end_embedded_server() { my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); copy_arguments_ptr=0; - release_ddl_log(); clean_up(0); } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 4cf6e05751f..752826662e4 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1164,6 +1164,8 @@ void clean_up(bool print_message) if (cleanup_done++) return; /* purecov: inspected */ + release_ddl_log(); + /* make sure that handlers finish up 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."); pthread_cond_wait(&COND_thread_count,&LOCK_thread_count); (void) pthread_mutex_unlock(&LOCK_thread_count); - release_ddl_log(); #if defined(__WIN__) && !defined(EMBEDDED_LIBRARY) if (Service.IsNT() && start_mode) Service.Stop(); diff --git a/sql/sql_table.cc b/sql/sql_table.cc index bf4a02ae5cc..6f0864cb1cf 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -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 @@ -297,10 +297,12 @@ typedef struct st_global_ddl_log uint name_len; uint io_size; bool inited; + bool do_release; 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; @@ -460,6 +462,7 @@ static uint read_ddl_log_header() global_ddl_log.first_used= NULL; global_ddl_log.num_entries= 0; VOID(pthread_mutex_init(&LOCK_gdl, MY_MUTEX_INIT_FAST)); + global_ddl_log.do_release= true; DBUG_RETURN(entry_no); } @@ -1150,6 +1153,9 @@ void release_ddl_log() DDL_LOG_MEMORY_ENTRY *used_list= global_ddl_log.first_used; DBUG_ENTER("release_ddl_log"); + if (!global_ddl_log.do_release) + DBUG_VOID_RETURN; + pthread_mutex_lock(&LOCK_gdl); while (used_list) { @@ -1167,6 +1173,7 @@ void release_ddl_log() global_ddl_log.inited= 0; pthread_mutex_unlock(&LOCK_gdl); VOID(pthread_mutex_destroy(&LOCK_gdl)); + global_ddl_log.do_release= false; DBUG_VOID_RETURN; } |