diff options
author | unknown <serg@serg.mysql.com> | 2003-01-21 19:24:34 +0100 |
---|---|---|
committer | unknown <serg@serg.mysql.com> | 2003-01-21 19:24:34 +0100 |
commit | 76078f2c8417df4695f14b75fc4711417d1f3c08 (patch) | |
tree | 2c7d9d1b4d148a8335c0f806f6c7bc3dcab8e3ce /mysql-test/t/fulltext2.test | |
parent | e503a5807d12c8f08ae4a791d97f8507eb90bb38 (diff) | |
download | mariadb-git-76078f2c8417df4695f14b75fc4711417d1f3c08.tar.gz |
Two-level index structure for FULLTEXT indexes
myisam/ftdefs.h:
intermediate cleanup checkin
myisam/mi_create.c:
intermediate cleanup checkin
myisam/myisamchk.c:
intermediate cleanup checkin
myisam/ft_parser.c:
intermediate cleanup checkin
myisam/ft_update.c:
intermediate cleanup checkin
myisam/mi_update.c:
intermediate cleanup checkin
mysql-test/r/fulltext.result:
stopword test
mysql-test/t/fulltext.test:
stopword test
mysys/mulalloc.c:
function comments clarified
include/my_handler.h:
get_key_length_rdonly utility macro
include/myisam.h:
this kind of hacks bites :)
myisam/ft_dump.c:
bugfix
myisam/mi_open.c:
bugfix
myisam/sort.c:
bugfixing
myisam/mi_rnext.c:
not a solution at all, but a temporary fix to make
mi_rnext to work on ft2 index. (only ft_dump uses mi_rnext
on fulltext indexes for now).
myisam/ft_boolean_search.c:
ft_sintXkorr, ft_intXstore
myisam/ft_nlq_search.c:
ft_sintXkorr, ft_intXstore
myisam/fulltext.h:
ft_sintXkorr, ft_intXstore
myisam/mi_check.c:
ft_sintXkorr, ft_intXstore
myisam/ft_static.c:
two-level tree support in wi_write()
myisam/mi_write.c:
two-level tree support in wi_write()
myisam/myisamdef.h:
two-level tree support in wi_write()
myisam/mi_delete.c:
support for ft2 in mi_delete
mysql-test/r/fulltext2.result:
support for ft2 in mi_delete
mysql-test/t/fulltext2.test:
support for ft2 in mi_delete
Diffstat (limited to 'mysql-test/t/fulltext2.test')
-rw-r--r-- | mysql-test/t/fulltext2.test | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/mysql-test/t/fulltext2.test b/mysql-test/t/fulltext2.test new file mode 100644 index 00000000000..998747018b4 --- /dev/null +++ b/mysql-test/t/fulltext2.test @@ -0,0 +1,93 @@ +# +# test of new fulltext search features +# + +# +# two-level tree +# + +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 ( + i int(10) unsigned not null auto_increment primary key, + a varchar(255) not null, + FULLTEXT KEY (a) +) TYPE=MyISAM; + +# two-level entry, second-level tree with depth 2 +let $1=260; +while ($1) +{ + eval insert t1 (a) values ('aaaxxx'); + dec $1; +} + +# two-level entry, second-level tree has only one page +let $1=255; +while ($1) +{ + eval insert t1 (a) values ('aaazzz'); + dec $1; +} + +# one-level entry (entries) +let $1=250; +while ($1) +{ + eval insert t1 (a) values ('aaayyy'); + dec $1; +} + +# converting to two-level +repair table t1 quick; + +select count(*) from t1 where match a against ('aaaxxx'); +select count(*) from t1 where match a against ('aaayyy'); +select count(*) from t1 where match a against ('aaazzz'); +select count(*) from t1 where match a against ('aaaxxx' in boolean mode); +select count(*) from t1 where match a against ('aaayyy' in boolean mode); +select count(*) from t1 where match a against ('aaazzz' in boolean mode); +select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz'); +select count(*) from t1 where match a against ('aaaxxx aaayyy aaazzz' in boolean mode); + +select count(*) from t1 where match a against ('aaax*' in boolean mode); +select count(*) from t1 where match a against ('aaay*' in boolean mode); +select count(*) from t1 where match a against ('aaa*' in boolean mode); + +# mi_write: + +insert t1 (a) values ('aaaxxx'),('aaayyy'); +# call to enlarge_root() below +insert t1 (a) values ('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz'),('aaazzz'); +select count(*) from t1 where match a against ('aaaxxx'); +select count(*) from t1 where match a against ('aaayyy'); +select count(*) from t1 where match a against ('aaazzz'); + +# mi_delete +insert t1 (a) values ('aaaxxx 000000'); +select count(*) from t1 where match a against ('000000'); +delete from t1 where match a against ('000000'); +select count(*) from t1 where match a against ('000000'); +select count(*) from t1 where match a against ('aaaxxx'); +delete from t1 where match a against ('aaazzz'); +select count(*) from t1 where match a against ('aaaxxx' in boolean mode); +select count(*) from t1 where match a against ('aaayyy' in boolean mode); +select count(*) from t1 where match a against ('aaazzz' in boolean mode); +# double-check without index +select count(*) from t1 where a = 'aaaxxx'; +select count(*) from t1 where a = 'aaayyy'; +select count(*) from t1 where a = 'aaazzz'; + +# update +insert t1 (a) values ('aaaxxx 000000'); +select count(*) from t1 where match a against ('000000'); +update t1 set a='aaazzz' where match a against ('000000'); +select count(*) from t1 where match a against ('aaaxxx' in boolean mode); +select count(*) from t1 where match a against ('aaazzz' in boolean mode); +update t1 set a='aaazzz' where a = 'aaaxxx'; +update t1 set a='aaaxxx' where a = 'aaayyy'; +select count(*) from t1 where match a against ('aaaxxx' in boolean mode); +select count(*) from t1 where match a against ('aaayyy' in boolean mode); +select count(*) from t1 where match a against ('aaazzz' in boolean mode); + +DROP TABLE IF EXISTS t1; + |