Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/svoj/devel/mysql/mysql-4.1
This commit is contained in:
commit
3ca0e28ccc
@ -203,6 +203,7 @@ serg@sergbook.mysql.com
|
|||||||
sergefp@mysql.com
|
sergefp@mysql.com
|
||||||
sinisa@rhols221.adsl.netsonic.fi
|
sinisa@rhols221.adsl.netsonic.fi
|
||||||
stewart@mysql.com
|
stewart@mysql.com
|
||||||
|
svoj@mysql.com
|
||||||
tfr@beta.frontier86.ee
|
tfr@beta.frontier86.ee
|
||||||
tfr@indrek.tfr.cafe.ee
|
tfr@indrek.tfr.cafe.ee
|
||||||
tfr@sarvik.tfr.cafe.ee
|
tfr@sarvik.tfr.cafe.ee
|
||||||
|
@ -435,32 +435,24 @@ static int _ftb_strstr(const byte *s0, const byte *e0,
|
|||||||
const byte *s1, const byte *e1,
|
const byte *s1, const byte *e1,
|
||||||
CHARSET_INFO *cs)
|
CHARSET_INFO *cs)
|
||||||
{
|
{
|
||||||
const byte *p0, *p1;
|
const byte *p0= s0;
|
||||||
my_bool s_after, e_before;
|
my_bool s_after= true_word_char(cs, s1[0]);
|
||||||
|
my_bool e_before= true_word_char(cs, e1[-1]);
|
||||||
s_after=true_word_char(cs, s1[0]);
|
uint p0_len;
|
||||||
e_before=true_word_char(cs, e1[-1]);
|
my_match_t m[2];
|
||||||
p0=s0;
|
|
||||||
|
|
||||||
while (p0 < e0)
|
while (p0 < e0)
|
||||||
{
|
{
|
||||||
while (p0 < e0 && cs->to_upper[(uint) (uchar) *p0++] !=
|
if (cs->coll->instr(cs, p0, e0 - p0, s1, e1 - s1, m, 2) != 2)
|
||||||
cs->to_upper[(uint) (uchar) *s1])
|
return(0);
|
||||||
/* no-op */;
|
if ((!s_after || p0 + m[1].beg == s0 || !true_word_char(cs, p0[m[1].beg-1])) &&
|
||||||
if (p0 >= e0)
|
(!e_before || p0 + m[1].end == e0 || !true_word_char(cs, p0[m[1].end])))
|
||||||
return 0;
|
return(1);
|
||||||
|
p0+= m[1].beg;
|
||||||
if (s_after && p0-1 > s0 && true_word_char(cs, p0[-2]))
|
p0+= (p0_len= my_mbcharlen(cs, *(uchar *)p0)) ? p0_len : 1;
|
||||||
continue;
|
|
||||||
|
|
||||||
p1=s1+1;
|
|
||||||
while (p0 < e0 && p1 < e1 && cs->to_upper[(uint) (uchar) *p0] ==
|
|
||||||
cs->to_upper[(uint) (uchar) *p1])
|
|
||||||
p0++, p1++;
|
|
||||||
if (p1 == e1 && (!e_before || p0 == e0 || !true_word_char(cs, p0[0])))
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -408,3 +408,10 @@ insert t1 values (1, "aaaa"), (2, "bbbb");
|
|||||||
insert t2 values (10, "aaaa"), (2, "cccc");
|
insert t2 values (10, "aaaa"), (2, "cccc");
|
||||||
replace t1 select * from t2;
|
replace t1 select * from t2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
CREATE TABLE t1 (t VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, FULLTEXT (t));
|
||||||
|
SET NAMES latin1;
|
||||||
|
INSERT INTO t1 VALUES('Mit freundlichem Grüß aus Osnabrück');
|
||||||
|
SELECT COUNT(*) FROM t1 WHERE MATCH(t) AGAINST ('"osnabrück"' IN BOOLEAN MODE);
|
||||||
|
COUNT(*)
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -322,3 +322,11 @@ insert t2 values (10, "aaaa"), (2, "cccc");
|
|||||||
replace t1 select * from t2;
|
replace t1 select * from t2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# bug#8351
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (t VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, FULLTEXT (t));
|
||||||
|
SET NAMES latin1;
|
||||||
|
INSERT INTO t1 VALUES('Mit freundlichem Grüß aus Osnabrück');
|
||||||
|
SELECT COUNT(*) FROM t1 WHERE MATCH(t) AGAINST ('"osnabrück"' IN BOOLEAN MODE);
|
||||||
|
DROP TABLE t1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user