"like" did not work in some cases with character set big5

This commit is contained in:
unknown 2003-12-24 16:59:48 +04:00
parent 56f4840563
commit 4bff43a724
5 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,4 @@
-- require r/have_big5.require
disable_query_log;
show collation like "big5_chinese_ci";
enable_query_log;

View File

@ -0,0 +1,10 @@
drop table if exists t1;
SET NAMES big5;
CREATE TABLE t1 (c CHAR(10) CHARACTER SET big5, KEY(c));
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
SELECT * FROM t1 WHERE c LIKE 'aaa%';
c
aaa
aaaa
aaaaa
DROP TABLE t1;

View File

@ -0,0 +1,2 @@
Collation Charset Id Default Compiled Sortlen
big5_chinese_ci big5 1 Yes Yes 1

View File

@ -0,0 +1,18 @@
-- source include/have_big5.inc
#
# Tests with the big5 character set
#
--disable_warnings
drop table if exists t1;
--enable_warnings
SET NAMES big5;
#
# Bug 1883: LIKE did not work in some cases with a key.
#
CREATE TABLE t1 (c CHAR(10) CHARACTER SET big5, KEY(c));
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
SELECT * FROM t1 WHERE c LIKE 'aaa%';
DROP TABLE t1;

View File

@ -377,7 +377,7 @@ static my_bool my_like_range_big5(CHARSET_INFO *cs __attribute__((unused)),
*min_length= (uint) (min_str-min_org);
*max_length= res_length;
do {
*min_str++ = '\0'; /* Because if key compression */
*min_str++ = ' '; /* Because if key compression */
*max_str++ = max_sort_char;
} while (min_str != min_end);
return 0;