mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
proper max_records estimation for sort-repair of fulltext indexes
mysql-test/t/ctype_utf8.test: bad merge fixed
This commit is contained in:
@ -2037,7 +2037,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
|
|||||||
uint ft_max_word_len_for_sort=FT_MAX_WORD_LEN_FOR_SORT*
|
uint ft_max_word_len_for_sort=FT_MAX_WORD_LEN_FOR_SORT*
|
||||||
sort_param.keyinfo->seg->charset->mbmaxlen;
|
sort_param.keyinfo->seg->charset->mbmaxlen;
|
||||||
sort_info.max_records=
|
sort_info.max_records=
|
||||||
(ha_rows) (sort_info.filelength/ft_max_word_len_for_sort+1);
|
(ha_rows) (sort_info.filelength/ft_min_word_len+1);
|
||||||
|
|
||||||
sort_param.key_read=sort_ft_key_read;
|
sort_param.key_read=sort_ft_key_read;
|
||||||
sort_param.key_write=sort_ft_key_write;
|
sort_param.key_write=sort_ft_key_write;
|
||||||
|
@ -330,6 +330,9 @@ t1_id name t2_id t1_id name
|
|||||||
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
|
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
|
||||||
t2_id t1_id name
|
t2_id t1_id name
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
create table t1 (a text, fulltext key (a));
|
||||||
|
insert into t1 select "xxxx yyyy zzzz";
|
||||||
|
drop table t1;
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
CREATE TABLE t1 (t text character set utf8 not null, fulltext(t));
|
CREATE TABLE t1 (t text character set utf8 not null, fulltext(t));
|
||||||
INSERT t1 VALUES ('Mit freundlichem Gr<47><72>'), ('aus Osnabr<62>ck');
|
INSERT t1 VALUES ('Mit freundlichem Gr<47><72>'), ('aus Osnabr<62>ck');
|
||||||
|
@ -645,6 +645,7 @@ insert into t1 values(1,'foo'),(2,'foobar');
|
|||||||
select * from t1 where b like 'foob%';
|
select * from t1 where b like 'foob%';
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
alter table t1 engine=bdb;
|
alter table t1 engine=bdb;
|
||||||
|
--enable_warnings
|
||||||
select * from t1 where b like 'foob%';
|
select * from t1 where b like 'foob%';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
@ -253,9 +253,16 @@ select * from t1 join t2 using(`t1_id`) where match (t1.name, t2.name) against('
|
|||||||
# bug with many short (< ft_min_word_len) words in boolean search
|
# bug with many short (< ft_min_word_len) words in boolean search
|
||||||
#
|
#
|
||||||
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
|
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
|
||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# bug with repair-by-sort and incorrect records estimation
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (a text, fulltext key (a));
|
||||||
|
insert into t1 select "xxxx yyyy zzzz";
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# UTF8
|
# UTF8
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user