diff options
author | unknown <bar@mysql.com> | 2005-01-26 16:34:09 +0400 |
---|---|---|
committer | unknown <bar@mysql.com> | 2005-01-26 16:34:09 +0400 |
commit | 9bb464487d6c1c0359dba9aa79e88f927cd24c93 (patch) | |
tree | 91906f2e462ed709b34b9973ff6afcb3ec9072a9 /sql | |
parent | e8ae338356d203942944e6bf4d4d40489b1a7625 (diff) | |
download | mariadb-git-9bb464487d6c1c0359dba9aa79e88f927cd24c93.tar.gz |
CSC#4385: slow sorting for UTF8 large table:
my_strnxfrm_utf8 now requires 2 bytes per character
in filesort key, instead of 3 bytes per character.
Shorter filesort keys make sorting faster.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/filesort.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/filesort.cc b/sql/filesort.cc index 0e9fa8c79ed..1665358dbf0 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -1187,7 +1187,7 @@ sortlength(SORT_FIELD *sortorder, uint s_length, bool *multi_byte_charset) { sortorder->need_strxnfrm= 1; *multi_byte_charset= 1; - sortorder->length= sortorder->length*cs->strxfrm_multiply; + sortorder->length= cs->coll->strnxfrmlen(cs, sortorder->length); } } if (sortorder->field->maybe_null()) @@ -1200,7 +1200,7 @@ sortlength(SORT_FIELD *sortorder, uint s_length, bool *multi_byte_charset) sortorder->length=sortorder->item->max_length; if (use_strnxfrm((cs=sortorder->item->collation.collation))) { - sortorder->length= sortorder->length*cs->strxfrm_multiply; + sortorder->length= cs->coll->strnxfrmlen(cs, sortorder->length); sortorder->need_strxnfrm= 1; *multi_byte_charset= 1; } |