diff options
author | monty@mysql.com <> | 2004-03-25 15:05:01 +0200 |
---|---|---|
committer | monty@mysql.com <> | 2004-03-25 15:05:01 +0200 |
commit | ebc3b3afac575b2c2a3e89823dfba217436a85c4 (patch) | |
tree | 27e5290a14e7d3e6c7aaced5b2ce86546de4721e /myisam/ft_boolean_search.c | |
parent | 042af556d57f305734e64c7aa047e4709288f5bd (diff) | |
download | mariadb-git-ebc3b3afac575b2c2a3e89823dfba217436a85c4.tar.gz |
BTREE-indexes in HEAP tables can now be used to optimize ORDER BY
Don't read character set files if we are using only the default charset. In most cases the user will not anymore get a warning about missing character set files
Compare strings with space extend instead of space strip. Now the following comparisons holds: "a" == "a " and "a\t" < "a". (Bug #3152).
Note: Because of the above fix, one has to do a REPAIR on any table that has an ascii character < 32 last in a CHAR/VARCHAR/TEXT columns.
Diffstat (limited to 'myisam/ft_boolean_search.c')
-rw-r--r-- | myisam/ft_boolean_search.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c index bff1232750e..1d4bfee86a4 100644 --- a/myisam/ft_boolean_search.c +++ b/myisam/ft_boolean_search.c @@ -124,7 +124,7 @@ static int FTB_WORD_cmp_list(CHARSET_INFO *cs, FTB_WORD **a, FTB_WORD **b) { /* ORDER BY word DESC, ndepth DESC */ int i= mi_compare_text(cs, (uchar*) (*b)->word+1,(*b)->len-1, - (uchar*) (*a)->word+1,(*a)->len-1,0); + (uchar*) (*a)->word+1,(*a)->len-1,0,0); if (!i) i=CMP_NUM((*b)->ndepth,(*a)->ndepth); return i; @@ -228,7 +228,7 @@ static int _ft2_search(FTB *ftb, FTB_WORD *ftbw, my_bool init_search) ftbw->len - (ftbw->flags & FTB_FLAG_TRUNC), (uchar*) ftbw->word + (ftbw->flags & FTB_FLAG_TRUNC), ftbw->len - (ftbw->flags & FTB_FLAG_TRUNC), - 0); + 0,0); } if (r) /* not found */ @@ -633,7 +633,7 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length) ftbw=ftb->list[c]; if (mi_compare_text(ftb->charset, (uchar*) word.pos, word.len, (uchar*) ftbw->word+1, ftbw->len-1, - (my_bool) (ftbw->flags&FTB_FLAG_TRUNC)) >0) + (my_bool) (ftbw->flags&FTB_FLAG_TRUNC),0) >0) b=c; else a=c; @@ -643,7 +643,7 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length) ftbw=ftb->list[c]; if (mi_compare_text(ftb->charset, (uchar*) word.pos, word.len, (uchar*) ftbw->word+1,ftbw->len-1, - (my_bool) (ftbw->flags&FTB_FLAG_TRUNC))) + (my_bool) (ftbw->flags&FTB_FLAG_TRUNC),0)) break; if (ftbw->docid[1] == docid) continue; |