summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2005-01-26 16:34:09 +0400
committerunknown <bar@mysql.com>2005-01-26 16:34:09 +0400
commit9bb464487d6c1c0359dba9aa79e88f927cd24c93 (patch)
tree91906f2e462ed709b34b9973ff6afcb3ec9072a9 /sql
parente8ae338356d203942944e6bf4d4d40489b1a7625 (diff)
downloadmariadb-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.cc4
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;
}