Commit 5f2d79c5 authored by serg@serg.mysql.com's avatar serg@serg.mysql.com

Merge work:/home/bk/mysql-4.0

into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
parents 5f5cc579 2e6b3c26
...@@ -48933,6 +48933,9 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}. ...@@ -48933,6 +48933,9 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet @itemize @bullet
@item @item
Fixed bug in boolean fulltext search, that caused MySQL to ignore queries of
@code{ft_min_word_len} characters.
@item
Boolean fulltext search now supports "phrase searches". Boolean fulltext search now supports "phrase searches".
@item @item
New configure option @code{--without-query-cache}. New configure option @code{--without-query-cache}.
...@@ -256,7 +256,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query, ...@@ -256,7 +256,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
/* hack: instead of init_queue, we'll use reinit queue to be able /* hack: instead of init_queue, we'll use reinit queue to be able
* to alloc queue with alloc_root() * to alloc queue with alloc_root()
*/ */
res=ftb->queue.max_elements=query_len/(ft_min_word_len+1); res=ftb->queue.max_elements=1+query_len/(ft_min_word_len+1);
ftb->queue.root=(byte **)alloc_root(&ftb->mem_root, (res+1)*sizeof(void*)); ftb->queue.root=(byte **)alloc_root(&ftb->mem_root, (res+1)*sizeof(void*));
reinit_queue(& ftb->queue, res, 0, 0, reinit_queue(& ftb->queue, res, 0, 0,
(int (*)(void*,byte*,byte*))FTB_WORD_cmp, ftb); (int (*)(void*,byte*,byte*))FTB_WORD_cmp, ftb);
......
...@@ -156,6 +156,9 @@ KEY ind5 (title), ...@@ -156,6 +156,9 @@ KEY ind5 (title),
FULLTEXT KEY FT1 (title) FULLTEXT KEY FT1 (title)
) TYPE=MyISAM; ) TYPE=MyISAM;
insert into t1 (title) values ('this is a test'); insert into t1 (title) values ('this is a test');
select * from t1 where match title against ('test' in boolean mode);
id title
1 this is a test
update t1 set title='this is A test' where id=1; update t1 set title='this is A test' where id=1;
check table t1; check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
......
...@@ -118,7 +118,7 @@ select * from t2,t3 where MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar'); ...@@ -118,7 +118,7 @@ select * from t2,t3 where MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar');
drop table t1,t2,t3; drop table t1,t2,t3;
# #
# two more bugtests # three more bugtests
# #
CREATE TABLE t1 ( CREATE TABLE t1 (
...@@ -130,6 +130,7 @@ CREATE TABLE t1 ( ...@@ -130,6 +130,7 @@ CREATE TABLE t1 (
) TYPE=MyISAM; ) TYPE=MyISAM;
insert into t1 (title) values ('this is a test'); insert into t1 (title) values ('this is a test');
select * from t1 where match title against ('test' in boolean mode);
update t1 set title='this is A test' where id=1; update t1 set title='this is A test' where id=1;
check table t1; check table t1;
update t1 set title='this test once revealed a bug' where id=1; update t1 set title='this test once revealed a bug' where id=1;
......
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