1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-09 08:01:34 +03:00
Files
mariadb/mysql-test/r
Neeraj Bisht 97657db919 Bug#16691598 - ORDER BY LOWER(COLUMN) PRODUCES OUT-OF-ORDER RESULTS
Problem:-
We have created a table with UTF8_BIN collation.
In case, when in our query we have ORDER BY clause over a function 
call we are getting result in incorrect order.
Note:the bug is not there in 5.5.

Analysis:
In 5.5, for UTF16_BIN, we have min and max multi-byte length is 2 and 4 
respectively.In make_sortkey(),for 2 byte character character we are 
assuming that the resultant length will be 2 byte/character. But when we 
use my_strnxfrm_unicode_full_bin(), we store sorting weights using 3 bytes 
per character.This result in truncated result.

Same thing happen for UTF8MB4, where we have 1 byte min multi-byte and 
4 byte max multi-byte.We will accsume resultant data as 1 byte/character, 
which result in truncated result.

Solution:-
use strnxfrm(means use of MY_CS_STRNXFRM macro) is used for sort, in 
which the resultant length is not dependent on source length.
2013-11-07 16:46:24 +05:30
..
2011-09-16 14:35:25 +02:00
2012-02-29 21:18:50 +01:00
2011-01-25 12:14:28 +05:30
2012-06-29 14:12:21 +04:00
2011-02-17 12:53:09 +01:00
2012-06-29 14:12:21 +04:00
2011-02-17 12:53:09 +01:00
2012-06-29 14:12:21 +04:00
2011-01-17 15:26:13 +03:00
2011-03-03 18:46:30 +03:00
2012-09-26 17:04:19 +05:30
2012-06-29 14:12:21 +04:00
2012-03-12 09:24:59 +01:00
2011-05-04 17:22:38 +04:00
2011-05-05 08:13:22 +02:00
2011-04-14 13:10:11 +04:00
2011-03-03 15:27:36 +03:00
2012-06-29 14:12:21 +04:00
2011-08-19 09:06:50 +02:00
2012-02-24 11:55:28 +05:30
2011-01-17 12:39:59 +03:00
2010-12-16 21:43:21 +03:00
2013-07-01 15:38:16 +02:00
2012-03-05 22:36:56 +04:00
2013-01-11 06:36:53 +05:30
2011-12-14 15:33:01 +01:00
2012-09-27 02:06:08 +05:30
2011-03-29 10:09:05 +02:00
2011-09-16 16:21:05 +04:00
2010-12-01 12:28:21 +05:30
2011-02-08 11:21:14 +01:00
2012-04-09 16:43:54 +05:30
2011-03-25 14:55:22 +02:00
2012-02-29 21:18:50 +01:00
2011-06-13 11:57:47 +02:00
2011-01-10 16:13:12 +01:00
2012-01-26 10:38:28 +01:00
2012-04-18 11:34:36 +05:30
2011-03-28 13:57:54 +03:00
2012-10-29 13:06:43 +04:00
2011-08-08 17:45:43 +01:00
2012-03-28 13:35:08 +05:30
2012-03-28 13:35:08 +05:30
2011-01-12 10:31:41 +01:00
2012-06-29 14:12:21 +04:00