mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/home/bar/mysql-5.0
This commit is contained in:
commit
7389904846
3 changed files with 70 additions and 8 deletions
|
@ -954,6 +954,45 @@ char_length(a) length(a) a
|
|||
2 2 12
|
||||
2 4 ан
|
||||
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 (
|
||||
a varchar(255) NOT NULL default '',
|
||||
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;
|
||||
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
|
||||
#
|
||||
|
|
|
@ -1739,7 +1739,7 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
|
|||
}
|
||||
|
||||
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,
|
||||
(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,
|
||||
(const uchar*)wildend)) <=0)
|
||||
return 1;
|
||||
wildstr+= scan;
|
||||
|
||||
if (w_wc == (my_wc_t)escape)
|
||||
{
|
||||
wildstr+= scan;
|
||||
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
||||
(const uchar*)wildend)) <=0)
|
||||
return 1;
|
||||
if (wildstr < wildend)
|
||||
{
|
||||
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
|
||||
(const uchar*)wildend)) <=0)
|
||||
return 1;
|
||||
wildstr+= scan;
|
||||
}
|
||||
}
|
||||
|
||||
while (1)
|
||||
|
@ -1843,14 +1847,12 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
|
|||
if (str == str_end)
|
||||
return -1;
|
||||
|
||||
str+= scan;
|
||||
result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
|
||||
escape, w_one, w_many,
|
||||
weights);
|
||||
|
||||
if (result <= 0)
|
||||
return result;
|
||||
|
||||
str+= scan;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue