summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2004-10-29 14:24:06 +0200
committerunknown <serg@serg.mylan>2004-10-29 14:24:06 +0200
commit13ff3fa4b92642779c260c9fcd56ea2e5c96391c (patch)
tree470f639c064715a7b27df2392021dbaa6ad329cb
parent55833fb49bf8570ee11d4b85b143a9a3975733fa (diff)
downloadmariadb-git-13ff3fa4b92642779c260c9fcd56ea2e5c96391c.tar.gz
proper max_records estimation for sort-repair of fulltext indexes
mysql-test/t/ctype_utf8.test: bad merge fixed
-rw-r--r--myisam/mi_check.c2
-rw-r--r--mysql-test/r/fulltext.result3
-rw-r--r--mysql-test/t/ctype_utf8.test1
-rw-r--r--mysql-test/t/fulltext.test9
4 files changed, 13 insertions, 2 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 4da388af1c7..1df518a2712 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -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*
sort_param.keyinfo->seg->charset->mbmaxlen;
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_write=sort_ft_key_write;
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result
index 30c4c75f3d1..65f88932d54 100644
--- a/mysql-test/r/fulltext.result
+++ b/mysql-test/r/fulltext.result
@@ -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);
t2_id t1_id name
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;
CREATE TABLE t1 (t text character set utf8 not null, fulltext(t));
INSERT t1 VALUES ('Mit freundlichem Grüß'), ('aus Osnabrück');
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index 0c8bdd6a94d..c75b1dee63c 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -645,6 +645,7 @@ insert into t1 values(1,'foo'),(2,'foobar');
select * from t1 where b like 'foob%';
--disable_warnings
alter table t1 engine=bdb;
+--enable_warnings
select * from t1 where b like 'foob%';
drop table t1;
diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test
index 66df5b1cb92..5af2575ddc4 100644
--- a/mysql-test/t/fulltext.test
+++ b/mysql-test/t/fulltext.test
@@ -253,10 +253,17 @@ 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
#
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
-
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
#
SET NAMES latin1;