mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/usr/home/bar/mysql-4.1.b11754
into mysql.com:/usr/home/bar/mysql-5.0 mysql-test/r/ctype_utf8.result: Auto merged mysql-test/t/ctype_utf8.test: Auto merged strings/ctype-utf8.c: Auto merged
This commit is contained in:
@ -954,6 +954,45 @@ char_length(a) length(a) a
|
|||||||
2 2 12
|
2 2 12
|
||||||
2 4 ан
|
2 4 ан
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set names utf8;
|
||||||
|
select 'a\\' like 'a\\';
|
||||||
|
'a\\' like 'a\\'
|
||||||
|
1
|
||||||
|
select 'aa\\' like 'a%\\';
|
||||||
|
'aa\\' like 'a%\\'
|
||||||
|
1
|
||||||
|
create table t1 (a char(10), key(a)) character set utf8;
|
||||||
|
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
|
||||||
|
select * from t1 where a like "abc%";
|
||||||
|
a
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
select * from t1 where a like concat("abc","%");
|
||||||
|
a
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
select * from t1 where a like "ABC%";
|
||||||
|
a
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
select * from t1 where a like "test%";
|
||||||
|
a
|
||||||
|
test
|
||||||
|
select * from t1 where a like "te_t";
|
||||||
|
a
|
||||||
|
test
|
||||||
|
select * from t1 where a like "%a%";
|
||||||
|
a
|
||||||
|
a
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
select * from t1 where a like "%abcd%";
|
||||||
|
a
|
||||||
|
abcd
|
||||||
|
select * from t1 where a like "%abc\d%";
|
||||||
|
a
|
||||||
|
abcd
|
||||||
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a varchar(255) NOT NULL default '',
|
a varchar(255) NOT NULL default '',
|
||||||
KEY a (a)
|
KEY a (a)
|
||||||
|
@ -810,6 +810,27 @@ alter table t1 modify a char(2) character set utf8;
|
|||||||
select char_length(a), length(a), a from t1 order by a;
|
select char_length(a), length(a), a from t1 order by a;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bugs#11754: SET NAMES utf8 followed by SELECT "A\\" LIKE "A\\" returns 0
|
||||||
|
#
|
||||||
|
set names utf8;
|
||||||
|
select 'a\\' like 'a\\';
|
||||||
|
select 'aa\\' like 'a%\\';
|
||||||
|
|
||||||
|
create table t1 (a char(10), key(a)) character set utf8;
|
||||||
|
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
|
||||||
|
select * from t1 where a like "abc%";
|
||||||
|
select * from t1 where a like concat("abc","%");
|
||||||
|
select * from t1 where a like "ABC%";
|
||||||
|
select * from t1 where a like "test%";
|
||||||
|
select * from t1 where a like "te_t";
|
||||||
|
select * from t1 where a like "%a%";
|
||||||
|
select * from t1 where a like "%abcd%";
|
||||||
|
select * from t1 where a like "%abc\d%";
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#9557 MyISAM utf8 table crash
|
# Bug#9557 MyISAM utf8 table crash
|
||||||
#
|
#
|
||||||
|
@ -1739,7 +1739,7 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
wildstr+= scan;
|
wildstr+= scan;
|
||||||
if (w_wc == (my_wc_t)escape)
|
if (w_wc == (my_wc_t)escape && wildstr < wildend)
|
||||||
{
|
{
|
||||||
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
||||||
(const uchar*)wildend)) <= 0)
|
(const uchar*)wildend)) <= 0)
|
||||||
@ -1811,13 +1811,17 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
|
|||||||
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
||||||
(const uchar*)wildend)) <=0)
|
(const uchar*)wildend)) <=0)
|
||||||
return 1;
|
return 1;
|
||||||
|
wildstr+= scan;
|
||||||
|
|
||||||
if (w_wc == (my_wc_t)escape)
|
if (w_wc == (my_wc_t)escape)
|
||||||
{
|
{
|
||||||
wildstr+= scan;
|
if (wildstr < wildend)
|
||||||
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
{
|
||||||
(const uchar*)wildend)) <=0)
|
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
||||||
return 1;
|
(const uchar*)wildend)) <=0)
|
||||||
|
return 1;
|
||||||
|
wildstr+= scan;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
@ -1843,14 +1847,12 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
|
|||||||
if (str == str_end)
|
if (str == str_end)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
str+= scan;
|
||||||
result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
|
result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
|
||||||
escape, w_one, w_many,
|
escape, w_one, w_many,
|
||||||
weights);
|
weights);
|
||||||
|
|
||||||
if (result <= 0)
|
if (result <= 0)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
str+= scan;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user