diff options
-rw-r--r-- | mysql-test/r/fulltext.result | 4 | ||||
-rw-r--r-- | mysql-test/t/fulltext.test | 2 | ||||
-rw-r--r-- | sql/log.cc | 16 | ||||
-rw-r--r-- | sql/slave.cc | 1 | ||||
-rw-r--r-- | sql/sql_class.h | 6 |
5 files changed, 15 insertions, 14 deletions
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result index d9ef306d9f6..fa1e6a75e52 100644 --- a/mysql-test/r/fulltext.result +++ b/mysql-test/r/fulltext.result @@ -130,6 +130,8 @@ a b select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE); a b MySQL has now support for full-text search +select * from t1 where MATCH a,b AGAINST ('"now support"' IN BOOLEAN MODE); +a b select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE); a b MySQL has now support for full-text search @@ -151,8 +153,6 @@ a b select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE); a b Full-text indexes are called collections -select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE); -a b select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE); a b Full-text search in MySQL implements vector space model diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test index 4809f6f0357..2acf69dad76 100644 --- a/mysql-test/t/fulltext.test +++ b/mysql-test/t/fulltext.test @@ -59,6 +59,7 @@ select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE); +select * from t1 where MATCH a,b AGAINST ('"now support"' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE); @@ -68,7 +69,6 @@ select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE); -select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE); # bug#2708, bug#3870 crash diff --git a/sql/log.cc b/sql/log.cc index 5d77197a9b9..ae06e37611d 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -360,12 +360,6 @@ MYSQL_LOG::MYSQL_LOG() bzero((char*) &index_file, sizeof(index_file)); } - -MYSQL_LOG::~MYSQL_LOG() -{ - cleanup(); -} - /* this is called only once */ void MYSQL_LOG::cleanup() @@ -1276,8 +1270,7 @@ bool MYSQL_LOG::is_active(const char *log_file_name_arg) SYNOPSIS new_file() - need_lock Set to 1 (default) if caller has not locked - LOCK_log and LOCK_index + need_lock Set to 1 if caller has not locked LOCK_log NOTE The new file name is stored last in the index file @@ -1764,12 +1757,13 @@ err: void MYSQL_LOG::rotate_and_purge(uint flags) { + if (!(flags & RP_LOCK_LOG_IS_ALREADY_LOCKED)) + pthread_mutex_lock(&LOCK_log); if ((flags & RP_FORCE_ROTATE) || (my_b_tell(&log_file) >= (my_off_t) max_size)) { - new_file(!(flags & RP_LOCK_LOG_IS_ALREADY_LOCKED)); + new_file(0); #ifdef HAVE_REPLICATION - // QQ why do we need #ifdef here ??? if (expire_logs_days) { long purge_time= time(0) - expire_logs_days*24*60*60; @@ -1778,6 +1772,8 @@ void MYSQL_LOG::rotate_and_purge(uint flags) } #endif } + if (!(flags & RP_LOCK_LOG_IS_ALREADY_LOCKED)) + pthread_mutex_unlock(&LOCK_log); } uint MYSQL_LOG::next_file_id() diff --git a/sql/slave.cc b/sql/slave.cc index 9849feaf6fa..90753572e50 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2558,6 +2558,7 @@ st_relay_log_info::~st_relay_log_info() pthread_cond_destroy(&start_cond); pthread_cond_destroy(&stop_cond); pthread_cond_destroy(&log_space_cond); + relay_log.cleanup(); } /* diff --git a/sql/sql_class.h b/sql/sql_class.h index ff30faf1150..67173e972ac 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -236,7 +236,11 @@ class MYSQL_LOG: public TC_LOG public: MYSQL_LOG(); - ~MYSQL_LOG(); + /* + note that there's no destructor ~MYSQL_LOG() ! + The reason is that we don't want it to be automatically called + on exit() - but only during the correct shutdown process + */ int open(const char *opt_name); void close(); |