Commit c4992844 authored by serg@serg.mylan's avatar serg@serg.mylan

Merge bk-internal:/home/bk/mysql-5.0

into serg.mylan:/usr/home/serg/Abk/mysql-5.0
parents ca336ad1 1e09c15a
...@@ -130,6 +130,8 @@ a b ...@@ -130,6 +130,8 @@ a b
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);
a b a b
MySQL has now support for full-text search 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); select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
a b a b
MySQL has now support for full-text search MySQL has now support for full-text search
...@@ -151,8 +153,6 @@ a b ...@@ -151,8 +153,6 @@ a b
select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE); select * from t1 where MATCH a,b AGAINST ('+collections -supp* -foobar*' IN BOOLEAN MODE);
a b a b
Full-text indexes are called collections 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); select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
a b a b
Full-text search in MySQL implements vector space model Full-text search in MySQL implements vector space model
......
...@@ -59,6 +59,7 @@ select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE); ...@@ -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 ('"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 ('"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); 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); ...@@ -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 ('+(+(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 ('+collections -supp* -foobar*' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
# bug#2708, bug#3870 crash # bug#2708, bug#3870 crash
......
...@@ -360,12 +360,6 @@ MYSQL_LOG::MYSQL_LOG() ...@@ -360,12 +360,6 @@ MYSQL_LOG::MYSQL_LOG()
bzero((char*) &index_file, sizeof(index_file)); bzero((char*) &index_file, sizeof(index_file));
} }
MYSQL_LOG::~MYSQL_LOG()
{
cleanup();
}
/* this is called only once */ /* this is called only once */
void MYSQL_LOG::cleanup() void MYSQL_LOG::cleanup()
...@@ -1276,8 +1270,7 @@ bool MYSQL_LOG::is_active(const char *log_file_name_arg) ...@@ -1276,8 +1270,7 @@ bool MYSQL_LOG::is_active(const char *log_file_name_arg)
SYNOPSIS SYNOPSIS
new_file() new_file()
need_lock Set to 1 (default) if caller has not locked need_lock Set to 1 if caller has not locked LOCK_log
LOCK_log and LOCK_index
NOTE NOTE
The new file name is stored last in the index file The new file name is stored last in the index file
...@@ -1764,12 +1757,13 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u", ...@@ -1764,12 +1757,13 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u",
void MYSQL_LOG::rotate_and_purge(uint flags) 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) || if ((flags & RP_FORCE_ROTATE) ||
(my_b_tell(&log_file) >= (my_off_t) max_size)) (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 #ifdef HAVE_REPLICATION
// QQ why do we need #ifdef here ???
if (expire_logs_days) if (expire_logs_days)
{ {
long purge_time= time(0) - expire_logs_days*24*60*60; long purge_time= time(0) - expire_logs_days*24*60*60;
...@@ -1778,6 +1772,8 @@ void MYSQL_LOG::rotate_and_purge(uint flags) ...@@ -1778,6 +1772,8 @@ void MYSQL_LOG::rotate_and_purge(uint flags)
} }
#endif #endif
} }
if (!(flags & RP_LOCK_LOG_IS_ALREADY_LOCKED))
pthread_mutex_unlock(&LOCK_log);
} }
uint MYSQL_LOG::next_file_id() uint MYSQL_LOG::next_file_id()
......
...@@ -2558,6 +2558,7 @@ st_relay_log_info::~st_relay_log_info() ...@@ -2558,6 +2558,7 @@ st_relay_log_info::~st_relay_log_info()
pthread_cond_destroy(&start_cond); pthread_cond_destroy(&start_cond);
pthread_cond_destroy(&stop_cond); pthread_cond_destroy(&stop_cond);
pthread_cond_destroy(&log_space_cond); pthread_cond_destroy(&log_space_cond);
relay_log.cleanup();
} }
/* /*
......
...@@ -236,7 +236,11 @@ class MYSQL_LOG: public TC_LOG ...@@ -236,7 +236,11 @@ class MYSQL_LOG: public TC_LOG
public: public:
MYSQL_LOG(); 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); int open(const char *opt_name);
void close(); void close();
......
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