Commit 05390802 authored by svoj@june.mysql.com's avatar svoj@june.mysql.com
Browse files

Merge mysql.com:/home/svoj/devel/bk/mysql-5.0-engines

into  mysql.com:/home/svoj/devel/mysql/BUG29299/mysql-5.0-engines
parents c54bce13 ff9aeb56
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ byte ft_get_word(CHARSET_INFO *cs, byte **start, byte *end,

  while (doc<end)
  {
    for (;doc<end;doc++)
    for (; doc < end; doc+= mbl)
    {
      if (true_word_char(cs,*doc)) break;
      if (*doc == FTB_RQUOT && param->quot)
@@ -120,6 +120,7 @@ byte ft_get_word(CHARSET_INFO *cs, byte **start, byte *end,
        *start=doc+1;
        return 3; /* FTB_RBR */
      }
      mbl= my_mbcharlen(cs, *(uchar *)doc);
      if (!param->quot)
      {
        if (*doc == FTB_LBR || *doc == FTB_RBR || *doc == FTB_LQUOT)
@@ -187,10 +188,11 @@ byte ft_simple_get_word(CHARSET_INFO *cs, byte **start, const byte *end,

  do
  {
    for (;; doc++)
    for (;; doc+= mbl)
    {
      if (doc >= end) DBUG_RETURN(0);
      if (true_word_char(cs, *doc)) break;
      mbl= my_mbcharlen(cs, *(uchar *)doc);
    }

    mwc= length= 0;
+12 −0
Original line number Diff line number Diff line
@@ -241,3 +241,15 @@ select * from t1 where match a against('ab c' in boolean mode);
a
drop table t1;
set names latin1;
CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
SET NAMES utf8;
INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
HEX(a)
BEF361616197C22061616161
DELETE FROM t1 LIMIT 1;
CHECK TABLE t1;
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
SET NAMES latin1;
DROP TABLE t1;
+12 −0
Original line number Diff line number Diff line
@@ -220,4 +220,16 @@ select * from t1 where match a against('ab c' in boolean mode);
drop table t1;
set names latin1;

#
# BUG#29299 - repeatable myisam fulltext index corruption
#
CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
SET NAMES utf8;
INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
DELETE FROM t1 LIMIT 1;
CHECK TABLE t1;
SET NAMES latin1;
DROP TABLE t1;

# End of 4.1 tests